Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No trusted root CA found for FTS Daemon Found #3

Open
vbalbarin opened this issue Sep 16, 2022 · 2 comments
Open

No trusted root CA found for FTS Daemon Found #3

vbalbarin opened this issue Sep 16, 2022 · 2 comments

Comments

@vbalbarin
Copy link
Contributor

It appears as if the pod daemons-renew-fts-proxy-on-helm-install-* created during the installation of the daemons Helm chart

helm install daemons rucio/rucio-daemons -f daemons.yaml

does not have access to a root CA.

If we pull the logs for daemons-renew-fts-proxy-on-helm-install-* when it is reporting Error, we see the following:

kubectl logs -f daemons-renew-fts-proxy-on-helm-install-sjjqn
=================== /renew_fts_proxy.sh ========================
#! /bin/bash

# Delegate the proxy to the requested servers



fts-rest-delegate -v -f -H 9999 --key=/opt/rucio/keys/userkey.pem --cert=/opt/rucio/certs/usercert.pem -s https://fts:8446



Loaded CN=Rucio User
User certificate: /opt/rucio/certs/usercert.pem
User private key: /opt/rucio/keys/userkey.pem
Bad endpoint: https://fts:8446 (HTTPSConnectionPool(host='fts', port=8446): Max retries exceeded with url: // (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:877)'),)))

As a sanity check, the FTS service within the Minikube cluster environment was validated from the client pod

# kubectl exec -it client -- /bin/bash
# # Inside client pod

# curl --cacert /etc/grid-security/certificates/5fca1cb1.0 https://fts:8446
{"delegation": {"major": 1, "minor": 0, "patch": 0}, "api": {"major": 3, "minor": 11, "patch": 0}, "core": null, "schema": {"patch": 1, "minor": 0, "major": 8}, "_links": {"curies": [{"name": "fts", "href": "https://gitlab.cern.ch/fts/fts3"}], "fts:whoami": {"href": "/whoami", "title": "Check user certificate"}, "fts:joblist": {"href": "/jobs{?vo_name,user_dn,dlg_id,state_in}", "title": "List of active jobs", "templated": true}, "fts:job": {"href": "/jobs/{id}", "title": "Job information", "templated": true, "hints": {"allow": ["GET", "DELETE"]}}, "fts:configaudit": {"href": "/config/audit", "title": "Configuration"}, "fts:submitschema": {"href": "/api-docs/schema/submit", "title": "JSON schema of messages"}, "fts:apidocs": {"href": "/api-docs/", "title": "API Documentation"}, "fts:jobsubmit": {"href": "/jobs", "hints": {"allow": ["POST"], "representations": ["fts:submitschema"]}}, "fts:optimizer": {"href": "/optimizer/", "title": "Optimizer"}, "fts:archive": {"href": "/archive/", "title": "Archive"}}}

Note, the root CA /etc/grid-security/certificates/5fca1cb1.0 is a secret deployed by the Kubernetes deployment file client.yaml.

This same Base64 encoded value is referenced by the fts.yaml deployment file.

However, it is not included as a secret accessible by the pod during the installation of the rucio/rucio-daemons Helm chart.

If we look at the source code for values.yaml file in the Helm chart, there doesn't appear to be a way to pass a secrets value and pod mount point for the daemons-renew-fts-proxy-on-helm-install-* to use.

@chicodelarosa
Copy link
Contributor

@vbalbarin I have been researching this issue for a while now.

From Kubernetes' documentation secrets can be made available to other pods as a file.

I will go ahead and give it a try.

@vbalbarin
Copy link
Contributor Author

vbalbarin commented Sep 22, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants