-
Notifications
You must be signed in to change notification settings - Fork 7
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
Adding TLS secret to a namespace that does not exist yet #14
Comments
I can see this would happen. Either a fix could come in the Manual TLS part to be generic, or to have the creation of namespaces come as the first step for each Building Block and to remove the I can use this issue to create a branch from. Using MinIO as an example with creating the namespace as the first step: Deployment Steps1. Create the NamespaceBefore proceeding with the configuration and deployment, create the kubectl create namespace minio 2. Configure MinIORun the configuration script: bash configure-minio.sh During the script execution, you will be prompted for:
Important Notes:
@rconway , what do you think? |
we could also take a simpler approach, and just say in the "Manual TLS" that you need to install a wildcard certificate for your ingress for all the *. and that is it. And we remove all the info about creating a certificate for each domain. Issue #15 would ensure everything would work with the single subdomain. In the end, the letsencrypt is the version for production, the manual TLS is more for demo environments, development environments or internal environments, and there security concerns are lower and people may actually be happier to just have to create one certificate for all and do it once when configuring the ingress and that is it |
@james-hinton The manual TLS can be a post-requisite, so that it is performed after the BB deploy - this is effectively what happens when letsencrypt is used. @spinto I agree that #15 is a good way to go - but I do not think this will help with the namespace problem - since the secret must be duplicated into the namespace of the ingress. |
but the namespace of the ingress is created only once, during cluster configuration, Rancher actually uses for this an already existing namespace, and also provides in the GUI means to very easily add a certificate to the ingress, at the beginning or later (see https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/kubernetes-resources-setup/encrypt-http-communication for example), In our "manual TLS" page we should just point to, for non-production and internal environments with no internet access, to the rancher page mentioned above for the configuration of a wildcard TLS certificate. |
I'm not familiar with the Rancher UI. |
Ah, yes, sorry, I was not clear. Yes, the So, what I am proposing is that, in the pre-requisite page, we could say that EOEPCA recommends, for production, an Ingress controller with a load balancer providing an external IP (accessible from the internet), to which a DNS widlcard entry *. is mapped, plus a certmanager configured with a let'sencrypt certificate provider. For development/testing/internal deployments, where there is no external IP, you can instead manually install a wildcard certificate for *. in your default Ingress controller, and that is it. If then the CLUSTER_ISSUER variable is empty, you would just not set the What we have in the ESA Cloud is, for example, DNS entry for *. resolving an internal IP address, which maps to an HAProxy LB on the internal network, which then forwards in round-robin to the 4 nodes of the K8S cluster hosting the Nginx Ingress Controller (K8S daemonset) which then will forward to the internal virtual K8S namespace network to the pod according to the Ingress rules specified in the helm charts... |
Yes, you are right - I was forgetting about this possibility. I am currently looking at the Ingress Controller - to take account of the possible use of APISIX for better IAM integration. In doing so I can try to take account of your suggested approach. |
When using manual TLS configuration, the deployment guide says to create a TLS secret in a namespace:
But at this point the namespace does not exist yet, it only gets created with helm afterwards, e.g.
The text was updated successfully, but these errors were encountered: