Skip to content

Commit

Permalink
chore: migrate finalizers
Browse files Browse the repository at this point in the history
  • Loading branch information
tmilos77 committed Feb 3, 2025
1 parent 04e4d2f commit 5272aa0
Show file tree
Hide file tree
Showing 21 changed files with 945 additions and 12 deletions.
4 changes: 0 additions & 4 deletions api/cloud-control/v1beta1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,3 @@ const (
StateWarning StatusState = "Warning"
StateDeleting StatusState = "Deleting"
)

const (
DO_NOT_USE_FinalizerName = "cloud-control.kyma-project.io/deletion-hook"
)
5 changes: 0 additions & 5 deletions api/cloud-resources/v1beta1/finalizer.go

This file was deleted.

1 change: 1 addition & 0 deletions internal/controller/cloud-resources/gcpnfsvolume_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cloudresources

import (
"fmt"
"github.com/kyma-project/cloud-manager/api"
cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1"
cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1"
kcpiprange "github.com/kyma-project/cloud-manager/pkg/kcp/iprange"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cloudresources

import (
"fmt"
"github.com/kyma-project/cloud-manager/api"

cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1"
cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1"
Expand Down
1 change: 1 addition & 0 deletions internal/controller/cloud-resources/iprange_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cloudresources

import (
"fmt"
"github.com/kyma-project/cloud-manager/api"
"time"

"github.com/kyma-project/cloud-manager/pkg/skr/awsnfsvolume"
Expand Down
19 changes: 19 additions & 0 deletions pkg/migrateFinalizers/finalizers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package migrateFinalizers

import "github.com/kyma-project/cloud-manager/api"

const newFinalizer = api.CommonFinalizerDeletionHook
const oldFinalizer1 = "cloud-control.kyma-project.io/deletion-hook"
const oldFinalizer2 = "cloud-resources.kyma-project.io/deletion-hook"

type finalizerInfo struct {
AddFinalizers []string
RemoveFinalizers []string
}

func newFinalizerInfo() *finalizerInfo {
return &finalizerInfo{
AddFinalizers: []string{newFinalizer},
RemoveFinalizers: []string{oldFinalizer1, oldFinalizer2},
}
}
95 changes: 95 additions & 0 deletions pkg/migrateFinalizers/kcp_fixture_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: IpRange
spec:
remoteRef:
name: name
namespace: ns
scope:
name: scope
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: Network
spec:
network:
reference:
gcp:
gcpProject: project-abcde-1234
networkName: some-network
scope:
name: scope
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: NfsInstance
spec:
ipRange:
name: some-ip-range
instance:
aws:
performanceMode: generalPurpose
throughput: bursting
remoteRef:
name: name
namespace: ns
scope:
name: scope
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: Nuke
spec:
scope:
name: scope
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: RedisInstance
spec:
instance:
gcp:
memorySizeGb: 10
tier: BASIC
ipRange:
name: iprange1
remoteRef:
name: name
namespace: ns
scope:
name: scope
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: Scope
spec:
kymaName: kyma
provider: gcp
region: us-east1
scope:
gcp:
project: project-abcde-123
vpcNetwork: vpcnetwork-123
shootName: shot123
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: SkrStatus
spec:
brokerPlan: plan
globalAccount: gacc
kymaName: kyma
provider: gcp
region: us-east1
shootName: shoot123
subAccount: subacc567
---
apiVersion: cloud-control.kyma-project.io/v1beta1
kind: VpcPeering
spec:
remoteRef:
name: name
namespace: ns
scope:
name: scope
details:
localNetwork:
name: local-net
remoteNetwork:
name: remote-net
---
apiVersion: operator.kyma-project.io/v1beta2
kind: Kyma
77 changes: 77 additions & 0 deletions pkg/migrateFinalizers/kinds.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package migrateFinalizers

import (
"reflect"
"strings"

"github.com/elliotchance/pie/v2"
"github.com/kyma-project/cloud-manager/pkg/util"
coordinationv1 "k8s.io/api/coordination/v1"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"

cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1"
cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1"
)

const kcpNamespace = "kcp-system"

func newKindInfo(list client.ObjectList, title string) KindInfo {
if title == "" {
x := reflect.ValueOf(list).Elem().Type().Name()
title = strings.TrimSuffix(x, "List")
}
return KindInfo{
Title: title,
List: list,
}
}

type kindInfoProvider func() []KindInfo

func newKindsForKcp() []KindInfo {
return pie.Map([]KindInfo{
newKindInfo(&cloudcontrolv1beta1.IpRangeList{}, "KcpIpRange"),
newKindInfo(&cloudcontrolv1beta1.NetworkList{}, ""),
newKindInfo(&cloudcontrolv1beta1.NfsInstanceList{}, ""),
newKindInfo(&cloudcontrolv1beta1.NukeList{}, ""),
newKindInfo(&cloudcontrolv1beta1.RedisInstanceList{}, ""),
newKindInfo(&cloudcontrolv1beta1.ScopeList{}, ""),
newKindInfo(&cloudcontrolv1beta1.SkrStatusList{}, ""),
newKindInfo(&cloudcontrolv1beta1.VpcPeeringList{}, ""),
{
Title: "Kyma",
List: util.NewKymaListUnstructured(),
},
}, func(x KindInfo) KindInfo {
x.Namespace = kcpNamespace
return x
})
}

func newKindsForSkr() []KindInfo {
return []KindInfo{
newKindInfo(&cloudresourcesv1beta1.AwsNfsBackupScheduleList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AwsNfsVolumeList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AwsNfsVolumeBackupList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AwsNfsVolumeRestoreList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AwsRedisInstanceList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AwsVpcPeeringList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AzureRedisInstanceList{}, ""),
newKindInfo(&cloudresourcesv1beta1.AzureVpcPeeringList{}, ""),
newKindInfo(&cloudresourcesv1beta1.CceeNfsVolumeList{}, ""),
newKindInfo(&cloudresourcesv1beta1.CloudResourcesList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpNfsBackupScheduleList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpNfsVolumeList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpNfsVolumeBackupList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpNfsVolumeRestoreList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpRedisInstanceList{}, ""),
newKindInfo(&cloudresourcesv1beta1.GcpVpcPeeringList{}, ""),
newKindInfo(&cloudresourcesv1beta1.IpRangeList{}, "SkrIpRange"),
newKindInfo(&corev1.ConfigMapList{}, ""),
newKindInfo(&corev1.SecretList{}, ""),
newKindInfo(&corev1.PersistentVolumeList{}, ""),
newKindInfo(&corev1.PersistentVolumeClaimList{}, ""),
newKindInfo(&coordinationv1.LeaseList{}, ""),
}
}
Loading

0 comments on commit 5272aa0

Please sign in to comment.