Skip to content

feat(base): soporte de azure_load_balancer_subnet para el gateway público#153

Merged
sebastiancorrea81 merged 1 commit into
nullplatform:mainfrom
serialito74:feat/aks-public-gateway-internal-subnet
Jun 24, 2026
Merged

feat(base): soporte de azure_load_balancer_subnet para el gateway público#153
sebastiancorrea81 merged 1 commit into
nullplatform:mainfrom
serialito74:feat/aks-public-gateway-internal-subnet

Conversation

@serialito74

@serialito74 serialito74 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Qué

Agrega gateway.public.azure.subnet al chart base para que el LB interno del gateway público pueda fijarse a una subnet específica en AKS — capacidad que el gateway interno ya tiene (vía gateway.internal.azure_load_balancer_subnet).

Se modela anidado bajo el bloque public.azure (junto a networkSecurityGroup), de forma simétrica a cómo OCI anida su subnet bajo public.oci.

Por qué

Cuando el gateway público se configura con loadBalancerType: internal (el tráfico entra por una vía privada, p. ej. detrás de un túnel/proxy en la VNet), el chart solo emite:

service.beta.kubernetes.io/azure-load-balancer-internal: 'true'

…pero no la anotación de subnet. Azure entonces elige la subnet del LB automáticamente, que puede no ser la deseada. Hoy esto hay que parchearlo por fuera con un recurso kubernetes_annotations. Este cambio cierra esa brecha.

Cambios

  • values.yaml: nuevo gateway.public.azure.subnet (vacío por defecto).
  • templates/gateways.yaml: emite service.beta.kubernetes.io/azure-load-balancer-internal-subnet en el gateway público solo cuando el valor está seteado y loadBalancerType: internal.

Retrocompatibilidad

Sin cambio de comportamiento cuando el valor queda vacío — la anotación está protegida por {{- if .Values.gateway.public.azure.subnet }}.

Verificación

helm template con global.provider=aks y gateway.public.loadBalancerType=internal:

  • gateway.public.azure.subnet seteada → emite azure-load-balancer-internal-subnet: <subnet>
  • vacía (default) → anotación omitida ✅

The internal gateway already wires
service.beta.kubernetes.io/azure-load-balancer-internal-subnet on AKS, but the
public gateway did not. When the public gateway uses loadBalancerType: internal,
the LB had no way to be pinned to a specific subnet and Azure would pick one
automatically.

Add gateway.public.azure.subnet (default empty), nested under the existing
public.azure block (mirroring how the OCI subnet is nested under public.oci),
and emit the annotation only when set. No change to existing behaviour when the
value is left empty.
@serialito74 serialito74 force-pushed the feat/aks-public-gateway-internal-subnet branch from 37fbf52 to 6208f5c Compare June 23, 2026 21:01
@serialito74

Copy link
Copy Markdown
Contributor Author

Nota de dependencia entre PRs

Este PR habilita gateway.public.azure.subnet en el chart. El consumo desde Terraform va en un PR aparte:

  • tofu-modules PR #403 — agrega la variable gateway_public_azure_load_balancer_subnet y la cablea a gateway.public.azure.subnet.

Orden sugerido: mergear este PR primero y publicar una versión del chart; luego mergear tofu-modules #403, que recién surte efecto cuando el módulo apunta a una versión del chart que incluya este cambio.

@sebastiancorrea81 sebastiancorrea81 merged commit c35d1ca into nullplatform:main Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants