Skip to content

Rework local development setup/e2e tests to get rid of deprecated gardener/controlplane Helm chart #11958

@rfranzke

Description

@rfranzke
  • gardener/controlplane Helm chart is deprecated and scheduled for final deletion end of 12/2025
  • We could use this opportunity to restructure our e2e test jobs and setups
  • The gardener-operator-based setup will become the only option for local development
  • Provider Extension setup must also be reworked a little bit

Target Setups

  • Single-node kind cluster w/ operator (make operator-up) with and without registering this kind as a seed
  • Multi-node kind cluster w/ operator w/ node high-availability (make operator-ha-single-zone-up) with and without registering this kind as a seed
  • Multi-node kind cluster w/ operator w/ zone high-availability (make operator-ha-multi-zone-up) with and without registering this kind as a seed
  • Single-node kind2 cluster w/ gardenlet (make kind2-up) to test control plane migration or deployment of gardenlets into remote clusters
  • Multi-node kind2 cluster w/ gardenlet w/ node high-availability (make kind2-ha-single-zone-up) to test control plane migration or deployment of gardenlets into remote clusters
  • Provider Extensions Setup
  • Dual-Stack and IPv6-only single-node kind cluster w/ operator

Target Makefile Rules

  • make kind-up [--ha-single-zone|--ha-multi-zone|--cpm|--cpm-ha-single-zone|--dual|--ipv6] (starts a kind cluster)
  • make operator-up (deployment of gardener-operator, no Garden or Gardenlet resource or anything)
  • make garden-up [--extensions] (deployment of Garden resource, detects automatically which setup (single-node/multi-zone/...))
  • make seed-up [--cpm|--dual|--ipv6] (deployment of garden config and Gardenlet resources, detects automatically which setup (single-node/multi-zone/...) except CPM/DUAL/IPv6 because they need to be in a separate kind cluster)
  • make gardener-up [--dual|--ipv6] (everything combined except kind, detects automatically which setup (single-node/multi-zone/...) except DUAL/IPv6 because they need to be in a separate kind cluster)
  • make gardenadm-up [--high-touch|--medium-touch]

Target File System Structure

./
./dev-setup
./dev-setup/kind
./dev-setup/kind/{calico,cluster,metrics-server,registry*} (everything related to preparing the kind cluster)
./dev-setup/garden
./dev-setup/garden/... (`Garden` manifests for preparing the garden cluster, i.e., no longer use `example/operator/20-garden.yaml` for e2e tests)
./dev-setup/extensions
./dev-setup/extensions/... (`Extension` manifests like `provider-local`, `networking-{calico,cilium}`)
./dev-setup/gardenconfig
./dev-setup/gardenconfig/... (`CloudProfile`, `Project`, `Secrets` and `*Binding`s, etc.)
./dev-setup/gardenlet
./dev-setup/gardenlet/... (`Gardenlet` manifests and patches for setting up `gardenlet`s)
./dev-setup/gardenlet/kind.yaml
./dev-setup/gardenlet/kind2.yaml
./dev-setup/gardenlet/kind2-ha-single-zone.yaml
./dev-setup/gardenadm
./dev-setup/gardenadm/... (see current `example/gardenadm-local` folder)

# Thought: Maybe we could establish a scenarios structure to make it easy find all configuration related to a scenario (e.g., everything related to IPv6 tests)
./dev-setup/scenarios
./dev-setup/scenarios/...

General Considerations

  • Keep operator-up and operator-seed-up two separate scenario, but drastically simplify kustomizations in example/provider-local folder
  • The following folders in example/gardener-local can be dropped and don't need to be moved to ./dev-setup:
    • controlplane (move service-account-issuer secret into kustomizations)
    • etcd
    • kube-apiserver
  • The Helm chart values in example/gardener-local/gardenlet must be translated into Gardenlet resources (or rather kustomize patches if possible) like already done in example/gardener-local/gardenlet/operator

Concrete Work Streams

Metadata

Metadata

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