-
Notifications
You must be signed in to change notification settings - Fork 540
Open
Description
gardener/controlplaneHelm 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/
nodehigh-availability (make operator-ha-single-zone-up) with and without registering this kind as a seed - Multi-node kind cluster w/ operator w/
zonehigh-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/
nodehigh-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 ofgardener-operator, noGardenorGardenletresource or anything)make garden-up [--extensions](deployment ofGardenresource, detects automatically which setup (single-node/multi-zone/...))make seed-up [--cpm|--dual|--ipv6](deployment of garden config andGardenletresources, 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-upandoperator-seed-uptwo separate scenario, but drastically simplify kustomizations inexample/provider-localfolder - The following folders in
example/gardener-localcan be dropped and don't need to be moved to./dev-setup:controlplane(moveservice-account-issuersecret into kustomizations)etcdkube-apiserver
- The Helm chart values in
example/gardener-local/gardenletmust be translated intoGardenletresources (or rather kustomize patches if possible) like already done inexample/gardener-local/gardenlet/operator
Concrete Work Streams
- Prerequisites/can happen in parallel/upfront:
- Switch existing e2e tests/scenarios to operator-based setup (no longer run
gardener*-up)- Rework
Garden, extensions, garden config, andGardenletkustomizations (move to/dev-setup) #12213 - Rework
gardenadmkustomizations (move to/dev-setup) #12331 - Rework
ha-single-zonekustomizations (move to/dev-setup) #12345 -
make {operator,garden,seed,gardenadm}-{up,dev,debug,down}, support single-node kind cluster w/gardener-operator#12439 - Support different
Gardenprofiles for the various scenarios (single-node (not yet supported, see above), multi-node (ha-single-zone), multi-zone (ha-multi-zone), dualstack, ipv6) - Support different
Gardenletprofiles for the various scenarios (see above + cpm, cpm-multi-node) - Switch local IPv6 setup to
gardener-operator#12709 - Switch local dual-stack setup to
gardener-operator#12986 - Drop
test-e2e-local-operator-seed#13042 and Cleanupgardener/gardener-e2e-kind-operator-seedjob ci-infra#4558 - Switch
Makefilerules andhack/ci-e2e-*.shscripts to the new profiles
- Rework
- Move
kindsetup into./dev-setup/kindand implement/adaptmake kind-up - Move
gardener-operatordeployment into./dev-setup/operatorand implement/adaptmake operator-up - Define
Gardenmanifests and put them into./dev-setup/gardenand implement/adaptmake garden-up- Generate
ExtensionandController{Deployment,Registration}manifests forprovider-localinto./dev-setup/extensions/provider-localand augmentmake garden-up - Move garden config resources like
CloudProfile,Project, etc. into./dev-setup/gardenconfigand augmentmake garden-up
- Generate
- Translate
gardenletHelm chart values intoGardenletresources (or kustomize patches) and put them into./dev-setup/gardenletand implement/adaptmake seed-up - Adapt provider extensions setup
- Later:
- Simplify kind
ClusterHelm chart (drop complexity for values no longer needed/configured) - Change local IP addresses (
*.1should be virtual-garden-istio-ingressgateway,*.10should be the defaultistio-ingressgateway,*.1{1,2,3}should be the zonal istios ) - Consider using the
provider-localCoreDNS like in the e2e tests also locally such that we can get rid of this - Deploy
operator.gardener.cloud/v1alpha1.Extensions fornetworking-{calico,cilium}instead ofController{Registration,Deployment} - Eliminate
istiowebhook workaround inprovider-localintroduced with Reworkha-single-zonekustomizations (move to/dev-setup) #12345
- Simplify kind
marc1404, timuthy, oliver-goetz, MartinWeindel, tobschli and 4 more
Metadata
Metadata
Assignees
Labels
No labels