support eks mode, fixing irsasetup_controller

This commit is contained in:
kkb0318
2024-07-26 20:50:28 +09:00
parent 9d7542b7ad
commit 7f8135d4dc
3 changed files with 66 additions and 10 deletions
+24 -4
View File
@@ -18,6 +18,7 @@ package controller
import (
"context"
"fmt"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
@@ -97,7 +98,11 @@ func (r *IRSASetupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
}()
if !obj.DeletionTimestamp.IsZero() {
err = r.reconcileDelete(ctx, obj, kubeClient)
if obj.Spec.Mode == irsav1alpha1.ModeEks {
err = r.reconcileDeleteEks()
} else {
err = r.reconcileDeleteSelfhosted(ctx, obj, kubeClient)
}
if err != nil {
return ctrl.Result{}, err
}
@@ -118,11 +123,18 @@ func (r *IRSASetupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
}
func (r *IRSASetupReconciler) reconcile(ctx context.Context, obj *irsav1alpha1.IRSASetup, kubeClient *kubernetes.KubernetesClient) error {
if obj.Spec.Mode == irsav1alpha1.ModeEks {
return reconcileEks(obj)
}
err := reconcileSelfhosted(ctx, obj, r.AwsClient, kubeClient)
return err
}
func (r *IRSASetupReconciler) reconcileDelete(ctx context.Context, obj *irsav1alpha1.IRSASetup, kubeClient *kubernetes.KubernetesClient) error {
func (r *IRSASetupReconciler) reconcileDeleteEks() error {
return nil
}
func (r *IRSASetupReconciler) reconcileDeleteSelfhosted(ctx context.Context, obj *irsav1alpha1.IRSASetup, kubeClient *kubernetes.KubernetesClient) error {
if !obj.Spec.Cleanup {
return nil
}
@@ -147,7 +159,7 @@ func (r *IRSASetupReconciler) reconcileDelete(ctx context.Context, obj *irsav1al
if err != nil {
return err
}
issuerMeta, err := issuer.NewS3IssuerMeta(&obj.Spec.Discovery.S3)
issuerMeta, err := issuer.NewOIDCIssuerMeta(obj)
if err != nil {
return err
}
@@ -210,7 +222,7 @@ func reconcileSelfhosted(ctx context.Context, obj *irsav1alpha1.IRSASetup, awsCl
string(irsav1alpha1.SelfHostedReasonFailedKeys),
string(irsav1alpha1.SelfHostedReasonFailedOidc),
)
issuerMeta, err := issuer.NewS3IssuerMeta(&obj.Spec.Discovery.S3)
issuerMeta, err := issuer.NewOIDCIssuerMeta(obj)
if err != nil {
return err
}
@@ -251,6 +263,14 @@ func reconcileSelfhosted(ctx context.Context, obj *irsav1alpha1.IRSASetup, awsCl
return nil
}
// reconcileEks ensures the required IAM OIDC Provider is set for EKS mode.
func reconcileEks(obj *irsav1alpha1.IRSASetup) error {
if obj.Spec.IamOIDCProvider == "" {
return fmt.Errorf("IamOIDCProvider parameter must be set when Mode is 'eks'")
}
return nil
}
func newOIDCIdpFactory(ctx context.Context, obj *irsav1alpha1.IRSASetup, jwk *selfhosted.JWK, awsClient awsclient.AwsClient) (selfhosted.OIDCIdPFactory, error) {
region := obj.Spec.Discovery.S3.Region
bucketName := obj.Spec.Discovery.S3.BucketName