jaeger-operator: Unable to connect to the ES when using K8s secrets
HI,
I have setup the ES cleaner cronjob for an externally hosted Elastic search cluster, and i am trying to use secrets stored in kubernetes to connect to the ES cluster.
Below is my yaml
kind: CronJob
metadata:
name: es-jaeger-cleaner
namespace: monitoring
labels:
app: es-jaeger-cleaner
env: staging
spec:
# every 1 PM UTC-0
schedule: "0 13 * * *"
jobTemplate:
metadata:
labels:
app: es-jaeger-cleaner
env: staging
spec:
template:
metadata:
labels:
app: es-jaeger-cleaner
env: staging
spec:
containers:
- name: es-jaeger-cleaner
image: jaegertracing/jaeger-es-index-cleaner:latest
# clean up ES data indices older than 7 days from now
args: ["7", "<https://<esHOST:port>"]
env:
- name: TIMEOUT
value: "300"
- name: ES_USERNAME
value: "<username>"
- name: ES_PASSWORD
valueFrom:
secretKeyRef:
key: ES_PASSWORD
name: <secret_name>
restartPolicy: OnFailure
And it somehow does not work and i get the below error
File "/es-index-cleaner/esCleaner.py", line 31, in main
client = elasticsearch.Elasticsearch(sys.argv[2:], http_auth=(username, password))
File "/usr/local/lib/python3.7/site-packages/elasticsearch/client/__init__.py", line 206, in __init__
self.transport = transport_class(_normalize_hosts(hosts), **kwargs)
File "/usr/local/lib/python3.7/site-packages/elasticsearch/transport.py", line 127, in __init__
self.set_connections(hosts)
File "/usr/local/lib/python3.7/site-packages/elasticsearch/transport.py", line 177, in set_connections
connections = list(zip(connections, hosts))
File "/usr/local/lib/python3.7/site-packages/elasticsearch/transport.py", line 173, in _create_connection
return self.connection_class(**kwargs)
File "/usr/local/lib/python3.7/site-packages/elasticsearch/connection/http_urllib3.py", line 106, in __init__
self.headers.update(urllib3.make_headers(basic_auth=http_auth))
File "/usr/local/lib/python3.7/site-packages/urllib3/util/request.py", line 65, in make_headers
b64encode(b(basic_auth)).decode('utf-8')
File "/usr/local/lib/python3.7/site-packages/urllib3/packages/six.py", line 620, in b
return s.encode("latin-1")
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 9-13: ordinal not in range(256)
PS - If i hardcode the username and password, it works fine. Please let me know if i am doing something wrong
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 29 (20 by maintainers)
I have crated https://github.com/jaegertracing/jaeger-operator/issues/592 for the TLS configuration with ES jobs.