Because of compliance reasons, I need to close public access to the control plane endpoint on AWS and, at the same time, enable the private endpoint for internal communication with the nodes. What alternatives do I have today to make this change without interrupting the operation of Qovery?
the infrastructure change is not trivial on our side but we should be able to expose the Qovery control plane from one single IP in the upcoming weeks.
There is one drawback (please let me know if this is a blocker):
if you are deploying images from public container registries (mostly Dockerhub)
or
if your Dockerfile has FROM condition pulling images from the Dorckerhub
you will have to add some Dockerhub credentials to the default Dockerhub registry that is created within in your organization.
Since the Qovery control plane will be seen as a single IP, we will quickly reach the limit. This limit can be increased if you are a logged-in user and thus, if you put your credentials in the Dockerhub registry configuration of your organization, you should not encounter any rate limit issue during the deployment.
Yes, I understand the context and it wouldn’t be a block on my side. We do indeed pull images from the Dockerhub, but I already have credentials configured in Qovery. Not sure if we will hit the rate limits, but that would be a different problem.
We also pull images from Dockerhub. I know we ran into the rate limit thing in the past through Qovery. I’ll make sure we make an account and add it to our Qovery registration configuration.
The feature has been delivered! Note: it is available only for AWS clusters
We strongly recommend you to test it on your non-production cluster before moving to the production one.
how to activate it:
ensure to have a [Dockerhub registry] created and configured with your own credentials. As explained above, this is a requirement we have set to avoid rate limit issues when pulling images from the Dockerhub registry (more info here).
set the cluster advanced settings qovery.static_ip_mode to true
re-deploy your cluster
This will apply a whitelist on the cluster public endpoints and activate the private endpoint.
if you need access to the Kube API from other locations (like connecting via k9s from your own laptop), you will have to add those additional IP/CIDR in the advanced settings k8s.api.allowed_public_access_cidrs
Update: we have been giving access for free to this feature to our existing customers but given the infrastructure cost and the value it brings from a security stand-point we will add it to our pricing page in a dedicated section.