Skip to content

Pin Ziti enrollment releases and configure workload egress #577

Description

@rowan-stein

User request

E2E tests that start workloads and wait for completion must fully work. agynio/e2e PR #214 now exposes the live workload/Ziti failure, but the remaining fix must be made in upstream platform bootstrap/pins/config rather than E2E-only workflow patches.

Related tracking:

Specification

Architecture-backed diagnosis:

  • Agents Orchestrator owns OpenZiti identity creation and enrollment JWT handoff.
  • k8s-runner chart owns workload egress NetworkPolicy templates.
  • bootstrap owns platform source-of-truth pins/config.
  • agynio/e2e#214 should remain coverage/diagnostics only.

Observed failure:

failed to parse JWT: token is unverifiable: error while executing keyfunc: could not retrieve token URL certificate: could not contact remote server [https://ziti.agyn.dev:2496]: Get "https://ziti.agyn.dev:2496": dial tcp 10.43.245.186:2496: connect: connection refused

Required bootstrap changes:

  • Repo: agynio/bootstrap
  • Files likely involved:
    • stacks/platform/variables.tf
    • stacks/platform/main.tf
    • stacks/platform/ziti_workload_dns.tf
    • stacks/apps/variables.tf
    • apps/platform Helm values wiring for k8s-runner / agents-orchestrator

Scope:

  1. Bump agents_orchestrator_chart_version from current 0.13.18 to a release containing the explicit ziti-enroll init-container fix from agents-orchestrator main, including commit c539ac8 and current DNS/enrollment behavior.
  2. Bump k8s_runner_chart_version if required after agynio/k8s-runner#73 lands.
  3. Preserve/configure WORKLOAD_DNS_UPSTREAM for agents-orchestrator using the ziti-workload-dns service IP/source-of-truth value.
  4. Configure k8s-runner workload egress policy values for:
    • Ziti workload DNS TCP/UDP 53.
    • Ziti controller enrollment TCP 2496 or configured ingress port to ziti-controller-client ClusterIP /32.

Acceptance criteria:

  • Terraform plan/render shows agents-orchestrator pinned to a release containing explicit ziti-enroll.
  • k8s-runner chart values include Ziti workload DNS and controller enrollment egress allowances.
  • ziti-workload-dns continues to map ziti.agyn.dev to the controller service as intended.
  • After apply/sync, workload pods can complete ziti-enroll, start sidecar, pass gateway wait, and run agents.
  • agynio/e2e PR fix: update threads chart tag #214 full matrix passes:
    • platform-usage
    • k8s-runner-workloads
    • orchestrator-workloads
    • real-agent-ziti

Suggested verification:

terraform -chdir=stacks/platform plan
terraform -chdir=stacks/apps plan

Check planned values include:

  • agents_orchestrator_chart_version = <new fixed release>
  • k8s-runner version/value changes if applicable
  • WORKLOAD_DNS_UPSTREAM=<ziti-workload-dns ClusterIP>
  • workload egress policy values for Ziti DNS and controller enrollment

After deploy/sync:

kubectl get configmap ziti-workload-dns -n ziti -o yaml
kubectl get networkpolicy agent-workload-egress -n agyn-workloads -o yaml
kubectl get deploy agents-orchestrator -n platform -o jsonpath='{.spec.template.spec.containers[0].image}'
kubectl get app agents-orchestrator -n argocd
kubectl get app k8s-runner -n argocd

Then rerun targeted agynio/e2e workload groups and the full PR #214 matrix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions