From a3a1a6d59a59089d7f94662bdcc54efc06a87abf Mon Sep 17 00:00:00 2001 From: kkb0318 Date: Thu, 16 May 2024 22:21:17 +0900 Subject: [PATCH] serviceaccount --- internal/controller/irsa_controller.go | 3 +- internal/manifests/irsa_serviceaccount.go | 1 - internal/manifests/serviceaccount.go | 34 +++++++++++++++++++ internal/selfhosted/webhook/base_manifests.go | 12 ++----- 4 files changed, 37 insertions(+), 13 deletions(-) delete mode 100644 internal/manifests/irsa_serviceaccount.go create mode 100644 internal/manifests/serviceaccount.go diff --git a/internal/controller/irsa_controller.go b/internal/controller/irsa_controller.go index ffc71de..bef8ece 100644 --- a/internal/controller/irsa_controller.go +++ b/internal/controller/irsa_controller.go @@ -49,8 +49,7 @@ type IRSAReconciler struct { func (r *IRSAReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { _ = log.FromContext(ctx) - // TODO(user): your logic here - + // roleArn: arn:aws:iam::{accountId}:role/{roleName} return ctrl.Result{}, nil } diff --git a/internal/manifests/irsa_serviceaccount.go b/internal/manifests/irsa_serviceaccount.go deleted file mode 100644 index afc040d..0000000 --- a/internal/manifests/irsa_serviceaccount.go +++ /dev/null @@ -1 +0,0 @@ -package manifests diff --git a/internal/manifests/serviceaccount.go b/internal/manifests/serviceaccount.go new file mode 100644 index 0000000..9fac6a3 --- /dev/null +++ b/internal/manifests/serviceaccount.go @@ -0,0 +1,34 @@ +package manifests + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" +) + +type ServiceAccountBuilder struct { + annotation map[string]string +} + +func NewServiceAccountBuilder() *ServiceAccountBuilder { + return &ServiceAccountBuilder{} +} + +func (b *ServiceAccountBuilder) WithAnnotation(annotation map[string]string) *ServiceAccountBuilder { + b.annotation = annotation + return b +} + +func (b *ServiceAccountBuilder) Build(namespacedName types.NamespacedName) *corev1.ServiceAccount { + return &corev1.ServiceAccount{ + TypeMeta: metav1.TypeMeta{ + APIVersion: corev1.SchemeGroupVersion.String(), + Kind: "ServiceAccount", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: namespacedName.Name, + Namespace: namespacedName.Namespace, + Annotations: b.annotation, + }, + } +} diff --git a/internal/selfhosted/webhook/base_manifests.go b/internal/selfhosted/webhook/base_manifests.go index 493b1e4..776e5e1 100644 --- a/internal/selfhosted/webhook/base_manifests.go +++ b/internal/selfhosted/webhook/base_manifests.go @@ -1,6 +1,7 @@ package webhook import ( + "github.com/kkb0318/irsa-manager/internal/manifests" regv1 "k8s.io/api/admissionregistration/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -136,16 +137,7 @@ func (b *baseManifestFactory) deployment() *appsv1.Deployment { } func (b *baseManifestFactory) serviceAccount() *corev1.ServiceAccount { - return &corev1.ServiceAccount{ - TypeMeta: metav1.TypeMeta{ - APIVersion: corev1.SchemeGroupVersion.String(), - Kind: "ServiceAccount", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: b.serviceAccountMeta.Name, - Namespace: b.serviceAccountMeta.Namespace, - }, - } + return manifests.NewServiceAccountBuilder().Build(b.serviceAccountMeta) } func (b *baseManifestFactory) clusterRole() *rbacv1.ClusterRole {