feat(agent): select the worker ingress stack with worker_ingress instead of three template paths - #576
Merged
Conversation
…ead of three template paths The k8s scope picks ALB Ingress or Istio Gateway API templates purely from SERVICE_TEMPLATE, INITIAL_INGRESS_PATH and BLUE_GREEN_INGRESS_PATH; it reads no INGRESS_TYPE. Istio installs therefore copied three absolute paths of the scopes/containers image into every root module. worker_ingress = "istio" derives them; "alb" (default) keeps today's empty values. Explicit paths still win, for custom templates.
sebasnallar
approved these changes
Sep 8, 2026
release-application Bot
added a commit
that referenced
this pull request
Sep 8, 2026
🤖 I have created a release *beep* *boop* --- ## [7.6.0](v7.5.0...v7.6.0) (2026-09-08) ### Features * **agent:** select the worker ingress stack with worker_ingress instead of three template paths ([#576](#576)) ([1579cb5](1579cb5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
El caso de uso
Una instalación con Istio tiene que poner esto en su
module "agent":Son tres rutas absolutas al filesystem de la imagen
scopes/containers, copiadas en cada root module, para expresar una decisión de una palabra: "desplegamos con Istio". Nadie que lea ese bloque entiende que eso es un interruptor; parece configuración de templates. Y nada enplanni enapplyavisa si la imagen mueve un template: se descubre cuando falla un deploy.Cómo funciona por debajo, leído en
nullplatform/scopesv1.16.2:k8s/values.yaml, y apuntan a los templates de ALB Ingress:service.yaml.tpl,initial-ingress.yaml.tpl,blue-green-ingress.yaml.tpl.initial.yamlusa$INITIAL_INGRESS_PATH,blue_green.yamlusa$BLUE_GREEN_INGRESS_PATH,finalizeyrollbackvuelven al inicial. Una env con el mismo nombre pisa el default.INGRESS_TYPE. La descripción actual de las tres variables del módulo dice "required whenextra_envs.INGRESS_TYPEis 'istio'", pero esa variable no existe del lado del scope: lo único que elige el modo son los paths.Con el default del módulo,
"", el scope usa ALB Ingress. Si una instalación Istio se olvida uno de los tres paths, los deploys dejan de enrutar por los Gateways y no hay error que lo señale.Qué cambia
Un input nuevo,
worker_ingress, con dos valores:"alb"(default): manda las tres variables vacías, así el scope k8s usa sus templates de ALB Ingress. Es exactamente lo que el módulo hace hoy, así que ninguna instalación existente cambia."istio": deriva los tres paths a los templates de Gateway API que la imagenscopes/containershornea bajo/app/pkg/k8s/deployment/templates/istio/.service_template,initial_ingress_pathyblue_green_ingress_pathsiguen existiendo y, si vienen no vacías, pisan lo queworker_ingressderiva. Sirven para templates propios; dejan de ser la forma de decir "Istio". Sus descripciones ya no mencionanINGRESS_TYPE.Con esto el bloque de arriba queda en:
y si la imagen reubica los templates, el módulo es el único lugar a tocar.
Compatibilidad
Sin cambios para nadie: el default reproduce el comportamiento actual, y quien ya pasa los tres paths a mano los sigue viendo respetados porque el override explícito gana. Una instalación Istio puede migrar reemplazando las tres líneas por
worker_ingress = "istio"y el plan del agent no muestra diferencias en los values, porque los paths derivados son los mismos que venía pasando.Tests
Cuatro runs nuevos en
agent_values.tftest.hcl: el default deja los tres paths vacíos;istioderiva los tres paths correctos en el patch del workercontainers; unservice_templateexplícito gana sobreistio; un valor desconocido se rechaza en la validación. La suite del módulo queda en 29/29.Relacionado
Es una de las tres cosas que salieron de migrar una instalación a workers y que hoy obligan a copiar internals del módulo en el root module. Las otras dos quedan para PRs aparte: que el env de deploy se aplique a una lista de packages (
worker_k8s_packages) y no solo acontainers, y queCLUSTER_NAME, quescope/iam/create_rolelee del env, sea un input del módulo en vez de colarse porextra_envs.