From 4cf1cf33dcd4ce4c0b4a0c2ffecf570bc8bd984e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=A0alata?= Date: Wed, 8 Jun 2022 14:42:13 +0200 Subject: [PATCH] Fix reconciliation of fleet pre-token requestor --- Makefile | 5 +++ VERSION | 2 +- .../Chart.yaml | 2 +- .../templates/rbac.yaml | 7 ++++ example/controller-registration.yaml | 28 ++++++++----- hack/generate-controller-registration.sh | 40 +++++++++++-------- .../config/v1alpha1/zz_generated.deepcopy.go | 3 +- pkg/apis/config/zz_generated.deepcopy.go | 3 +- pkg/controller/actuator.go | 11 ++++- 9 files changed, 70 insertions(+), 31 deletions(-) diff --git a/Makefile b/Makefile index 60849ed..98ff13b 100644 --- a/Makefile +++ b/Makefile @@ -121,6 +121,11 @@ check: generate: @$(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/generate.sh ./charts/... ./cmd/... ./pkg/... ./test/... @rm -rf ./pkg/client/fleet/clientset/internalversion; + +.PHONY: generate-charts +generate-charts: + @$(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/generate.sh ./charts/... + .PHONY: format format: @$(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/format.sh ./cmd ./pkg ./test diff --git a/VERSION b/VERSION index 48a912e..ea00f77 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.0.2-DEV +v1.0.4-DEV diff --git a/charts/gardener-extension-shoot-fleet-agent/Chart.yaml b/charts/gardener-extension-shoot-fleet-agent/Chart.yaml index 621a2df..5b2a0d2 100644 --- a/charts/gardener-extension-shoot-fleet-agent/Chart.yaml +++ b/charts/gardener-extension-shoot-fleet-agent/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: A Helm chart for the Gardener Shoot Fleet Agent extension. name: gardener-extension-shoot-fleet-agent -version: 0.1.0 +version: 0.3.3 diff --git a/charts/gardener-extension-shoot-fleet-agent/templates/rbac.yaml b/charts/gardener-extension-shoot-fleet-agent/templates/rbac.yaml index 23e60d9..cdd44af 100644 --- a/charts/gardener-extension-shoot-fleet-agent/templates/rbac.yaml +++ b/charts/gardener-extension-shoot-fleet-agent/templates/rbac.yaml @@ -12,10 +12,17 @@ rules: - extensions.gardener.cloud resources: - clusters + - dnsrecords verbs: - get - list - watch +- apiGroups: + - resources.gardener.cloud + resources: + - managedresources + verbs: + - "*" - apiGroups: - extensions.gardener.cloud resources: diff --git a/example/controller-registration.yaml b/example/controller-registration.yaml index 0fcdbc4..3bb14c9 100644 --- a/example/controller-registration.yaml +++ b/example/controller-registration.yaml @@ -1,20 +1,28 @@ --- apiVersion: core.gardener.cloud/v1beta1 +kind: ControllerDeployment +metadata: + name: extension-shoot-fleet-agent +type: helm +providerConfig: + chart: H4sIAAAAAAAAA+0caW/bRjafBfg/zMpbJClC6rAkt1pksaqspkbjA5brolgsghE5ktiQHO4MKUdNur993xy8JOq0Iye7fGhjco43b97Mu2YeNcHMJj5hBvkQEp871Df4lNLQGLuEhAaeED+sPXsY1AFO2235F2Dxr3xunLQazXaz0xHljU7n9PQZaj9w3K0g4iFmCD1jMOl17TbVf6Uw2Wb9zSlxPWfiU0b2GUMscKfVWrn+7XYrv/7NRv2k/QzVH3uyRfB/vv7H6BqHIWE+RyFFao3R/ZT4aBQ5ru34ExRg6z3sA24eVY7R7dThiEdBQFkID7AxXDRx6Qh5OLSm0PwVYsTFoTMj0DGcZsqxbwsMPplANfXRi4CRsfOB2OjegYZ/eWmiK9+dI+rLroIoFBCGXMcnMLZ5Nnw3DIE8gaRPPQ9Q3PWHyHYYh9qJE9bUHzUJeB79wWrqT1I0ndTkv0kBn/m1DMIRzDUK0NhxCSD91uT3gfgzwu/Fn9ATb/8R7e8wc2jE0fnZQIweMPo7sUJ4cmyCa7oxFELJjFvUJlD21GtdBFvJf3+KWWjOsefuNcYm+W+2Txbkv95ptkr5PwTgwLkjTKx7F80aFRwEyevzWcOsmy3jbHCHnldswi3mBKGs6qGfwCIgS+wLNKYMhVOC3uithIZiA6EfxQZCPbGBULK5zIqPPdJF22y7yiympG6emCdfpPh89bCV/NvUMid07zE2yH9TGPu8/3d6enpSyv8hoFYD0xfMwUJOQ/TCeoma9cb3aNi7RsMBAsHGvnzBYzCJDg4JsqgXYH9uoh5YftmNg8XnhM2IbSr3QFhPBH9dx4ItBfY98m2idEQPnAn4M6Tj8B6Dp/FWNXmFZiZqgpqwSBAizJFPQ+hHoQu7dzhg82X3t+f9wSUQJkY4qtRq4v8YR8EwCXat01DTrKMXokFVV1Vf/k3imNMIPJW5GBdFMF6YzEPTBASImQMPfIsohyVMRzAlkt80EjoKMbTH0COAt3G2JcJhQriEaRgG3Vrt/v7exJJqk7JJTbOO1/SMDaA86feLD96J4Pq/I4fBvEdzBHobuuAREOzie7lwE0agTjh1Prpn4BYJH4xrxks8tsND5oyiMMe7mFBgQLYBcA/2QrU3ROfDKvqhNzwfvpJYfj2//enql1v0a+/mpnd5ez4Yoqsb1L+6PDu/Pb+6hLcfUe/yN/Tz+eXZK0QcsabAVXD+YA5AqCO4CntHIhsSkiMiti08IJYzdiyYnT+JQCuhCQXz4Ev/lDDP4WJ9ufIxAY/reE4o3Uy+PDUYSjSa0O5EqD6xq02zBv9NwfurxWWGRf2QUdcF5cjIRLBCIjT5FK1RlsjUyO4GN0OYv34jHzDMk9RWIRXOFRrEaLtLaBXJ4KxLX1xbXuKLFecoOxPtm0vO6ULBJDF9izIGTipKaUA5Go4qQRb9l+mwlvCosJX9DwnsXdhcfL+ToJ3Pf8D/P22X5z+HgB3X/x0E/KBvuRkG28eCm/y/Vmvx/Oek2Sz9v4PAx48GssnY8cEnEqFZFRl//nlU2WZbHFVEZ+Lbqot6jXHJFmBoxs5EozQM46iSDTeXEBrCiwQTbSaDclOhMGN6TMulkV2bNbAbTHHjqPLe8e2uijVlqNmX7Y8gXB3jyNWv3aMKQu+jEVHYuujjR2TeYTci3JTjX2AfKGBm2gYJksWEnHFxUxePiMtlM4TUy2q8uvEncMd+E4b+EwLPxRbeQisZSDBy06BihTgYaaLHTd5XD53vsu1A+jyrn/IiV7J6uHzHggk3C+mIn9VbsoscD5Dq/YOQJniK+bU8OURVPsXNdqdbTWiRHcwQT1DaJWCOH45R9Rv+j2/4YlNGAsqdkLL5WhyweqQQZXd/lCunH88eRqHguM8tF3OuD0M0MzQrOPGgvC9CMgimqn9/jRpmo2XUgaQ+RBMjiNlCB8b/Gfa1ljvzjRPG4ZBExSHmsCMXnETz/XdAKgXp0lSJSa8apfHwUUYkxNmhVjaMhT2nb9YoH5dgcPmJCxsRCHBszbQ1usxQXYy4Tw79U+vozwk72n+lHD0cGHJLz4BblBkiFBMhJik+I950/tupN/L2/6Reb9dL+38IWDACclXv5KpexYsqNVP+nDi2u0rNX+DgqOKBMNs4xN3YLkkb4fiWG9mJb2ECruKdU2DNbkAYMUTrlwtGTxtb8YjEwYe02swnIZHqYt3Yq/o4PuwCv2hg2SmZlySdv8vv9y76JNTFeh5+QisM/hOv/47yb5PApXMPCne4Dtog/+3TenvR/z8t5f8wsOSVg3DwWirhZ8mCF4r4dnHC44r2tmMiJNIWTD6tyeOsXTrurCHE+aQkm5GZIzD/5HDhAb4V55BdVFdV8ow2Hybowj6NQDcoJnDphFCm2SAv0N9mGfMYrNljjgjFeiCmLLsfJErfp/rUNSlDCBw66z2PvBonFiMxLTrWMzIhWaKwc8GjCbpT+fmAI9HhAra1XUuEpF5MyqdCq5Qj64X0+tFfzVvNBvMH4M+1SHKobuUYVV9umEwcBqgSN7/mj7Pqe607Qsn+FhDHJX0Rl1zuTIJe+Z5liU2/e39xfI3Bz2cpb4wd1ZECuVL5nacDTjO3NLLwOnLdawqyOs/Jr4rsgqQyv+Go52HQommJgWq70WggQ4vI6xoJrVpOePSuk5sr38XDH0Q3K2JMRDdMnGpYIqnldYb29B5APuvGw7lv8dw0BMIpwW44lRK0O/JM540D2Q4XlxqZ25ccWl3dT2tBon6njo+qr6pLyFSaj0EDoq44jFRDraJVdbmKe/SSDkvIF0JGw7FfZ7fSchCa31XEn+U2htrBbwe9s8HNu8HbQV/cnr277F0Mhte9/iBtitBMkP0jo143W4rQ2CGufUPGC8W6QmiqbqK004Oh/RVqTPT5Re/N4A4ovrp5d3U3uPn15vx2meAuUoY44z/XCh3qdUpxiUhGOI2YRfI7KSntStdcn0It9/mEQuZ4qXfeqG9QyjAX6kYeuRC6ixcsYJF1y7LCEx3VUiwLdLYhg/0j8uG6QGL0CIu0wdStonFpybalMc83xbVljb2eXcpjyG1nVXS5MKXVZ8l5lLsxb2fWWXE8nCN5ZUS6LhiOQR9kX1AbcLSa9exMYhY/wP/fMf5TpRmzs80Ym85/TuqnC/EfPJf3PweB4nOdoRSywohvN5nbKu5LRsjsqw0BwajTIr4Vq+8nP0X5emFH+c9dSWyrADbKf6ezKP+t0zL//yCQlf+sxBXfPSkPVumI62wU+IDDIe0bNpJckKOK+KAAu2fK8sW+RS4BuRqPjiSByznIyZAF98xm9am5/uXAjvLPRtjSDSzCUo2/VhNsvP9pLsp/p9k4LeX/ELB0/itW2MRROAXx+kPlBWauhfW1jwtcI+yGiizcdT4CX0jc6G4483jk89+9jrqWO3kyt8E2RvN8t6Ha/LIni1wZ3RjQ33nDaBSoaRioWlWHv2lAKktVHMNlJejXUVLxbfWQiZd7yP/OHwJtkP8WyP2C/DdbZf7/YeCzyP+2EvrVXveslvaVqq9ICViKj1y92T4XR6nM5os6YUJC9eA6XD/di1uhIgKSMbYYXyu2pLhQFz1wjmnjxfcasDiMdpiseAzSxyiAbUe2V7lJLPog/sJ7Zv5KNArXFpaWenGpzExywpgNhYODPcDq7CedW2bKBUu9SlTX7DVGXcKXSkYg1o4/0RWZNouV+xAu9zZI0C5rVU3u05SFXDCY8EpmIL6ZSmmKk/eA2ot1WN03rbC4BYSJm/Bi4tIsiGVsj8MVi4IecPxNiyrV0tLCxCM/Atq4Rh7Y6NrtLjmyBGWnn/AnlrAHGqAf1O78P7VDwID4vide6zUcFM0KLPhu7OLRSGT4KvMXHxdmb3R35/9Wp4RP7Sn9b8KO/n9el24ZCWyK/9v1pfO/9mkZ/x8EltRv9hIgL9Vl+tdKPfzUq7g/7Cj/swDv/jsgG+S/0eosfv/XPCnzPw8DCxfiYn3VV8X2YtZ3FTwKyi28/A1HsxqrDGgcOtDkmto93ZqwvTWHAdRsrT2SDLWCGcVebC5FK1+olU6SWyZLnVzCQlKnkg+ef/s8vaf3HL/nuvSeZJO9AF0QSZqTT/Wrq8kyUxwm9BPf38fdqmtms9gtm/ohUjQ9yuZ70aC67kOG7rn8qRNCIGsQAKQpSoWZx6JiOfs4zaTYVpGrsCO3vqpIJVNkEsDEfLKtzbTdl5Wu/+iwlf6fKS7t+wNQG/T/iUj2WPz9t06j1P+HAJUDq/Rh/NliF83F74SoW1gT/xExYjGh7rcVvBBPukg6DPI1yKTO9tx7POfig738oYPQMdBc61upN6vtuiePVxItVu20LhxZJH/fY0PjRvM72fqoAuItm2rLlmarHRdZgeNlfX6cavNGve6lRfFgcqwtdE5VmEVJUybnNM59yebFAkpRujIbtYvG2OVyEpns2tSKLeE6qmS/01Wz0rllOu9GZWnKY5/st9LHIzC2Mt0GZmBnqsQv20ic+hyZxSeKIu+ZcKCLkYxXDxyj8vYeu7pbP27ObN1owdrH5+PQNf2M+V7g1b8uljQQH1vAkDHG/s0ZouqYQk5Uf5Wc/oxMPNVjkc2e/bBZFsG6znVxXPBgnogMhQRrjkMa/w5syiNLMDwy5wpH8ebyR5k+D3eyqB+HRVmMn5lP+aGOKsuZ6l30z3+JmmNUlHcqPyMUFKqcaM3afJ6sYpvyh9RklPa6yejuiRNOo5EJ7Ev0dW1V76zOJ5E5WVDzejZp1mf800V6+WI0Ut9X62bT/P6gl9cllFBCCSWUUEIJJZRQQgkllFBCCSWUUEIJJZRQQgkllFBCCSWUUIKE/wKJB60LAHgAAA== + values: + image: + tag: v1.0.4-DEV + fleetManager: + kubeconfig: #base64 encoded kubeconfig of Fleet manager cluster with user that has write access to Cluster and Secret + namespace: clusters +--- +apiVersion: core.gardener.cloud/v1beta1 kind: ControllerRegistration metadata: name: extension-shoot-fleet-agent spec: + deployment: + deploymentRefs: + - name: extension-shoot-fleet-agent resources: - kind: Extension type: shoot-fleet-agent globallyEnabled: true - deployment: - type: helm - providerConfig: - chart: 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 - values: - image: - tag: v1.0.1-DEV - fleetManager: - kubeconfig: #base64 encoded kubeconfig of Fleet manager cluster with user that has write access to Cluster and Secret - namespace: clusters + primary: true diff --git a/hack/generate-controller-registration.sh b/hack/generate-controller-registration.sh index fb91ca6..5fc6895 100755 --- a/hack/generate-controller-registration.sh +++ b/hack/generate-controller-registration.sh @@ -37,7 +37,9 @@ EOM if [ "$1" == "--optional" ]; then shift - MODE=$'\n globallyEnabled: false' + GLOBALLY_ENABLED='false' +else + GLOBALLY_ENABLED='true' fi NAME="$1" CHART_DIR="$2" @@ -67,7 +69,7 @@ trap cleanup EXIT ERR INT TERM export HELM_HOME="$temp_helm_home" [ "$(helm version --client --template "{{.Version}}" | head -c2 | tail -c1)" = "3" ] || helm init --client-only > /dev/null 2>&1 -helm package "$CHART_DIR" --version "$VERSION" --app-version "$VERSION" --destination "$temp_dir" > /dev/null +helm package "$CHART_DIR" --app-version "$VERSION" --destination "$temp_dir" > /dev/null tar -xzm -C "$temp_extract_dir" -f "$temp_dir"/* chart="$(tar --sort=name -c --owner=root:0 --group=root:0 --mtime='UTC 2019-01-01' -C "$temp_extract_dir" "$(basename "$temp_extract_dir"/*)" | gzip -n | base64 | tr -d '\n')" @@ -76,10 +78,27 @@ mkdir -p "$(dirname "$DEST")" cat < "$DEST" --- apiVersion: core.gardener.cloud/v1beta1 +kind: ControllerDeployment +metadata: + name: $NAME +type: helm +providerConfig: + chart: $chart + values: + image: + tag: $VERSION + fleetManager: + kubeconfig: #base64 encoded kubeconfig of Fleet manager cluster with user that has write access to Cluster and Secret + namespace: clusters +--- +apiVersion: core.gardener.cloud/v1beta1 kind: ControllerRegistration metadata: name: $NAME spec: + deployment: + deploymentRefs: + - name: $NAME resources: EOM @@ -88,22 +107,11 @@ for kind_and_type in "${KINDS_AND_TYPES[@]}"; do TYPE="$(echo "$kind_and_type" | cut -d ':' -f 2)" cat <> "$DEST" - kind: $KIND - type: $TYPE$MODE - globallyEnabled: true + type: $TYPE + globallyEnabled: $GLOBALLY_ENABLED + primary: true EOM done -cat <> "$DEST" - deployment: - type: helm - providerConfig: - chart: $chart - values: - image: - tag: $VERSION - fleetManager: - kubeconfig: #base64 encoded kubeconfig of Fleet manager cluster with user that has write access to Cluster and Secret - namespace: clusters -EOM echo "Successfully generated controller registration at $DEST" diff --git a/pkg/apis/config/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/config/v1alpha1/zz_generated.deepcopy.go index 62b3b45..b20ce38 100644 --- a/pkg/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,8 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* -Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +Copyright (c) SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/apis/config/zz_generated.deepcopy.go b/pkg/apis/config/zz_generated.deepcopy.go index f6d9e51..dcffc46 100644 --- a/pkg/apis/config/zz_generated.deepcopy.go +++ b/pkg/apis/config/zz_generated.deepcopy.go @@ -1,7 +1,8 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* -Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +Copyright (c) SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/controller/actuator.go b/pkg/controller/actuator.go index 0d009c0..38ae604 100644 --- a/pkg/controller/actuator.go +++ b/pkg/controller/actuator.go @@ -108,6 +108,11 @@ func (a *actuator) ensureDependencies(ctx context.Context, cluster *extensions.C return utils.RunParallelFunctions(dependencyFunctions) } +// isShootedSeed looks into the Cluster object to determine whether we are in a Shooted Seed cluster +func isShootHibernated(cluster *extensions.Cluster) bool { + return cluster.Shoot.Status.IsHibernated +} + // Reconcile the Extension resource. func (a *actuator) Reconcile(ctx context.Context, ex *extensionsv1alpha1.Extension) error { namespace := ex.GetNamespace() @@ -119,6 +124,10 @@ func (a *actuator) Reconcile(ctx context.Context, ex *extensionsv1alpha1.Extensi if isShootedSeedCluster(cluster) { return a.updateStatus(ctx, ex) } + if isShootHibernated(cluster) { + return a.updateStatus(ctx, ex) + } + shootsConfigOverride := &config.Config{} if ex.Spec.ProviderConfig != nil { //parse providerConfig defaults override for this Shoot if _, _, err := a.decoder.Decode(ex.Spec.ProviderConfig.Raw, nil, shootsConfigOverride); err != nil { @@ -195,7 +204,7 @@ func (a *actuator) InjectScheme(scheme *runtime.Scheme) error { func (a *actuator) ReconcileClusterInFleetManager(ctx context.Context, namespace string, cluster *extensions.Cluster, override *config.Config) error { a.logger.Info("Starting with already registered check") labels := prepareLabels(cluster, getProjectConfig(cluster, &a.serviceConfig), getProjectConfig(cluster, override)) - registered, err := a.getFleetManager(cluster).GetCluster(ctx, cluster.Shoot.Name) + registered, err := a.getFleetManager(cluster).GetCluster(ctx, buildCrdName(cluster)) // We cannot find the cluster because of an unknown error if err != nil && !errors.IsNotFound(err) {