cleanup option

This commit is contained in:
kkb0318
2024-05-12 13:43:55 +09:00
parent 3dc83e9694
commit 782c6a0fea
7 changed files with 37 additions and 9 deletions
+5
View File
@@ -29,6 +29,11 @@ const (
// IRSASetupSpec defines the desired state of IRSASetup
type IRSASetupSpec struct {
// Cleanup, when enabled, allows the IRSASetup to perform garbage collection
// of resources that are no longer needed or managed.
// +required
Cleanup bool `json:"cleanup"`
// Mode specifies the mode of operation. Can be either "selfhosted" or "eks".
Mode string `json:"mode"`
@@ -63,6 +63,11 @@ spec:
required:
- secretRef
type: object
cleanup:
description: |-
Cleanup, when enabled, allows the IRSASetup to perform garbage collection
of resources that are no longer needed or managed.
type: boolean
discovery:
description: |-
Discovery configures the IdP Discovery process, essential for setting up IRSA by locating
@@ -90,6 +95,7 @@ spec:
or "eks".
type: string
required:
- cleanup
- discovery
- mode
type: object
+1
View File
@@ -77,6 +77,7 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
| `cleanup` _boolean_ | Cleanup, when enabled, allows the IRSASetup to perform garbage collection<br />of resources that are no longer needed or managed. | | |
| `mode` _string_ | Mode specifies the mode of operation. Can be either "selfhosted" or "eks". | | |
| `discovery` _[Discovery](#discovery)_ | Discovery configures the IdP Discovery process, essential for setting up IRSA by locating<br />the OIDC provider information. | | |
| `auth` _[Auth](#auth)_ | Auth contains authentication configuration details. | | |
+12
View File
@@ -0,0 +1,12 @@
apiVersion: irsa.kkb0318.github.io/v1alpha1
kind: IRSASetup
metadata:
name: irsa-init
namespace: irsa-manager-system
spec:
cleanup: false
mode: selfhosted
discovery:
s3:
region: ap-northeast-1
bucketName: irsa-manager-test-kkb0010101
+2 -2
View File
@@ -130,7 +130,7 @@ func (r *IRSASetupReconciler) reconcileDelete(ctx context.Context, obj *irsav1al
if err != nil {
return err
}
kubeHandler := handler.NewKubernetesHandler(kubeClient)
kubeHandler := handler.NewKubernetesHandler(kubeClient, obj.Spec.Cleanup)
kubeHandler.Append(secret)
webhookSetup, err := webhook.NewWebHookSetup()
if err != nil {
@@ -180,7 +180,7 @@ func reconcileSelfhosted(ctx context.Context, obj *irsav1alpha1.IRSASetup, awsCl
if err != nil {
return err
}
kubeHandler := handler.NewKubernetesHandler(kubeClient)
kubeHandler := handler.NewKubernetesHandler(kubeClient, obj.Spec.Cleanup)
kubeHandler.Append(secret)
// for webhook setup
@@ -52,7 +52,8 @@ var _ = Describe("IRSASetup Controller", func() {
Namespace: "default",
},
Spec: irsav1alpha1.IRSASetupSpec{
Mode: "selfhosted",
Cleanup: true,
Mode: "selfhosted",
Discovery: irsav1alpha1.Discovery{
S3: irsav1alpha1.S3Discovery{
Region: "ap-northeast-1",
@@ -132,7 +133,8 @@ var _ = Describe("IRSASetup Controller", func() {
Namespace: "default",
},
Spec: irsav1alpha1.IRSASetupSpec{
Mode: "selfhoted",
Cleanup: true,
Mode: "selfhoted",
Discovery: irsav1alpha1.Discovery{
S3: irsav1alpha1.S3Discovery{
Region: "ap-northeast-1",
+7 -5
View File
@@ -10,14 +10,16 @@ import (
)
type KubernetesHandler struct {
client KubernetesClient
objs []client.Object
client KubernetesClient
objs []client.Object
cleanup bool
}
func NewKubernetesHandler(c KubernetesClient) *KubernetesHandler {
func NewKubernetesHandler(c KubernetesClient, cleanup bool) *KubernetesHandler {
return &KubernetesHandler{
client: c,
objs: []client.Object{},
client: c,
objs: []client.Object{},
cleanup: cleanup,
}
}