Skip to content

Commit 4aee6b3

Browse files
authored
Merge pull request #176 from juergen-kaiser/bugfixing
Bugfixing etc.
2 parents 5e4ed1e + 090ac36 commit 4aee6b3

5 files changed

Lines changed: 28 additions & 43 deletions

File tree

src/services/gardener/pkg/stub/handler.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ func (h *Handler) sync(shootCluster *v1alpha1.ShootCluster, log *logrus.Entry) e
113113

114114
if shootCluster.Status.Status != oldStatus || shootCluster.Status.Message != oldMsg {
115115
if err := action.Update(shootCluster); err != nil {
116-
log.Error("failed to update cr. err: ", err)
116+
log.Error("failed to update cr after sync. err: ", err)
117117
return err
118118
}
119119
}
120120

121121
if shootCluster.Status.Status == v1alpha1.ShootClusterStateShootReady {
122-
if err := h.injectCollectorsAndUpdateState(shootCluster, log); err != nil {
122+
if err := h.injectCollectorsAndUpdateState(shootCluster, log); err != nil && !errors.IsResourceExpired(err) {
123123
return err
124124
}
125125
}
@@ -197,7 +197,9 @@ func (h *Handler) injectCollectorsAndUpdateState(shootCluster *v1alpha1.ShootClu
197197

198198
shootCluster.Status.Status = v1alpha1.ShootClusterStateReady
199199
if err := action.Update(shootCluster); err != nil {
200-
log.Error("failed to update cr. err: ", err)
200+
if !errors.IsResourceExpired(err) { // deletion might be triggered
201+
log.Error("failed to update cr during collector injection. err: ", err)
202+
}
201203
return err
202204
}
203205

@@ -261,6 +263,11 @@ func (h *Handler) getRemoteClusterFromSecret(ns *v1alpha1.ShootCluster, log *log
261263
}
262264

263265
func (h *Handler) delete(sc *v1alpha1.ShootCluster, log *logrus.Entry) error {
266+
if len(sc.GetFinalizers()) == 0 { // work was finished in a previous run. We just got this cr again before it was deleted
267+
log.Debug("got a to-delete cr, but work was already done -> ignore")
268+
return nil
269+
}
270+
264271
if sc.Status.Status == v1alpha1.ShootClusterStateShootReady {
265272
cluster, err := h.getRemoteClusterFromSecret(sc, log)
266273
if err != nil && !errors.IsNotFound(err) {
@@ -273,6 +280,7 @@ func (h *Handler) delete(sc *v1alpha1.ShootCluster, log *logrus.Entry) error {
273280

274281
sc.Status.Status = v1alpha1.ShootClusterStateDeleting
275282
if err := action.Update(sc); err != nil {
283+
log.Errorf("couldn't update cluster state to %s. err: %s", sc.Status.Status, err)
276284
return err
277285
}
278286

src/services/gardener/pkg/stub/shootOperations/common/constants.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package common
22

33
const (
4-
EnvCredentialSecretName = "CRENDENTIALS_SECRET" // env variable for name of input secret
4+
EnvCredentialSecretName = "CREDENTIALS_SECRET" // env variable for name of input secret
55
KeyGardenKubectlInSecret = "garden_kubecfg"
66

77
// output secret
88
LabelForTargetSecret = "service.infrabox.net/secret-name"
99

1010
// keys of "output" entries
1111
KeyNameOfShootKubecfgInSecret = "config"
12-
KeyNameOfShootKubecfgKeyInSecret = "kubecfg.key"
1312
KeyNameOfShootCaCrtInSecret = "ca.crt"
14-
KeyNameOfShootKubecfgCrtInSecret = "kubecfg.crt"
13+
KeyNameOfShootKubecfgKeyInSecret = "client.key"
14+
KeyNameOfShootKubecfgCrtInSecret = "client.crt"
1515
KeyNameOfShootUserInSecret = "username"
1616
KeyNameOfShootPasswordInSecret = "password"
1717
KeyNameOfShootEndpointInSecret = "endpoint"

src/services/gardener/pkg/stub/shootOperations/delete.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import (
1818
)
1919

2020
func deleteShootCluster(shoots gardenV1beta1.ShootInterface, shootCluster *v1alpha1.ShootCluster, log *logrus.Entry) {
21-
logSuccess := func() { log.Infof("successfully triggered deletion of shoot %s", shootCluster.Status.ClusterName) }
21+
logSuccess := func() { log.Debugf("successfully triggered deletion of shoot %s", shootCluster.Status.ClusterName) }
2222

23-
log.Infof("Try to delete shoot %s in the namespace %s", shootCluster.Status.ClusterName, shootCluster.Status.GardenerNamespace)
23+
log.Debugf("Try to delete shoot %s in the namespace %s", shootCluster.Status.ClusterName, shootCluster.Status.GardenerNamespace)
2424
err := setDeletionConfirmation(shoots, shootCluster.Status.ClusterName, log)
2525
if err != nil {
2626
if apiErrors.IsNotFound(err) {
@@ -86,9 +86,9 @@ func createDeletionConfirmationJPatch(shoot *v1beta1.Shoot) ([]byte, error) {
8686
return nil, errors.New("Couldn't marshal old shoot: " + err.Error())
8787
}
8888
if shoot.GetAnnotations() == nil {
89-
shoot.Annotations = map[string]string{"confirmation.gardener.sapcloud.io/deletion": "true"}
89+
shoot.Annotations = map[string]string{"confirmation.garden.sapcloud.io/deletion": "true"}
9090
} else {
91-
shoot.GetAnnotations()["confirmation.gardener.sapcloud.io/deletion"] = "true"
91+
shoot.GetAnnotations()["confirmation.garden.sapcloud.io/deletion"] = "true"
9292
}
9393
tjson, err := json.Marshal(shoot)
9494
if err != nil {

src/services/gardener/pkg/stub/shootOperations/shoot_operator.go

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
corev1 "k8s.io/api/core/v1"
1414
apiErrors "k8s.io/apimachinery/pkg/api/errors"
1515
"k8s.io/apimachinery/pkg/apis/meta/v1"
16+
"k8s.io/apimachinery/pkg/runtime/schema"
1617

1718
"github.com/sap/infrabox/src/services/gardener/pkg/apis/gardener/v1alpha1"
1819
"github.com/sap/infrabox/src/services/gardener/pkg/stub/shootOperations/common"
@@ -58,11 +59,6 @@ func (so *ShootOperator) Sync(shootCluster *v1alpha1.ShootCluster) error {
5859
return err
5960
}
6061

61-
// shoot creation was triggered or is completed
62-
if err := so.setFinalizerIfNotPresent(shootCluster); err != nil {
63-
return err
64-
}
65-
6662
if len(shootCluster.Status.Status) == 0 {
6763
shootCluster.Status.Status = v1alpha1.ShootClusterStateCreating
6864
shootCluster.Status.Message = ""
@@ -88,17 +84,6 @@ func (so *ShootOperator) Sync(shootCluster *v1alpha1.ShootCluster) error {
8884
return err
8985
}
9086

91-
func (so *ShootOperator) setFinalizerIfNotPresent(shootCluster *v1alpha1.ShootCluster) error {
92-
if len(shootCluster.GetFinalizers()) == 0 {
93-
shootCluster.SetFinalizers([]string{"datahub.sap.com"})
94-
if err := so.operatorSdk.Update(shootCluster); err != nil {
95-
so.log.Error("Failed to set finalizers")
96-
return err
97-
}
98-
}
99-
return nil
100-
}
101-
10287
func (so *ShootOperator) syncSecret(shootCluster *v1alpha1.ShootCluster, shootCredsSecret *corev1.Secret, clientGetter k8sClientCache.ClientGetter) {
10388
secretWeWant := newSecretFromShootCredSecr(shootCluster, shootCredsSecret)
10489

@@ -213,14 +198,12 @@ func extractEndpoint(s *corev1.Secret) []byte {
213198
}
214199

215200
func setShootClusterCrAsOwner(shootCluster *v1alpha1.ShootCluster, secret *corev1.Secret) {
216-
gvk := shootCluster.GetObjectKind().GroupVersionKind()
217201
secret.OwnerReferences = []v1.OwnerReference{
218-
{
219-
APIVersion: gvk.Version,
220-
Name: shootCluster.GetName(),
221-
Kind: gvk.Kind,
222-
UID: shootCluster.GetUID(),
223-
},
202+
*v1.NewControllerRef(shootCluster, schema.GroupVersionKind{
203+
Group: v1alpha1.SchemeGroupVersion.Group,
204+
Version: v1alpha1.SchemeGroupVersion.Version,
205+
Kind: shootCluster.Kind,
206+
}),
224207
}
225208
}
226209

@@ -298,10 +281,10 @@ func (so *ShootOperator) Delete(shootCluster *v1alpha1.ShootCluster) error {
298281

299282
shootCluster.SetFinalizers([]string{})
300283
if err := so.operatorSdk.Update(shootCluster); err != nil {
301-
so.log.Errorf("Could not update shootClusterstructure object (removing finalizers). err: %s", err)
284+
so.log.Errorf("Could not update shootCluster object (removing finalizers). err: %s", err)
302285
return err
303286
} else {
304-
so.log.Infof("successfully deleted shootClusterstructure %s", shootCluster.GetName())
287+
so.log.Debugf("successfully deleted shootCluster %s", shootCluster.GetName())
305288
}
306289

307290
return nil

src/services/gardener/pkg/stub/shootOperations/shoot_operator_test.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,9 @@ func TestShootOperator_SimpleSyncForEmptyCluster(t *testing.T) {
225225
t.Fatal(err)
226226
}
227227

228-
storedCluster := &v1alpha1.ShootCluster{}
229-
ShootCluster.DeepCopyInto(storedCluster)
230-
if err := mock.Get(storedCluster); err != nil {
231-
t.Fatal(err)
232-
}
233-
234228
// shoot cluster isn't ready (we didn't set its state accordingly) => state also musn't be ready
235-
if storedCluster.Status.Status == v1alpha1.ShootClusterStateShootReady {
236-
t.Fatalf("wrong state. cluster shouldn't be ready, but got: %s", storedCluster.Status.Status)
229+
if ShootCluster.Status.Status == v1alpha1.ShootClusterStateShootReady {
230+
t.Fatalf("wrong state. cluster shouldn't be ready, but got: %s", ShootCluster.Status.Status)
237231
}
238232
}
239233

0 commit comments

Comments
 (0)