diff --git a/internal/controller/irsasetup_controller.go b/internal/controller/irsasetup_controller.go index e5fe6c8..a220a4e 100644 --- a/internal/controller/irsasetup_controller.go +++ b/internal/controller/irsasetup_controller.go @@ -70,13 +70,23 @@ func reconcileSelfhosted(ctx context.Context) error { if err != nil { return err } + factory, err := newOIDCIdpFactory(ctx, jwk) + if err != nil { + return err + } + err = selfhosted.Execute(ctx, factory) + if err != nil { + return err + } + return nil +} + +func newOIDCIdpFactory(ctx context.Context, jwk *selfhosted.JWK) (selfhosted.OIDCIdPFactory, error) { // get from CRs region := "ap-northeast-1" bucketName := "my-bucket-name" jwksFileName := "keys.json" - var factory selfhosted.OIDCIdPFactory - - factory, err = oidc.NewAwsS3IdpFactory( + factory, err := oidc.NewAwsS3IdpFactory( ctx, region, bucketName, @@ -84,28 +94,9 @@ func reconcileSelfhosted(ctx context.Context) error { jwksFileName, ) if err != nil { - return err + return nil, err } - issuerMeta := factory.IssuerMeta() - discovery := factory.IdPDiscovery() - discoveryContents := factory.IdPDiscoveryContents(issuerMeta) - idp, err := factory.IdP(issuerMeta) - if err != nil { - return err - } - err = discovery.CreateStorage(ctx) - if err != nil { - return err - } - err = discovery.Upload(ctx, discoveryContents) - if err != nil { - return err - } - _, err = idp.Create(ctx) - if err != nil { - return err - } - return nil + return factory, nil } // SetupWithManager sets up the controller with the Manager. diff --git a/internal/selfhosted/selfhosted.go b/internal/selfhosted/selfhosted.go new file mode 100644 index 0000000..635c7b4 --- /dev/null +++ b/internal/selfhosted/selfhosted.go @@ -0,0 +1,26 @@ +package selfhosted + +import "context" + +func Execute(ctx context.Context, factory OIDCIdPFactory) error { + issuerMeta := factory.IssuerMeta() + discovery := factory.IdPDiscovery() + discoveryContents := factory.IdPDiscoveryContents(issuerMeta) + idp, err := factory.IdP(issuerMeta) + if err != nil { + return err + } + err = discovery.CreateStorage(ctx) + if err != nil { + return err + } + err = discovery.Upload(ctx, discoveryContents) + if err != nil { + return err + } + _, err = idp.Create(ctx) + if err != nil { + return err + } + return nil +}