Skip to content

Conversation

timebertt
Copy link
Member

How to categorize this PR?

/area ipcei
/kind enhancement

What this PR does / why we need it:

This PR continues #12041 and deploys both gardener-resource-manager and the provider extension in gardenadm bootstrap.

Which issue(s) this PR fixes:
Part of #2906

Special notes for your reviewer:

/cc @rfranzke @ScheererJ

Although gardener-resource-manager runs in the control plane namespace (shoot--project--name), it is configured like the runtime/seed resource manager in the garden namespace.
Furthermore, the ManagedResources of extensions are deployed into the control plane namespace.

This deployment mode makes cleanup very simple. Even though we probably don't want to automate this in gardenadm, it helps with development. Instead of recreating the kind cluster, you can reset the state using (orphans global resources like CRDs though):

k -n shoot--garden--root delete mr --all && k delete ns shoot--garden--root extension-provider-local

Release note:

NONE

timebertt added 2 commits May 12, 2025 15:13
We want to reuse the botanist code for `gardenadm bootstrap` as well.
This botanist instance also manages autonomous shoots but it doesn't run the control plane.
Hence, the deployment mode (e.g., for gardener-resource-manager) is different than in the resulting
autonomous shoot cluster itself.
That's why we distinguish between `Shoot.IsAutonomous()` and `Shoot.RunsControlPlane()`.
@gardener-prow gardener-prow bot requested review from rfranzke and ScheererJ May 12, 2025 13:50
@gardener-prow gardener-prow bot added area/ipcei IPCEI (Important Project of Common European Interest) kind/enhancement Enhancement, improvement, extension cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 12, 2025
timebertt added 3 commits May 12, 2025 15:51
With this, we only deploy the provider extension (`Infrastructure` and `Worker`) in `gardenadm bootstrap`.

The TODO about distinguishing medium-touch and high-touch is basically moved from the generic botanist package (`shoot.go`)
to the autonomous botanist package (`extensions.go`).
@ScheererJ
Copy link
Member

/assign

Copy link
Member

@ScheererJ ScheererJ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice to see the medium touch case of autonomous shoot clusters taking more and more shape.

@ScheererJ
Copy link
Member

/lgtm

@gardener-prow gardener-prow bot added the lgtm Indicates that a PR is ready to be merged. label May 13, 2025
Copy link
Contributor

gardener-prow bot commented May 13, 2025

LGTM label has been added.

Git tree hash: df25678d32e3df793e9d8c2ab74372ab1afd9d21

@gardener-prow gardener-prow bot removed the lgtm Indicates that a PR is ready to be merged. label May 13, 2025
@gardener-prow gardener-prow bot requested a review from ScheererJ May 13, 2025 07:52
Copy link
Member

@rfranzke rfranzke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm
/approve

@gardener-prow gardener-prow bot added the lgtm Indicates that a PR is ready to be merged. label May 13, 2025
Copy link
Contributor

gardener-prow bot commented May 13, 2025

LGTM label has been added.

Git tree hash: 2bd90abf0c384c4ebaf9c9c71710bcb6b7129e2e

Copy link
Contributor

gardener-prow bot commented May 13, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rfranzke

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow gardener-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 13, 2025
@gardener-prow gardener-prow bot merged commit 535d277 into gardener:master May 13, 2025
19 checks passed
@timebertt timebertt deleted the gardenadm-bootstrap-extensions branch May 13, 2025 13:37
rfranzke added a commit to rfranzke/gardener that referenced this pull request May 14, 2025
After gardener#12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```
LucaBernstein pushed a commit to rfranzke/gardener that referenced this pull request May 14, 2025
After gardener#12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```
rfranzke added a commit to rfranzke/gardener that referenced this pull request May 14, 2025
After gardener#12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```
gardener-prow bot pushed a commit that referenced this pull request May 14, 2025
* Do not label `machine` `StatefulSet` with `app=machine`

After #12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```

* Increase timeout for building `gardenadm` binary

Since the complexity of the binary has increased in the past weeks, and
since running many e2e in the Prow cluster can lead to CPU shortage,
let's better increase the timeout a bit to prevent running into flakes.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922537540246573056

* Remove `gardener.cloud/role=shoot` label from `gardenadm-high-touch` namespace

to prevent NetworkPolicies to be applied

---------

Co-authored-by: Luca Bernstein <luca.bernstein@sap.com>
gardener-ci-robot pushed a commit to gardener-ci-robot/gardener that referenced this pull request May 14, 2025
After gardener#12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```
gardener-prow bot pushed a commit that referenced this pull request May 15, 2025
* Do not label `machine` `StatefulSet` with `app=machine`

After #12052, `provider-local`
is deployed into the kind cluster. It runs the `dnsconfig` webhook which
reacts on `app=machine` pods: https://github.com/gardener/gardener/blob/f3efe83358ef0a6182d63c759b290bd392d7260f/pkg/provider-local/webhook/dnsconfig/add.go#L63-L64
This `provider-local` is responsible for the medium-touch scenario of
`gardenadm`.

Hence, we actually don't want it to react on the pods related to the
`machine` `StatefulSet` since these are relevant for the high-touch
scenario of `gardenadm`. Let's simply change the labels here to prevent
the webhook from interfering.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664
Here, the `kube-controller-manager` of the kind cluster fails to rollout
the new `machine` pods.

From https://gcsweb.prow.gardener.cloud/gcs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922295612275953664/artifacts/gardener-local/gardener-local-control-plane/pods/kube-system_kube-controller-manager-gardener-local-control-plane_e4d0c8f9c71fba7c8d1b9da5e2da23b7/kube-controller-manager/0.log

```
2025-05-13T14:26:54.433492015Z stderr F E0513 14:26:54.433359       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.440101864Z stderr F E0513 14:26:54.439984       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.444946334Z stderr F E0513 14:26:54.444823       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.455228214Z stderr F E0513 14:26:54.455144       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.501962554Z stderr F E0513 14:26:54.501844       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.587370813Z stderr F E0513 14:26:54.587262       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:54.753085172Z stderr F E0513 14:26:54.752971       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.079471078Z stderr F E0513 14:26:55.079345       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:55.726386972Z stderr F E0513 14:26:55.726251       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
2025-05-13T14:26:57.01175209Z stderr F E0513 14:26:57.011625       1 stateful_set.go:438] "Unhandled Error" err="error syncing StatefulSet gardenadm-high-touch/machine, requeuing: admission webhook \"dnsconfig.local.extensions.gardener.cloud\" denied the request: Service \"coredns\" not found" logger="UnhandledError"
```

* Increase timeout for building `gardenadm` binary

Since the complexity of the binary has increased in the past weeks, and
since running many e2e in the Prow cluster can lead to CPU shortage,
let's better increase the timeout a bit to prevent running into flakes.

Example flake: https://prow.gardener.cloud/view/gs/gardener-prow/logs/ci-gardener-e2e-kind-gardenadm/1922537540246573056

* Remove `gardener.cloud/role=shoot` label from `gardenadm-high-touch` namespace

to prevent NetworkPolicies to be applied

---------

Co-authored-by: rfranzke <rafael.franzke@sap.com>
Co-authored-by: Luca Bernstein <luca.bernstein@sap.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/ipcei IPCEI (Important Project of Common European Interest) cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/enhancement Enhancement, improvement, extension lgtm Indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants