-
Notifications
You must be signed in to change notification settings - Fork 141
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
feat: adding openshift routes #1890
Conversation
To start out, I will add a global flag to enable routes for each components. |
Not sure if |
I am now able to get identity working with it's route object and no tls |
@aabouzaid and @camunda/distribution For example, picking the identity component, the easiest way would be as follows:
Give the customer the option to specify the raw certificate and key in the values.yaml. Another option (but a little tricky to implement) would be to reference an already existing k8s secret in the values.yaml:
The route object template would have to extract the information from the existing k8s secret. I am not completely sure how this would be done but I can work my way through this. The final option I see is to not give the option to specify a tls cert and key in the values.yaml. If the customer really want a tls in their routes then we can tell them to generate the routes through the ingress because the ingress generated routes automatically includes the tls contents from the secret that the ingress references. The customer could also manually add in the tls contents in each route themselves. |
Hello @hamza-m-masood, Regarding the Routes, I'd suggest looking at the way they are handled in this example: Confluence Route Template. |
Thank you @leiicamundi that really helped. So I will go with the option of the customer defining the |
I wanted to stay away from using the lookup function because of the dependency on the kubernetes API. This dependency can introduce potential points of failure, especially if the API server is experiencing issues or is not accessible. This would also requires appropriate permissions to access resources in the cluster. Maybe some potential or existing customers would not be able to use this feature. Error handling with the lookup function can be challenging. If a resource is not found or an API request fails, it can be difficult to handle these errors gracefully within the Helm templates. This can lead to incomplete or failed deployments. Also using helm commands like I will still implement it since you guys approve of it, and I will test it out myself to see how reliable it is. |
@jessesimpson36's reponse to the above: |
I hope it is clear from my comment but I agree with Jesse. I think it's okay to specify the tls cert and key in the values.yaml.
|
My response to a customer with these concerns is that they can make use of helm template to render a manifest of a valid openshift route, but disable then it in values.yaml.
Then they can manually modify the route.yaml to remove the There are other recommendations we could give too. Perhaps they can use a tool like SOPS or git-crypt to encrypt/decrypt the TLS certificate, and then use some CD platform to deploy pre-rendered manifests rather than using A customer could also use a proxied load-balancing service, such as a cloudflare HTTPS proxy or AWS ALB. |
But if you can make |
@jessesimpson36 |
After re-reading the Red Hat charts (e.g. https://github.com/redhat-cop/helm-charts/blob/main/charts/jenkins/templates/route.yaml), it seems that the definition of certificates is always omitted. Red Hat appears to be addressing this in the next version of OpenShift:
Alternatively, we could use Ingress objects and let OpenShift generate the associated routes. This workaround is suggested in openshift/origin#2162 (comment). The only downside is that it is not possible to define the outgoing CA in the Ingress object, but this seems to be a specific case. |
Thanks @leiicamundi that really helps. |
283abfc
to
f0da3dc
Compare
Closing this PR since we agreed to generate the routes from ingress objects. |
Which problem does the PR fix?
What's in this PR?
Rleated: https://github.com/camunda/distribution/issues/254
Checklist
Please make sure to follow our Contributing Guide.
Before opening the PR:
make go.update-golden-only
.After opening the PR: