-
Notifications
You must be signed in to change notification settings - Fork 26
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
Ingress annotations should be set globally by hephy-controller #79
Comments
To add onto that, you should be able to set any ingress annotations regardless of what ingress you are using. For example, you might want to set tls-acme so that cert-manager will handle your certs:
Should we just go ahead and provide a generic interface to add any desired ingress annotations like we already have in place for (I assume those settings are still honored by the controller even if router is not used.) |
I am not sure the router deployment object exists when deploying with I think it's best that some annotations need to be managed by the users/set manually while others can be global and therefore we can kept as an ingress_annotation object on the |
I agree that a more granular approach is probably better, I also think I remember reading in a software design textbook somewhere that you should not give your users an open-ended rope to hang themselves with, basically what I think the section on rope was near the paragraph on "No Knobs" Yes, I found it, here, this is what I'm thinking of: https://github.com/concourse/concourse/wiki/Anti-Patterns#kitchen-sink-config
It is indeed a few chapters after "No Knobs" https://github.com/concourse/concourse/wiki/Anti-Patterns#knobs |
Yes, I agree. Thank you for the links @kingdonb. We cannot cover all scenarios of annotations so it is definitely an anti-pattern to assume we can cover all possible annotations even now. Not to speak about future. Therefore, I think manual annotations on the ingress objects is still unavoidable for many ingress implementations. The thing I want to set is default fine-tune parameters for applications in hephy globally. For example: |
OK. As a compromise I think we can start with two knobs that are pre-defined, and users can add your own knobs as needed. I would propose we plan to remove the The new standard would be to set Here is an example ingress section adapted from another chart that we might use for config, it is adapted to reflect that users will not be setting You can set your own annotations.
Here are the old router config docs for tls: https://docs.teamhephy.info/managing-workflow/platform-ssl/ We should either ensure that the ingresses generated by controller can work with a TLS certificate configured in this way, or ... something like the (This is a less attractive option, again not only because it says I think the only case that can't be easily described in a config like the one shown here is the case that you have enabled TLS and provisioned a custom app domain, and you are using hand crafted TLS certificates rather than cert-manager or similar. In this case, I think it's fine for the Hephy controller to provision the ingress with a platform domain certificate, leaving it up to the admin to add the correct TLS certificate and update the ingress rule. (As long as the controller only patches ingress rules after they are created and never replaces them outright, this should work fine.) |
@Cryptophobia could you assign this to me please, I went looking for this feature today and came back to revisit this issue report when I realized we actually hadn't implemented it yet at all! |
You got it @kingdonb ! Thank you for taking a look into this. |
hephy-controller
orworkflow
deploymentvalues.yaml
should set the ingress annotations for the ingress controller that it prefers to use as default globally. Either it isnginx
,kong
, oristio
, this ingress should be defined globally for all apps as ingress can be of different type when using multiple ingress controllers.https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/multiple-ingress-controllers
The text was updated successfully, but these errors were encountered: