Skip to content

Ambient tasks to beta #41281

@howardjohn

Description

@howardjohn

This issue aims to track small chunks of work to be done to progress ambient to beta.

Using this issue

Each list entry is intended to be a small task that can be picked up by anyone interested in contributing.
These individual entries can be converted into individual issues if they need broader tracking/conversation/etc.
If you are planning to work on an issue, add your name next to it to claim it (or convert to an issue and assign to yourself)

Contributing to Ambient follows the same procedures as contributing to master, but development occurs on https://github.com/istio/istio/commits/experimental-ambient.

Please feel free to add entries by editing this comment

Tasks

Test Infra

Installation

  • Split ztunnel daemonset to its own chart (owner: @zirain)
  • Tune various ztunnel configurations, including securityContext, rollout strategies, priorityClass, etc.
  • Consider running ztunnel in kube-system, or at least make it possible to (to allow priorityClass usage)

Telemetry

Certificates

Currently, ztunnel fetches certificates by using a mounted kubelet credential from the node, getting a pod's token using TokenRequest, then sending a standard request to the CA.

This has issues since kubelet credential is overly broad privileged and not portable. Additionally, the whole flow has a lot of complexity. Importing k8s libraries into ztunnel also leads to binary bloat.

Instead, we should use ztunnel's own credential to authenticate to the Istiod CA. Then, Istiod can perform the node-local check itself.

  • Make Istiod CA allow this node-local check (owner: @howardjohn ) ambient: ca: Implement node authorization #41379
    • CA takes Lister for Pods as input
    • CA has a user facing config to opt-in specific service accounts to use node authentication. This should default to ztunnel's service account only.
    • On request, if the CSR is not for "self", check if it is in "node local" auth mode. If so, check all other pods on the same node and verify at least one is running as the SA
  • Modify ztunnel to no longer use mount kubelet cert, and instead use its own token for all request. Can remove the TokenRequest deadcode. owner: @howardjohn
  • Modify ztunnel templates to no longer mount kubelet cert. owner: @howardjohn
  • Modify XDS generation to just encode the identity to request, not the identity+pod UID. owner: @howardjohn
  • Ensure no more client-go dependencies in ztunnel to help with binary sizes

CNI

Rest of the details will likely depend on resolution to ^

Ztunnel

Rest of details will depend on resolution to ^. Once that is complete, this will be filled out

HBONE

General

  • Design how ztunnel (singleton) will interact with revisions
  • Code cleanup - properly use informers, controllers, etc. At some point, much of the added code was doing direct reads instead of through listers, etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ambientIssues related to ambient meshlifecycle/staleproofIndicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions