-
Notifications
You must be signed in to change notification settings - Fork 94
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
[ENH] - Support for pinning the IP address of the load balancer and ability to use internal VPC #1210
Comments
Also partially implemented in https://github.com/Quansight/qhub/compare/azure_extension |
Working on this for GCP, here are some notes (from GKE docs) :
By default an available IP from the subnet will automatically be chosen but we can also specify the loadBalancerIP but it must be part of the referenced subnet. Annotations required:
This means: - The subnet must also be in the same VPC and region as the GKE cluster. References: |
In case it's useful, for my AKS service:
enabled: true
type: LoadBalancer
spec:
loadBalancerIP: "1.2.3.4"
externalTrafficPolicy: Local
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
Note: the
|
Thanks @dhirschfeld that's really helpful. |
Feature description
For Traefik we currently ask Kubernetes to create a load balancer for us without having any control over the ip that is given or whether it uses an ip address within the current VPC or external (external is default). We have a PR that does this for AWS #650 but never merged it in due to not being totally sure on how we are going to support a feature like this.
For me the conflicting problem is how are we going to support all these options in the
qhub-config.yaml
and ensure that they are all documented. I'd like to use this issue as a motivation to having a keyterraform_overrides
which get passed to the terraform module.The idea would be to have the following in
qhub-config.yaml
whereingress.terraform_overrides
is an arbitrary nested dictionary. This feature is similar to a prior feature we have of passing overrides to helm charts.This will need to be added to the https://github.com/Quansight/qhub/blob/main/qhub/schema.py along with the documentation that this new key is available.
Next we need to make sure that we are passing these overrides to the https://github.com/Quansight/qhub/tree/main/qhub/template/stages/04-kubernetes-ingress stage where ingress is being deployed. This is done via adding to https://github.com/Quansight/qhub/blob/main/qhub/stages/input_vars.py#L144 and passing anything in
terraform_overrides
as input.Finally need to add these new variables to https://github.com/Quansight/qhub/blob/main/qhub/template/stages/04-kubernetes-ingress/variables.tf and properly pass in the values to https://github.com/Quansight/qhub/blob/main/qhub/template/stages/04-kubernetes-ingress/modules/kubernetes/ingress/main.tf#L58.
Value and/or benefit
Enterprise support often requires deploying within an existing VPC and pinnning the ip address.
Anything else?
No response
The text was updated successfully, but these errors were encountered: