agent-platform release v0.1.0
Added
- Initial agentic-platform chart bundling
muster 0.1.197 and agentgateway v1.2.1. Gateway (name agentgateway) and AgentgatewayParameters overlay injecting restricted-PSS securityContext on the controller-rendered data-plane pod.gateway.parameters.serviceType (default ClusterIP) overlays AgentgatewayParameters.spec.service.type so the data-plane Service stays internal; the controller hardcodes LoadBalancer.gateway.parameters.dataPlaneEnv, dataPlaneVolumes, dataPlaneVolumeMounts strategic-merge lists on the AgentgatewayParameters overlay.CiliumNetworkPolicy for the agentgateway controller pod in addition to the data-plane pod (upstream agentgateway chart ships no policies).networking.k8s.io/v1 NetworkPolicy rendering when networkPolicy.flavor: kubernetes — best-effort (no entity selectors, no FQDN egress).networkPolicy.kubernetes.{apiServerCIDR,worldExcludedCIDRs} for the kubernetes flavor.- Top-level
extraObjects: [] rendering arbitrary manifests through tpl alongside the chart. values.schema.json covering top-level keys with a cross-field combo check (muster valkey storage requires valkey.enabled or an explicit URL).UPGRADE.md documenting the breaking changes for the first stable release.
Changed
- CRD lifecycle:
agentgateway-crds is a cluster prerequisite (upstream agentgateway ships controller + CRDs as separate charts). Muster’s CRDs continue to ship inside the umbrella via the muster sub-chart’s templates/crds.yaml. - Data-plane policy selector switched to the Gateway-API standard label
gateway.networking.k8s.io/gateway-name=<gateway.name> (was app.kubernetes.io/name=agentgateway, which matched both the controller and the data plane). - Controller policy selector uses the agentgateway sub-chart’s selector triple (
agentgateway: agentgateway + app.kubernetes.io/name=agentgateway + app.kubernetes.io/instance=<release>). - Data-plane CNP gains xDS egress to the controller on TCP 9978; controller CNP gains xDS ingress from data-plane pods.
CiliumNetworkPolicy egress covers kube-dns, coredns, k8s-dns-node-cache on 53 + 1053 (UDP + TCP); world 80/443; cluster 80/443 for in-cluster ingress (Dex / MCPServers); muster on 8090.- Muster sub-chart’s NetworkPolicy values migrate from
ciliumNetworkPolicy.* to networkPolicy.{enabled,flavor,cilium.allowClusterIngress,kubernetes.*} (muster 0.1.197). Umbrella overrides enabled: true, flavor: cilium, cilium.allowClusterIngress: true. valkey.enabled and muster.muster.oauth.server.enabled default to true. Operators must provide oauth.server.baseUrl, oauth.server.dex.{issuerUrl,clientId}, oauth.server.existingSecret, and valkey.valkey.auth.usersExistingSecret — muster’s template-time fail-guards reject install otherwise.muster.gatewayAPI.httpRoute.parentRefs / .hostnames no longer default to the data-plane Gateway. Muster’s HTTPRoute must attach to the cluster’s public Gateway (typically envoy-gateway-system/giantswarm-default); the muster fail-guard enforces this.- Bundled
giantswarm/valkey-app 0.1.2 as a conditional sub-chart (condition: valkey.enabled). Single Deployment + PVC; Service at muster-valkey.<namespace>.svc:6379. ACL-based auth: a default user with full permissions reads its password from valkey-password in valkey.valkey.auth.usersExistingSecret. - Muster wired to the bundled valkey by default:
muster.muster.oauth.server.storage.type=valkey and storage.valkey.url=muster-valkey:6379. Inert while oauth.server.enabled: false; kicks in the moment OAuth is enabled. networkPolicy.flavor enum changed from cilium | none to cilium | kubernetes. Opt out via networkPolicy.enabled: false.- README is now Flux HelmRelease-first (no Giant Swarm App platform). Adds a “Gateway API CR ownership” section clarifying that only
AgentgatewayParameters is vendor-specific to agentgateway. - Templates grouped under
templates/agentgateway/ (Gateway, AgentgatewayParameters, four NetworkPolicy variants). Chart.yaml description reflects the runtime contract (muster + agentgateway + opt-in Valkey; CRDs as cluster prerequisite). appVersion stays at the umbrella’s own 0.1.0.
Removed
bootstrap.oauth.* values and the templates/oauth-bootstrap-secret.yaml Helm lookup-based Secret generator. Use extraObjects to ship the Secret in the same release, or pre-create it out of band and reference via muster.muster.oauth.server.existingSecret.