Skip to content

feat: add nullplatform-routing chart#148

Open
gdrojas wants to merge 11 commits into
mainfrom
feat/nullplatform-routing-chart
Open

feat: add nullplatform-routing chart#148
gdrojas wants to merge 11 commits into
mainfrom
feat/nullplatform-routing-chart

Conversation

@gdrojas

@gdrojas gdrojas commented May 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds new nullplatform-routing Helm chart that manages all Kubernetes routing infrastructure: Gateway API resources, Istio Gateways, HPAs, PDBs, and OpenShift IngressControllers
  • Removes gateway/routing resources from nullplatform-base chart (gateways namespace, CRD installer RBAC, gateway values)
  • Gateway objects and PDBs carry helm.sh/resource-policy: keep to preserve LoadBalancer IPs across upgrades and uninstalls
  • Supports providers: eks, aks, gke, oke, aro

Test plan

  • AKS: install routing chart with k8s_provider=aks, verify internal and public gateways created
  • Verify helm uninstall nullplatform-routing leaves gateways namespace and LB IPs intact
  • Verify helm upgrade applies annotation/spec changes normally
  • ARO: verify IngressController resources rendered correctly

gdrojas and others added 11 commits May 7, 2026 10:57
…uting chart

Removes gateways.yaml from base chart and retains only the namespace
definition. The namespace is kept (not deleted) during upgrades to prevent
it from entering a Terminating state while the routing chart creates it.
…amespace check

routing chart:
- Fix Gateway listeners: tls.required now defaults to true, ensuring a valid
  HTTPS listener is always rendered (empty listeners caused K8s to reject the object)
- Fix namespace: replace lookup-based conditional with helm.sh/resource-policy=keep
  so the gateways namespace survives Helm uninstall and coexists with Tofu-managed namespaces
- Fix external-dns annotation: only render when dns_name is non-empty; add
  azure.dns_name and gcp.dns_name fields per gateway (parallel to existing aws.dns_name)

base chart:
- Remove ingresscontroler.yaml and pre-install-crd.yaml (now owned by routing chart)
- Remove nullplatform-crd-installer-sa from serviceaccount.yaml (now in routing chart)

agent chart:
- Add namespace.yaml: creates nullplatform-tools namespace if it does not exist
- Add createNamespace value (default: true); set false when namespace is managed externally
…platform/routing module

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r crd-installer

- Move EnvoyFilter request-id-config from base chart; use namespaces.gateway value instead of hardcoded "gateways"
- Add ClusterRole + ClusterRoleBinding nullplatform-crd-installer required by the pre-install job (without them the SA hit Forbidden when installing Gateway API CRDs)
- Add envoy.filters.preserveExternalRequestId toggle to values.yaml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The nullplatform-routing chart now owns gateway, ingress and TLS configuration. Removing the duplicated values from base prevents drift between the two charts.

- values.yaml: drop global.installGatewayV2Crd, namespaces.gateway, ingressControllers, tls.*, gateway (full block), gateways.enabled, gatewayAPI, envoy
- clusterroles.yaml: drop ClusterRole nullplatform-crd-installer (moved to routing)
- clusterrolebindings.yaml: drop ClusterRoleBinding nullplatform-crd-installer-binding (moved to routing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The metrics-extractor Lease was using the literal "nullplatform-tools" namespace instead of the namespaces.nullplatformTools value, breaking the chart when the namespace was overridden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Create charts/routing/README.md.gotmpl following the same pattern as base/agent
- Regenerate all READMEs via helm-docs: base loses the gateway/ingress/tls/envoy values now owned by routing; routing gets its own page; agent picks up the 2.35.0 bump + new options that were already merged

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant