From 81390bba89b0051e0323ec1ca623c0db571c72f2 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Fri, 30 Oct 2020 10:51:56 -0500 Subject: [PATCH 1/5] Rename `idp.pinniped.dev` to `idp.concierge.pinniped.dev`. Signed-off-by: Matt Moyer --- apis/{ => concierge}/idp/doc.go.tmpl | 2 +- .../idp/v1alpha1/conversion.go.tmpl | 0 .../idp/v1alpha1/defaults.go.tmpl | 0 apis/{ => concierge}/idp/v1alpha1/doc.go.tmpl | 4 +- .../idp/v1alpha1/register.go.tmpl | 2 +- .../idp/v1alpha1/types_meta.go.tmpl | 0 .../idp/v1alpha1/types_tls.go.tmpl | 0 .../idp/v1alpha1/types_webhook.go.tmpl | 0 cmd/pinniped/cmd/exchange_credential.go | 2 +- cmd/pinniped/cmd/get_kubeconfig_test.go | 2 +- ...pinniped.dev_webhookidentityproviders.yaml | 4 +- deploy/concierge/rbac.yaml | 2 +- deploy/concierge/z0_crd_overlay.yaml | 2 +- doc/demo.md | 2 +- generated/1.17/README.adoc | 34 +- .../apis => 1.17/apis/concierge}/idp/doc.go | 2 +- .../idp/v1alpha1/conversion.go | 0 .../{ => concierge}/idp/v1alpha1/defaults.go | 0 .../apis/concierge}/idp/v1alpha1/doc.go | 4 +- .../{ => concierge}/idp/v1alpha1/register.go | 2 +- .../idp/v1alpha1/types_meta.go | 0 .../{ => concierge}/idp/v1alpha1/types_tls.go | 0 .../idp/v1alpha1/types_webhook.go | 0 .../idp/v1alpha1/zz_generated.conversion.go | 0 .../idp/v1alpha1/zz_generated.deepcopy.go | 0 .../idp/v1alpha1/zz_generated.defaults.go | 0 .../idp/zz_generated.deepcopy.go | 0 .../clientset/versioned/fake/register.go | 2 +- .../clientset/versioned/scheme/register.go | 2 +- .../fake/fake_webhookidentityprovider.go | 6 +- .../typed/idp/v1alpha1/idp_client.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../informers/externalversions/generic.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 488 +++++++++--------- ...inniped.dev_webhookidentityproviders.yaml} | 4 +- generated/1.18/README.adoc | 34 +- .../1.18/apis/{ => concierge}/idp/doc.go | 2 +- .../idp/v1alpha1/conversion.go | 0 .../{ => concierge}/idp/v1alpha1/defaults.go | 0 .../apis/concierge}/idp/v1alpha1/doc.go | 4 +- .../{ => concierge}/idp/v1alpha1/register.go | 2 +- .../idp/v1alpha1/types_meta.go | 0 .../{ => concierge}/idp/v1alpha1/types_tls.go | 0 .../idp/v1alpha1/types_webhook.go | 0 .../idp/v1alpha1/zz_generated.conversion.go | 0 .../idp/v1alpha1/zz_generated.deepcopy.go | 0 .../idp/v1alpha1/zz_generated.defaults.go | 0 .../idp/zz_generated.deepcopy.go | 0 .../clientset/versioned/fake/register.go | 2 +- .../clientset/versioned/scheme/register.go | 2 +- .../fake/fake_webhookidentityprovider.go | 6 +- .../typed/idp/v1alpha1/idp_client.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../informers/externalversions/generic.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 488 +++++++++--------- ...pinniped.dev_webhookidentityproviders.yaml | 4 +- generated/1.19/README.adoc | 34 +- .../apis => 1.19/apis/concierge}/idp/doc.go | 2 +- .../idp/v1alpha1/conversion.go | 0 .../{ => concierge}/idp/v1alpha1/defaults.go | 0 .../apis/{ => concierge}/idp/v1alpha1/doc.go | 4 +- .../{ => concierge}/idp/v1alpha1/register.go | 2 +- .../idp/v1alpha1/types_meta.go | 0 .../{ => concierge}/idp/v1alpha1/types_tls.go | 0 .../idp/v1alpha1/types_webhook.go | 0 .../idp/v1alpha1/zz_generated.conversion.go | 0 .../idp/v1alpha1/zz_generated.deepcopy.go | 0 .../idp/v1alpha1/zz_generated.defaults.go | 0 .../idp/zz_generated.deepcopy.go | 0 .../clientset/versioned/fake/register.go | 2 +- .../clientset/versioned/scheme/register.go | 2 +- .../fake/fake_webhookidentityprovider.go | 6 +- .../typed/idp/v1alpha1/idp_client.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../informers/externalversions/generic.go | 4 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../idp/v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 488 +++++++++--------- ...inniped.dev_webhookidentityproviders.yaml} | 4 +- hack/lib/docs/config.yaml | 2 +- hack/lib/tilt/Tiltfile | 2 +- hack/lib/update-codegen.sh | 8 +- internal/client/client_test.go | 4 +- .../identityprovider/idpcache/cache_test.go | 2 +- .../webhookcachecleaner.go | 2 +- .../webhookcachecleaner_test.go | 8 +- .../webhookcachefiller/webhookcachefiller.go | 2 +- .../webhookcachefiller_test.go | 2 +- .../concierge_credentialrequest_test.go | 2 +- test/integration/kube_api_discovery_test.go | 8 +- test/library/client.go | 2 +- test/library/env.go | 2 +- 96 files changed, 871 insertions(+), 871 deletions(-) rename apis/{ => concierge}/idp/doc.go.tmpl (84%) rename apis/{ => concierge}/idp/v1alpha1/conversion.go.tmpl (100%) rename apis/{ => concierge}/idp/v1alpha1/defaults.go.tmpl (100%) rename apis/{ => concierge}/idp/v1alpha1/doc.go.tmpl (73%) rename apis/{ => concierge}/idp/v1alpha1/register.go.tmpl (96%) rename apis/{ => concierge}/idp/v1alpha1/types_meta.go.tmpl (100%) rename apis/{ => concierge}/idp/v1alpha1/types_tls.go.tmpl (100%) rename apis/{ => concierge}/idp/v1alpha1/types_webhook.go.tmpl (100%) rename generated/1.17/crds/idp.pinniped.dev_webhookidentityproviders.yaml => deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml (98%) rename generated/{1.19/apis => 1.17/apis/concierge}/idp/doc.go (84%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/conversion.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/defaults.go (100%) rename generated/{1.18/apis => 1.17/apis/concierge}/idp/v1alpha1/doc.go (73%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/register.go (96%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/types_meta.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/types_tls.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/types_webhook.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.17/apis/{ => concierge}/idp/v1alpha1/zz_generated.defaults.go (100%) rename generated/1.17/apis/{ => concierge}/idp/zz_generated.deepcopy.go (100%) rename generated/{1.18/crds/idp.pinniped.dev_webhookidentityproviders.yaml => 1.17/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml} (98%) rename generated/1.18/apis/{ => concierge}/idp/doc.go (84%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/conversion.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/defaults.go (100%) rename generated/{1.17/apis => 1.18/apis/concierge}/idp/v1alpha1/doc.go (73%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/register.go (96%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/types_meta.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/types_tls.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/types_webhook.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.18/apis/{ => concierge}/idp/v1alpha1/zz_generated.defaults.go (100%) rename generated/1.18/apis/{ => concierge}/idp/zz_generated.deepcopy.go (100%) rename deploy/concierge/idp.pinniped.dev_webhookidentityproviders.yaml => generated/1.18/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml (98%) rename generated/{1.17/apis => 1.19/apis/concierge}/idp/doc.go (84%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/conversion.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/defaults.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/doc.go (73%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/register.go (96%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/types_meta.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/types_tls.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/types_webhook.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.19/apis/{ => concierge}/idp/v1alpha1/zz_generated.defaults.go (100%) rename generated/1.19/apis/{ => concierge}/idp/zz_generated.deepcopy.go (100%) rename generated/1.19/crds/{idp.pinniped.dev_webhookidentityproviders.yaml => idp.concierge.pinniped.dev_webhookidentityproviders.yaml} (98%) diff --git a/apis/idp/doc.go.tmpl b/apis/concierge/idp/doc.go.tmpl similarity index 84% rename from apis/idp/doc.go.tmpl rename to apis/concierge/idp/doc.go.tmpl index 17d329436..22adc1b52 100644 --- a/apis/idp/doc.go.tmpl +++ b/apis/concierge/idp/doc.go.tmpl @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // +k8s:deepcopy-gen=package -// +groupName=idp.pinniped.dev +// +groupName=idp.concierge.pinniped.dev // Package idp is the internal version of the Pinniped identity provider API. package idp diff --git a/apis/idp/v1alpha1/conversion.go.tmpl b/apis/concierge/idp/v1alpha1/conversion.go.tmpl similarity index 100% rename from apis/idp/v1alpha1/conversion.go.tmpl rename to apis/concierge/idp/v1alpha1/conversion.go.tmpl diff --git a/apis/idp/v1alpha1/defaults.go.tmpl b/apis/concierge/idp/v1alpha1/defaults.go.tmpl similarity index 100% rename from apis/idp/v1alpha1/defaults.go.tmpl rename to apis/concierge/idp/v1alpha1/defaults.go.tmpl diff --git a/apis/idp/v1alpha1/doc.go.tmpl b/apis/concierge/idp/v1alpha1/doc.go.tmpl similarity index 73% rename from apis/idp/v1alpha1/doc.go.tmpl rename to apis/concierge/idp/v1alpha1/doc.go.tmpl index 1837041f6..86223a810 100644 --- a/apis/idp/v1alpha1/doc.go.tmpl +++ b/apis/concierge/idp/v1alpha1/doc.go.tmpl @@ -3,9 +3,9 @@ // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package -// +k8s:conversion-gen=go.pinniped.dev/GENERATED_PKG/apis/idp +// +k8s:conversion-gen=go.pinniped.dev/GENERATED_PKG/apis/concierge/idp // +k8s:defaulter-gen=TypeMeta -// +groupName=idp.pinniped.dev +// +groupName=idp.concierge.pinniped.dev // +groupGoName=IDP // Package v1alpha1 is the v1alpha1 version of the Pinniped identity provider API. diff --git a/apis/idp/v1alpha1/register.go.tmpl b/apis/concierge/idp/v1alpha1/register.go.tmpl similarity index 96% rename from apis/idp/v1alpha1/register.go.tmpl rename to apis/concierge/idp/v1alpha1/register.go.tmpl index 494aef367..021640359 100644 --- a/apis/idp/v1alpha1/register.go.tmpl +++ b/apis/concierge/idp/v1alpha1/register.go.tmpl @@ -9,7 +9,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -const GroupName = "idp.pinniped.dev" +const GroupName = "idp.concierge.pinniped.dev" // SchemeGroupVersion is group version used to register these objects. var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} diff --git a/apis/idp/v1alpha1/types_meta.go.tmpl b/apis/concierge/idp/v1alpha1/types_meta.go.tmpl similarity index 100% rename from apis/idp/v1alpha1/types_meta.go.tmpl rename to apis/concierge/idp/v1alpha1/types_meta.go.tmpl diff --git a/apis/idp/v1alpha1/types_tls.go.tmpl b/apis/concierge/idp/v1alpha1/types_tls.go.tmpl similarity index 100% rename from apis/idp/v1alpha1/types_tls.go.tmpl rename to apis/concierge/idp/v1alpha1/types_tls.go.tmpl diff --git a/apis/idp/v1alpha1/types_webhook.go.tmpl b/apis/concierge/idp/v1alpha1/types_webhook.go.tmpl similarity index 100% rename from apis/idp/v1alpha1/types_webhook.go.tmpl rename to apis/concierge/idp/v1alpha1/types_webhook.go.tmpl diff --git a/cmd/pinniped/cmd/exchange_credential.go b/cmd/pinniped/cmd/exchange_credential.go index 77679b8fb..919411005 100644 --- a/cmd/pinniped/cmd/exchange_credential.go +++ b/cmd/pinniped/cmd/exchange_credential.go @@ -16,7 +16,7 @@ import ( corev1 "k8s.io/api/core/v1" clientauthenticationv1beta1 "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" "go.pinniped.dev/internal/client" "go.pinniped.dev/internal/constable" "go.pinniped.dev/internal/here" diff --git a/cmd/pinniped/cmd/get_kubeconfig_test.go b/cmd/pinniped/cmd/get_kubeconfig_test.go index 7834e1b44..231425912 100644 --- a/cmd/pinniped/cmd/get_kubeconfig_test.go +++ b/cmd/pinniped/cmd/get_kubeconfig_test.go @@ -17,8 +17,8 @@ import ( "k8s.io/client-go/rest" coretesting "k8s.io/client-go/testing" + idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" configv1alpha1 "go.pinniped.dev/generated/1.19/apis/config/v1alpha1" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" pinnipedclientset "go.pinniped.dev/generated/1.19/client/clientset/versioned" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" "go.pinniped.dev/internal/here" diff --git a/generated/1.17/crds/idp.pinniped.dev_webhookidentityproviders.yaml b/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml similarity index 98% rename from generated/1.17/crds/idp.pinniped.dev_webhookidentityproviders.yaml rename to deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml index 213b7ad20..af2416426 100644 --- a/generated/1.17/crds/idp.pinniped.dev_webhookidentityproviders.yaml +++ b/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml @@ -6,9 +6,9 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null - name: webhookidentityproviders.idp.pinniped.dev + name: webhookidentityproviders.idp.concierge.pinniped.dev spec: - group: idp.pinniped.dev + group: idp.concierge.pinniped.dev names: categories: - all diff --git a/deploy/concierge/rbac.yaml b/deploy/concierge/rbac.yaml index 149ca4b33..1571d56dd 100644 --- a/deploy/concierge/rbac.yaml +++ b/deploy/concierge/rbac.yaml @@ -59,7 +59,7 @@ rules: - apiGroups: [ "" ] resources: [ pods/exec ] verbs: [ create ] - - apiGroups: [ config.pinniped.dev, idp.pinniped.dev ] + - apiGroups: [ config.pinniped.dev, idp.concierge.pinniped.dev ] resources: [ "*" ] verbs: [ create, get, list, update, watch ] --- diff --git a/deploy/concierge/z0_crd_overlay.yaml b/deploy/concierge/z0_crd_overlay.yaml index dfece13bb..7f637f7e8 100644 --- a/deploy/concierge/z0_crd_overlay.yaml +++ b/deploy/concierge/z0_crd_overlay.yaml @@ -10,7 +10,7 @@ metadata: #@overlay/match missing_ok=True labels: #@ labels() -#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookidentityproviders.idp.pinniped.dev"}}), expects=1 +#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookidentityproviders.idp.concierge.pinniped.dev"}}), expects=1 --- metadata: #@overlay/match missing_ok=True diff --git a/doc/demo.md b/doc/demo.md index 6318988cd..8cc1a3688 100644 --- a/doc/demo.md +++ b/doc/demo.md @@ -122,7 +122,7 @@ as the identity provider. ```bash cat <&1 | sed "s|^|gen-api > |" ) @@ -122,7 +122,7 @@ echo "generating API-related code for our internal API groups..." "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ - "config:v1alpha1 idp:v1alpha1 concierge/login:v1alpha1" \ + "config:v1alpha1 concierge/idp:v1alpha1 concierge/login:v1alpha1" \ --go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-int-api > |" ) @@ -137,7 +137,7 @@ echo "generating client code for our public API groups..." client,lister,informer \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ - "config:v1alpha1 idp:v1alpha1 concierge/login:v1alpha1" \ + "config:v1alpha1 concierge/idp:v1alpha1 concierge/login:v1alpha1" \ --go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-client > |" ) @@ -157,5 +157,5 @@ crd-ref-docs \ # Generate CRD YAML (cd apis && controller-gen paths=./config/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds && - controller-gen paths=./idp/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds + controller-gen paths=./concierge/idp/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds ) diff --git a/internal/client/client_test.go b/internal/client/client_test.go index 42a4c4028..bcb1e2e6c 100644 --- a/internal/client/client_test.go +++ b/internal/client/client_test.go @@ -16,8 +16,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientauthenticationv1beta1 "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" loginv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/login/v1alpha1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" "go.pinniped.dev/internal/testutil" ) @@ -106,7 +106,7 @@ func TestExchangeToken(t *testing.T) { "spec": { "token": "test-token", "identityProvider": { - "apiGroup": "idp.pinniped.dev", + "apiGroup": "idp.concierge.pinniped.dev", "kind": "WebhookIdentityProvider", "name": "test-webhook" } diff --git a/internal/controller/identityprovider/idpcache/cache_test.go b/internal/controller/identityprovider/idpcache/cache_test.go index c00396791..1cc0c292a 100644 --- a/internal/controller/identityprovider/idpcache/cache_test.go +++ b/internal/controller/identityprovider/idpcache/cache_test.go @@ -17,8 +17,8 @@ import ( "k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authentication/user" + idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" loginapi "go.pinniped.dev/generated/1.19/apis/concierge/login" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" "go.pinniped.dev/internal/mocks/mocktokenauthenticator" ) diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go index ba8944ab6..9ab9e1691 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go +++ b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go @@ -11,7 +11,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/klog/v2" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/idp/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" "go.pinniped.dev/internal/controller/identityprovider/idpcache" diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go index 70ea0197b..e2450916c 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go +++ b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go @@ -12,7 +12,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" "go.pinniped.dev/internal/controller/identityprovider/idpcache" @@ -24,19 +24,19 @@ func TestController(t *testing.T) { t.Parallel() testKey1 := idpcache.Key{ - APIGroup: "idp.pinniped.dev", + APIGroup: "idp.concierge.pinniped.dev", Kind: "WebhookIdentityProvider", Namespace: "test-namespace", Name: "test-name-one", } testKey2 := idpcache.Key{ - APIGroup: "idp.pinniped.dev", + APIGroup: "idp.concierge.pinniped.dev", Kind: "WebhookIdentityProvider", Namespace: "test-namespace", Name: "test-name-two", } testKeyNonwebhook := idpcache.Key{ - APIGroup: "idp.pinniped.dev", + APIGroup: "idp.concierge.pinniped.dev", Kind: "SomeOtherIdentityProvider", Namespace: "test-namespace", Name: "test-name-one", diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go index c2c642a51..0f6b5539b 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go +++ b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go @@ -20,7 +20,7 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/klog/v2" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/idp/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" "go.pinniped.dev/internal/controller/identityprovider/idpcache" diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go index cde852162..b46b3281f 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go +++ b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go @@ -19,7 +19,7 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" "go.pinniped.dev/internal/controller/identityprovider/idpcache" diff --git a/test/integration/concierge_credentialrequest_test.go b/test/integration/concierge_credentialrequest_test.go index 87adb34c0..b4504cd88 100644 --- a/test/integration/concierge_credentialrequest_test.go +++ b/test/integration/concierge_credentialrequest_test.go @@ -16,8 +16,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" loginv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/login/v1alpha1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" "go.pinniped.dev/test/library" ) diff --git a/test/integration/kube_api_discovery_test.go b/test/integration/kube_api_discovery_test.go index d030a0c29..473cc682b 100644 --- a/test/integration/kube_api_discovery_test.go +++ b/test/integration/kube_api_discovery_test.go @@ -91,20 +91,20 @@ func TestGetAPIResourceList(t *testing.T) { }, { group: metav1.APIGroup{ - Name: "idp.pinniped.dev", + Name: "idp.concierge.pinniped.dev", Versions: []metav1.GroupVersionForDiscovery{ { - GroupVersion: "idp.pinniped.dev/v1alpha1", + GroupVersion: "idp.concierge.pinniped.dev/v1alpha1", Version: "v1alpha1", }, }, PreferredVersion: metav1.GroupVersionForDiscovery{ - GroupVersion: "idp.pinniped.dev/v1alpha1", + GroupVersion: "idp.concierge.pinniped.dev/v1alpha1", Version: "v1alpha1", }, }, resourceByVersion: map[string][]metav1.APIResource{ - "idp.pinniped.dev/v1alpha1": { + "idp.concierge.pinniped.dev/v1alpha1": { { Name: "webhookidentityproviders", SingularName: "webhookidentityprovider", diff --git a/test/library/client.go b/test/library/client.go index 95f798b45..50aa9057a 100644 --- a/test/library/client.go +++ b/test/library/client.go @@ -23,8 +23,8 @@ import ( "k8s.io/client-go/tools/clientcmd" aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" configv1alpha1 "go.pinniped.dev/generated/1.19/apis/config/v1alpha1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" pinnipedclientset "go.pinniped.dev/generated/1.19/client/clientset/versioned" // Import to initialize client auth plugins - the kubeconfig that we use for diff --git a/test/library/env.go b/test/library/env.go index 22b8d6665..1ed59e1ae 100644 --- a/test/library/env.go +++ b/test/library/env.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" "sigs.k8s.io/yaml" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" + idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" ) type Capability string From e69183aa8a1ff8f6df1b730b771f656c1f698919 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Fri, 30 Oct 2020 11:03:25 -0500 Subject: [PATCH 2/5] Rename `idp.concierge.pinniped.dev` to `authentication.concierge.pinniped.dev`. Signed-off-by: Matt Moyer --- apis/concierge/authentication/doc.go.tmpl | 8 + .../v1alpha1/conversion.go.tmpl | 0 .../v1alpha1/defaults.go.tmpl | 0 .../v1alpha1/doc.go.tmpl | 5 +- .../v1alpha1/register.go.tmpl | 2 +- .../v1alpha1/types_meta.go.tmpl | 0 .../v1alpha1/types_tls.go.tmpl | 0 .../v1alpha1/types_webhook.go.tmpl | 0 apis/concierge/idp/doc.go.tmpl | 8 - cmd/pinniped/cmd/exchange_credential.go | 4 +- cmd/pinniped/cmd/get_kubeconfig.go | 2 +- cmd/pinniped/cmd/get_kubeconfig_test.go | 8 +- ...pinniped.dev_webhookidentityproviders.yaml | 4 +- ...pinniped.dev_webhookidentityproviders.yaml | 4 +- deploy/concierge/rbac.yaml | 2 +- deploy/concierge/z0_crd_overlay.yaml | 2 +- doc/demo.md | 2 +- generated/1.17/README.adoc | 210 +++++++++--------- .../1.17/apis/concierge/authentication/doc.go | 8 + .../v1alpha1/conversion.go | 0 .../v1alpha1/defaults.go | 0 .../{idp => authentication}/v1alpha1/doc.go | 5 +- .../v1alpha1/register.go | 2 +- .../v1alpha1/types_meta.go | 0 .../v1alpha1/types_tls.go | 0 .../v1alpha1/types_webhook.go | 0 .../v1alpha1/zz_generated.conversion.go | 0 .../v1alpha1/zz_generated.deepcopy.go | 0 .../v1alpha1/zz_generated.defaults.go | 0 .../authentication}/zz_generated.deepcopy.go | 2 +- generated/1.17/apis/concierge/idp/doc.go | 8 - .../client/clientset/versioned/clientset.go | 28 +-- .../versioned/fake/clientset_generated.go | 14 +- .../clientset/versioned/fake/register.go | 4 +- .../clientset/versioned/scheme/register.go | 4 +- .../v1alpha1/authentication_client.go} | 28 +-- .../{idp => authentication}/v1alpha1/doc.go | 0 .../v1alpha1/fake/doc.go | 0 .../fake/fake_authentication_client.go} | 8 +- .../fake/fake_webhookidentityprovider.go | 8 +- .../v1alpha1/generated_expansion.go | 0 .../v1alpha1/webhookidentityprovider.go | 4 +- .../{idp => authentication}/interface.go | 4 +- .../v1alpha1/interface.go | 0 .../v1alpha1/webhookidentityprovider.go | 12 +- .../informers/externalversions/factory.go | 12 +- .../informers/externalversions/generic.go | 20 +- .../v1alpha1/expansion_generated.go | 0 .../v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 172 +++++++------- ...inniped.dev_webhookidentityproviders.yaml} | 4 +- generated/1.18/README.adoc | 210 +++++++++--------- .../1.18/apis/concierge/authentication/doc.go | 8 + .../v1alpha1/conversion.go | 0 .../v1alpha1/defaults.go | 0 .../{idp => authentication}/v1alpha1/doc.go | 5 +- .../authentication}/v1alpha1/register.go | 2 +- .../v1alpha1/types_meta.go | 0 .../v1alpha1/types_tls.go | 0 .../v1alpha1/types_webhook.go | 0 .../v1alpha1/zz_generated.conversion.go | 0 .../v1alpha1/zz_generated.deepcopy.go | 0 .../v1alpha1/zz_generated.defaults.go | 0 .../authentication}/zz_generated.deepcopy.go | 2 +- generated/1.18/apis/concierge/idp/doc.go | 8 - .../client/clientset/versioned/clientset.go | 28 +-- .../versioned/fake/clientset_generated.go | 14 +- .../clientset/versioned/fake/register.go | 4 +- .../clientset/versioned/scheme/register.go | 4 +- .../v1alpha1/authentication_client.go} | 28 +-- .../{idp => authentication}/v1alpha1/doc.go | 0 .../v1alpha1/fake/doc.go | 0 .../fake/fake_authentication_client.go} | 8 +- .../fake/fake_webhookidentityprovider.go | 8 +- .../v1alpha1/generated_expansion.go | 0 .../v1alpha1/webhookidentityprovider.go | 4 +- .../{idp => authentication}/interface.go | 4 +- .../v1alpha1/interface.go | 0 .../v1alpha1/webhookidentityprovider.go | 12 +- .../informers/externalversions/factory.go | 12 +- .../informers/externalversions/generic.go | 20 +- .../v1alpha1/expansion_generated.go | 0 .../v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 172 +++++++------- ...inniped.dev_webhookidentityproviders.yaml} | 4 +- generated/1.19/README.adoc | 210 +++++++++--------- .../1.19/apis/concierge/authentication/doc.go | 8 + .../v1alpha1/conversion.go | 0 .../v1alpha1/defaults.go | 0 .../{idp => authentication}/v1alpha1/doc.go | 5 +- .../authentication}/v1alpha1/register.go | 2 +- .../v1alpha1/types_meta.go | 0 .../v1alpha1/types_tls.go | 0 .../v1alpha1/types_webhook.go | 0 .../v1alpha1/zz_generated.conversion.go | 0 .../v1alpha1/zz_generated.deepcopy.go | 0 .../v1alpha1/zz_generated.defaults.go | 0 .../zz_generated.deepcopy.go | 2 +- generated/1.19/apis/concierge/idp/doc.go | 8 - .../client/clientset/versioned/clientset.go | 28 +-- .../versioned/fake/clientset_generated.go | 14 +- .../clientset/versioned/fake/register.go | 4 +- .../clientset/versioned/scheme/register.go | 4 +- .../v1alpha1/authentication_client.go} | 28 +-- .../{idp => authentication}/v1alpha1/doc.go | 0 .../v1alpha1/fake/doc.go | 0 .../fake/fake_authentication_client.go} | 8 +- .../fake/fake_webhookidentityprovider.go | 8 +- .../v1alpha1/generated_expansion.go | 0 .../v1alpha1/webhookidentityprovider.go | 4 +- .../{idp => authentication}/interface.go | 4 +- .../v1alpha1/interface.go | 0 .../v1alpha1/webhookidentityprovider.go | 12 +- .../informers/externalversions/factory.go | 12 +- .../informers/externalversions/generic.go | 20 +- .../v1alpha1/expansion_generated.go | 0 .../v1alpha1/webhookidentityprovider.go | 2 +- .../client/openapi/zz_generated.openapi.go | 174 +++++++-------- ...pinniped.dev_webhookidentityproviders.yaml | 149 +++++++++++++ hack/lib/docs/config.yaml | 2 +- hack/lib/tilt/Tiltfile | 2 +- hack/lib/update-codegen.sh | 8 +- internal/client/client_test.go | 6 +- .../identityprovider/idpcache/cache_test.go | 4 +- .../webhookcachecleaner.go | 8 +- .../webhookcachecleaner_test.go | 18 +- .../webhookcachefiller/webhookcachefiller.go | 10 +- .../webhookcachefiller_test.go | 26 +-- .../controllermanager/prepare_controllers.go | 4 +- .../concierge_credentialrequest_test.go | 4 +- test/integration/kube_api_discovery_test.go | 8 +- test/library/client.go | 8 +- test/library/env.go | 6 +- 133 files changed, 1067 insertions(+), 922 deletions(-) create mode 100644 apis/concierge/authentication/doc.go.tmpl rename apis/concierge/{idp => authentication}/v1alpha1/conversion.go.tmpl (100%) rename apis/concierge/{idp => authentication}/v1alpha1/defaults.go.tmpl (100%) rename apis/concierge/{idp => authentication}/v1alpha1/doc.go.tmpl (83%) rename apis/concierge/{idp => authentication}/v1alpha1/register.go.tmpl (95%) rename apis/concierge/{idp => authentication}/v1alpha1/types_meta.go.tmpl (100%) rename apis/concierge/{idp => authentication}/v1alpha1/types_tls.go.tmpl (100%) rename apis/concierge/{idp => authentication}/v1alpha1/types_webhook.go.tmpl (100%) delete mode 100644 apis/concierge/idp/doc.go.tmpl rename generated/1.17/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml => deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml (98%) create mode 100644 generated/1.17/apis/concierge/authentication/doc.go rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/conversion.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/defaults.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/doc.go (83%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/register.go (95%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/types_meta.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/types_tls.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/types_webhook.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.17/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.defaults.go (100%) rename generated/{1.18/apis/concierge/idp => 1.17/apis/concierge/authentication}/zz_generated.deepcopy.go (89%) delete mode 100644 generated/1.17/apis/concierge/idp/doc.go rename generated/1.17/client/clientset/versioned/typed/{idp/v1alpha1/idp_client.go => authentication/v1alpha1/authentication_client.go} (53%) rename generated/1.17/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/doc.go (100%) rename generated/1.17/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/fake/doc.go (100%) rename generated/1.17/client/clientset/versioned/typed/{idp/v1alpha1/fake/fake_idp_client.go => authentication/v1alpha1/fake/fake_authentication_client.go} (66%) rename generated/1.17/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/fake/fake_webhookidentityprovider.go (94%) rename generated/1.17/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/generated_expansion.go (100%) rename generated/1.17/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) rename generated/1.17/client/informers/externalversions/{idp => authentication}/interface.go (94%) rename generated/1.17/client/informers/externalversions/{idp => authentication}/v1alpha1/interface.go (100%) rename generated/1.17/client/informers/externalversions/{idp => authentication}/v1alpha1/webhookidentityprovider.go (85%) rename generated/1.17/client/listers/{idp => authentication}/v1alpha1/expansion_generated.go (100%) rename generated/1.17/client/listers/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) rename generated/{1.18/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml => 1.17/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml} (98%) create mode 100644 generated/1.18/apis/concierge/authentication/doc.go rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/conversion.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/defaults.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/doc.go (83%) rename generated/{1.19/apis/concierge/idp => 1.18/apis/concierge/authentication}/v1alpha1/register.go (95%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/types_meta.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/types_tls.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/types_webhook.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.18/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.defaults.go (100%) rename generated/{1.17/apis/concierge/idp => 1.18/apis/concierge/authentication}/zz_generated.deepcopy.go (89%) delete mode 100644 generated/1.18/apis/concierge/idp/doc.go rename generated/1.18/client/clientset/versioned/typed/{idp/v1alpha1/idp_client.go => authentication/v1alpha1/authentication_client.go} (53%) rename generated/1.18/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/doc.go (100%) rename generated/1.18/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/fake/doc.go (100%) rename generated/1.18/client/clientset/versioned/typed/{idp/v1alpha1/fake/fake_idp_client.go => authentication/v1alpha1/fake/fake_authentication_client.go} (66%) rename generated/{1.19/client/clientset/versioned/typed/idp => 1.18/client/clientset/versioned/typed/authentication}/v1alpha1/fake/fake_webhookidentityprovider.go (94%) rename generated/1.18/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/generated_expansion.go (100%) rename generated/1.18/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) rename generated/1.18/client/informers/externalversions/{idp => authentication}/interface.go (94%) rename generated/1.18/client/informers/externalversions/{idp => authentication}/v1alpha1/interface.go (100%) rename generated/1.18/client/informers/externalversions/{idp => authentication}/v1alpha1/webhookidentityprovider.go (84%) rename generated/1.18/client/listers/{idp => authentication}/v1alpha1/expansion_generated.go (100%) rename generated/1.18/client/listers/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) rename generated/{1.19/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml => 1.18/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml} (98%) create mode 100644 generated/1.19/apis/concierge/authentication/doc.go rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/conversion.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/defaults.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/doc.go (83%) rename generated/{1.18/apis/concierge/idp => 1.19/apis/concierge/authentication}/v1alpha1/register.go (95%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/types_meta.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/types_tls.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/types_webhook.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.conversion.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.deepcopy.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/v1alpha1/zz_generated.defaults.go (100%) rename generated/1.19/apis/concierge/{idp => authentication}/zz_generated.deepcopy.go (89%) delete mode 100644 generated/1.19/apis/concierge/idp/doc.go rename generated/1.19/client/clientset/versioned/typed/{idp/v1alpha1/idp_client.go => authentication/v1alpha1/authentication_client.go} (53%) rename generated/1.19/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/doc.go (100%) rename generated/1.19/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/fake/doc.go (100%) rename generated/1.19/client/clientset/versioned/typed/{idp/v1alpha1/fake/fake_idp_client.go => authentication/v1alpha1/fake/fake_authentication_client.go} (66%) rename generated/{1.18/client/clientset/versioned/typed/idp => 1.19/client/clientset/versioned/typed/authentication}/v1alpha1/fake/fake_webhookidentityprovider.go (94%) rename generated/1.19/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/generated_expansion.go (100%) rename generated/1.19/client/clientset/versioned/typed/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) rename generated/1.19/client/informers/externalversions/{idp => authentication}/interface.go (94%) rename generated/1.19/client/informers/externalversions/{idp => authentication}/v1alpha1/interface.go (100%) rename generated/1.19/client/informers/externalversions/{idp => authentication}/v1alpha1/webhookidentityprovider.go (84%) rename generated/1.19/client/listers/{idp => authentication}/v1alpha1/expansion_generated.go (100%) rename generated/1.19/client/listers/{idp => authentication}/v1alpha1/webhookidentityprovider.go (97%) create mode 100644 generated/1.19/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml diff --git a/apis/concierge/authentication/doc.go.tmpl b/apis/concierge/authentication/doc.go.tmpl new file mode 100644 index 000000000..c85584632 --- /dev/null +++ b/apis/concierge/authentication/doc.go.tmpl @@ -0,0 +1,8 @@ +// Copyright 2020 the Pinniped contributors. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// +k8s:deepcopy-gen=package +// +groupName=authentication.concierge.pinniped.dev + +// Package authentication is the internal version of the Pinniped identity provider API. +package authentication diff --git a/apis/concierge/idp/v1alpha1/conversion.go.tmpl b/apis/concierge/authentication/v1alpha1/conversion.go.tmpl similarity index 100% rename from apis/concierge/idp/v1alpha1/conversion.go.tmpl rename to apis/concierge/authentication/v1alpha1/conversion.go.tmpl diff --git a/apis/concierge/idp/v1alpha1/defaults.go.tmpl b/apis/concierge/authentication/v1alpha1/defaults.go.tmpl similarity index 100% rename from apis/concierge/idp/v1alpha1/defaults.go.tmpl rename to apis/concierge/authentication/v1alpha1/defaults.go.tmpl diff --git a/apis/concierge/idp/v1alpha1/doc.go.tmpl b/apis/concierge/authentication/v1alpha1/doc.go.tmpl similarity index 83% rename from apis/concierge/idp/v1alpha1/doc.go.tmpl rename to apis/concierge/authentication/v1alpha1/doc.go.tmpl index 86223a810..4bd09774a 100644 --- a/apis/concierge/idp/v1alpha1/doc.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/doc.go.tmpl @@ -3,10 +3,9 @@ // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package -// +k8s:conversion-gen=go.pinniped.dev/GENERATED_PKG/apis/concierge/idp +// +k8s:conversion-gen=go.pinniped.dev/GENERATED_PKG/apis/concierge/authentication // +k8s:defaulter-gen=TypeMeta -// +groupName=idp.concierge.pinniped.dev -// +groupGoName=IDP +// +groupName=authentication.concierge.pinniped.dev // Package v1alpha1 is the v1alpha1 version of the Pinniped identity provider API. package v1alpha1 diff --git a/apis/concierge/idp/v1alpha1/register.go.tmpl b/apis/concierge/authentication/v1alpha1/register.go.tmpl similarity index 95% rename from apis/concierge/idp/v1alpha1/register.go.tmpl rename to apis/concierge/authentication/v1alpha1/register.go.tmpl index 021640359..b372270dc 100644 --- a/apis/concierge/idp/v1alpha1/register.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/register.go.tmpl @@ -9,7 +9,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -const GroupName = "idp.concierge.pinniped.dev" +const GroupName = "authentication.concierge.pinniped.dev" // SchemeGroupVersion is group version used to register these objects. var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} diff --git a/apis/concierge/idp/v1alpha1/types_meta.go.tmpl b/apis/concierge/authentication/v1alpha1/types_meta.go.tmpl similarity index 100% rename from apis/concierge/idp/v1alpha1/types_meta.go.tmpl rename to apis/concierge/authentication/v1alpha1/types_meta.go.tmpl diff --git a/apis/concierge/idp/v1alpha1/types_tls.go.tmpl b/apis/concierge/authentication/v1alpha1/types_tls.go.tmpl similarity index 100% rename from apis/concierge/idp/v1alpha1/types_tls.go.tmpl rename to apis/concierge/authentication/v1alpha1/types_tls.go.tmpl diff --git a/apis/concierge/idp/v1alpha1/types_webhook.go.tmpl b/apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl similarity index 100% rename from apis/concierge/idp/v1alpha1/types_webhook.go.tmpl rename to apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl diff --git a/apis/concierge/idp/doc.go.tmpl b/apis/concierge/idp/doc.go.tmpl deleted file mode 100644 index 22adc1b52..000000000 --- a/apis/concierge/idp/doc.go.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 the Pinniped contributors. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -// +k8s:deepcopy-gen=package -// +groupName=idp.concierge.pinniped.dev - -// Package idp is the internal version of the Pinniped identity provider API. -package idp diff --git a/cmd/pinniped/cmd/exchange_credential.go b/cmd/pinniped/cmd/exchange_credential.go index 919411005..0e8d99d76 100644 --- a/cmd/pinniped/cmd/exchange_credential.go +++ b/cmd/pinniped/cmd/exchange_credential.go @@ -16,7 +16,7 @@ import ( corev1 "k8s.io/api/core/v1" clientauthenticationv1beta1 "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" "go.pinniped.dev/internal/client" "go.pinniped.dev/internal/constable" "go.pinniped.dev/internal/here" @@ -143,7 +143,7 @@ func exchangeCredential(envGetter envGetter, tokenExchanger tokenExchanger, outp idp := corev1.TypedLocalObjectReference{Name: idpName} switch strings.ToLower(idpType) { case "webhook": - idp.APIGroup = &idpv1alpha1.SchemeGroupVersion.Group + idp.APIGroup = &auth1alpha1.SchemeGroupVersion.Group idp.Kind = "WebhookIdentityProvider" default: return fmt.Errorf(`%w: %q, supported values are "webhook"`, ErrInvalidIDPType, idpType) diff --git a/cmd/pinniped/cmd/get_kubeconfig.go b/cmd/pinniped/cmd/get_kubeconfig.go index 8ed99b0d3..fa6935af4 100644 --- a/cmd/pinniped/cmd/get_kubeconfig.go +++ b/cmd/pinniped/cmd/get_kubeconfig.go @@ -187,7 +187,7 @@ func getDefaultIDP(clientset pinnipedclientset.Interface, namespace string) (str ctx, cancelFunc := context.WithTimeout(context.Background(), time.Second*20) defer cancelFunc() - webhooks, err := clientset.IDPV1alpha1().WebhookIdentityProviders(namespace).List(ctx, metav1.ListOptions{}) + webhooks, err := clientset.AuthenticationV1alpha1().WebhookIdentityProviders(namespace).List(ctx, metav1.ListOptions{}) if err != nil { return "", "", err } diff --git a/cmd/pinniped/cmd/get_kubeconfig_test.go b/cmd/pinniped/cmd/get_kubeconfig_test.go index 231425912..23d920c5c 100644 --- a/cmd/pinniped/cmd/get_kubeconfig_test.go +++ b/cmd/pinniped/cmd/get_kubeconfig_test.go @@ -17,7 +17,7 @@ import ( "k8s.io/client-go/rest" coretesting "k8s.io/client-go/testing" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + authv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" configv1alpha1 "go.pinniped.dev/generated/1.19/apis/config/v1alpha1" pinnipedclientset "go.pinniped.dev/generated/1.19/client/clientset/versioned" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" @@ -256,8 +256,8 @@ func TestRun(t *testing.T) { cmd.flags.idpType = "" cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( - &idpv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-one"}}, - &idpv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-two"}}, + &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-one"}}, + &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-two"}}, ), nil } }, @@ -349,7 +349,7 @@ func TestRun(t *testing.T) { cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( - &idpv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-idp"}}, + &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-idp"}}, newCredentialIssuerConfig("pinniped-config", "test-namespace", "https://example.com", "test-ca"), ), nil } diff --git a/generated/1.17/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml b/deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml similarity index 98% rename from generated/1.17/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml rename to deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml index af2416426..5e7aba722 100644 --- a/generated/1.17/crds/idp.concierge.pinniped.dev_webhookidentityproviders.yaml +++ b/deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml @@ -6,9 +6,9 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null - name: webhookidentityproviders.idp.concierge.pinniped.dev + name: webhookidentityproviders.authentication.concierge.pinniped.dev spec: - group: idp.concierge.pinniped.dev + group: authentication.concierge.pinniped.dev names: categories: - all diff --git a/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml b/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml index af2416426..5e7aba722 100644 --- a/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml +++ b/deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml @@ -6,9 +6,9 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null - name: webhookidentityproviders.idp.concierge.pinniped.dev + name: webhookidentityproviders.authentication.concierge.pinniped.dev spec: - group: idp.concierge.pinniped.dev + group: authentication.concierge.pinniped.dev names: categories: - all diff --git a/deploy/concierge/rbac.yaml b/deploy/concierge/rbac.yaml index 1571d56dd..714944be6 100644 --- a/deploy/concierge/rbac.yaml +++ b/deploy/concierge/rbac.yaml @@ -59,7 +59,7 @@ rules: - apiGroups: [ "" ] resources: [ pods/exec ] verbs: [ create ] - - apiGroups: [ config.pinniped.dev, idp.concierge.pinniped.dev ] + - apiGroups: [ config.pinniped.dev, authentication.concierge.pinniped.dev ] resources: [ "*" ] verbs: [ create, get, list, update, watch ] --- diff --git a/deploy/concierge/z0_crd_overlay.yaml b/deploy/concierge/z0_crd_overlay.yaml index 7f637f7e8..61f4c93e5 100644 --- a/deploy/concierge/z0_crd_overlay.yaml +++ b/deploy/concierge/z0_crd_overlay.yaml @@ -10,7 +10,7 @@ metadata: #@overlay/match missing_ok=True labels: #@ labels() -#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookidentityproviders.idp.concierge.pinniped.dev"}}), expects=1 +#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookidentityproviders.authentication.concierge.pinniped.dev"}}), expects=1 --- metadata: #@overlay/match missing_ok=True diff --git a/doc/demo.md b/doc/demo.md index 8cc1a3688..8b6cef40a 100644 --- a/doc/demo.md +++ b/doc/demo.md @@ -122,7 +122,7 @@ as the identity provider. ```bash cat <&1 | sed "s|^|gen-api > |" ) @@ -122,7 +122,7 @@ echo "generating API-related code for our internal API groups..." "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ - "config:v1alpha1 concierge/idp:v1alpha1 concierge/login:v1alpha1" \ + "config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1" \ --go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-int-api > |" ) @@ -137,7 +137,7 @@ echo "generating client code for our public API groups..." client,lister,informer \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client" \ "${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \ - "config:v1alpha1 concierge/idp:v1alpha1 concierge/login:v1alpha1" \ + "config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1" \ --go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-client > |" ) @@ -157,5 +157,5 @@ crd-ref-docs \ # Generate CRD YAML (cd apis && controller-gen paths=./config/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds && - controller-gen paths=./concierge/idp/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds + controller-gen paths=./concierge/authentication/v1alpha1 crd:trivialVersions=true output:crd:artifacts:config=../crds ) diff --git a/internal/client/client_test.go b/internal/client/client_test.go index bcb1e2e6c..58ae7a1a2 100644 --- a/internal/client/client_test.go +++ b/internal/client/client_test.go @@ -16,7 +16,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientauthenticationv1beta1 "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" loginv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/login/v1alpha1" "go.pinniped.dev/internal/testutil" ) @@ -26,7 +26,7 @@ func TestExchangeToken(t *testing.T) { ctx := context.Background() testIDP := corev1.TypedLocalObjectReference{ - APIGroup: &idpv1alpha1.SchemeGroupVersion.Group, + APIGroup: &auth1alpha1.SchemeGroupVersion.Group, Kind: "WebhookIdentityProvider", Name: "test-webhook", } @@ -106,7 +106,7 @@ func TestExchangeToken(t *testing.T) { "spec": { "token": "test-token", "identityProvider": { - "apiGroup": "idp.concierge.pinniped.dev", + "apiGroup": "authentication.concierge.pinniped.dev", "kind": "WebhookIdentityProvider", "name": "test-webhook" } diff --git a/internal/controller/identityprovider/idpcache/cache_test.go b/internal/controller/identityprovider/idpcache/cache_test.go index 1cc0c292a..24043bc89 100644 --- a/internal/controller/identityprovider/idpcache/cache_test.go +++ b/internal/controller/identityprovider/idpcache/cache_test.go @@ -17,7 +17,7 @@ import ( "k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authentication/user" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + authv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" loginapi "go.pinniped.dev/generated/1.19/apis/concierge/login" "go.pinniped.dev/internal/mocks/mocktokenauthenticator" ) @@ -76,7 +76,7 @@ func TestAuthenticateTokenCredentialRequest(t *testing.T) { }, Spec: loginapi.TokenCredentialRequestSpec{ IdentityProvider: corev1.TypedLocalObjectReference{ - APIGroup: &idpv1alpha.SchemeGroupVersion.Group, + APIGroup: &authv1alpha.SchemeGroupVersion.Group, Kind: "WebhookIdentityProvider", Name: "test-name", }, diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go index 9ab9e1691..48b663514 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go +++ b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go @@ -11,8 +11,8 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/klog/v2" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" - idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" + idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" "go.pinniped.dev/internal/controller/identityprovider/idpcache" "go.pinniped.dev/internal/controllerlib" @@ -51,7 +51,7 @@ func (c *controller) Sync(_ controllerlib.Context) error { } // Index the current webhooks by key. - webhooksByKey := map[controllerlib.Key]*idpv1alpha1.WebhookIdentityProvider{} + webhooksByKey := map[controllerlib.Key]*auth1alpha1.WebhookIdentityProvider{} for _, webhook := range webhooks { key := controllerlib.Key{Namespace: webhook.Namespace, Name: webhook.Name} webhooksByKey[key] = webhook @@ -59,7 +59,7 @@ func (c *controller) Sync(_ controllerlib.Context) error { // Delete any entries from the cache which are no longer in the cluster. for _, key := range c.cache.Keys() { - if key.APIGroup != idpv1alpha1.SchemeGroupVersion.Group || key.Kind != "WebhookIdentityProvider" { + if key.APIGroup != auth1alpha1.SchemeGroupVersion.Group || key.Kind != "WebhookIdentityProvider" { continue } if _, exists := webhooksByKey[controllerlib.Key{Namespace: key.Namespace, Name: key.Name}]; !exists { diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go index e2450916c..28f8effac 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go +++ b/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go @@ -12,7 +12,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - idpv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + authv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" "go.pinniped.dev/internal/controller/identityprovider/idpcache" @@ -24,19 +24,19 @@ func TestController(t *testing.T) { t.Parallel() testKey1 := idpcache.Key{ - APIGroup: "idp.concierge.pinniped.dev", + APIGroup: "authentication.concierge.pinniped.dev", Kind: "WebhookIdentityProvider", Namespace: "test-namespace", Name: "test-name-one", } testKey2 := idpcache.Key{ - APIGroup: "idp.concierge.pinniped.dev", + APIGroup: "authentication.concierge.pinniped.dev", Kind: "WebhookIdentityProvider", Namespace: "test-namespace", Name: "test-name-two", } testKeyNonwebhook := idpcache.Key{ - APIGroup: "idp.concierge.pinniped.dev", + APIGroup: "authentication.concierge.pinniped.dev", Kind: "SomeOtherIdentityProvider", Namespace: "test-namespace", Name: "test-name-one", @@ -54,7 +54,7 @@ func TestController(t *testing.T) { name: "no change", initialCache: map[idpcache.Key]idpcache.Value{testKey1: nil}, webhookIDPs: []runtime.Object{ - &idpv1alpha.WebhookIdentityProvider{ + &authv1alpha.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, Name: testKey1.Name, @@ -67,13 +67,13 @@ func TestController(t *testing.T) { name: "IDPs not yet added", initialCache: nil, webhookIDPs: []runtime.Object{ - &idpv1alpha.WebhookIdentityProvider{ + &authv1alpha.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, Name: testKey1.Name, }, }, - &idpv1alpha.WebhookIdentityProvider{ + &authv1alpha.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey2.Namespace, Name: testKey2.Name, @@ -90,7 +90,7 @@ func TestController(t *testing.T) { testKeyNonwebhook: nil, }, webhookIDPs: []runtime.Object{ - &idpv1alpha.WebhookIdentityProvider{ + &authv1alpha.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, Name: testKey1.Name, @@ -116,7 +116,7 @@ func TestController(t *testing.T) { } testLog := testlogger.New(t) - controller := New(cache, informers.IDP().V1alpha1().WebhookIdentityProviders(), testLog) + controller := New(cache, informers.Authentication().V1alpha1().WebhookIdentityProviders(), testLog) ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go index 0f6b5539b..cf664bc40 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go +++ b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go @@ -20,8 +20,8 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/klog/v2" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" - idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" + idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" "go.pinniped.dev/internal/controller/identityprovider/idpcache" "go.pinniped.dev/internal/controllerlib" @@ -69,7 +69,7 @@ func (c *controller) Sync(ctx controllerlib.Context) error { } c.cache.Store(idpcache.Key{ - APIGroup: idpv1alpha1.GroupName, + APIGroup: auth1alpha1.GroupName, Kind: "WebhookIdentityProvider", Namespace: ctx.Key.Namespace, Name: ctx.Key.Name, @@ -81,7 +81,7 @@ func (c *controller) Sync(ctx controllerlib.Context) error { // newWebhookAuthenticator creates a webhook from the provided API server url and caBundle // used to validate TLS connections. func newWebhookAuthenticator( - spec *idpv1alpha1.WebhookIdentityProviderSpec, + spec *auth1alpha1.WebhookIdentityProviderSpec, tempfileFunc func(string, string) (*os.File, error), marshalFunc func(clientcmdapi.Config, string) error, ) (*webhook.WebhookTokenAuthenticator, error) { @@ -122,7 +122,7 @@ func newWebhookAuthenticator( return webhook.New(temp.Name(), version, implicitAuds, customDial) } -func getCABundle(spec *idpv1alpha1.TLSSpec) ([]byte, error) { +func getCABundle(spec *auth1alpha1.TLSSpec) ([]byte, error) { if spec == nil { return nil, nil } diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go index b46b3281f..8172e7f48 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go +++ b/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go @@ -19,7 +19,7 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" "go.pinniped.dev/internal/controller/identityprovider/idpcache" @@ -50,12 +50,12 @@ func TestController(t *testing.T) { name: "invalid webhook", syncKey: controllerlib.Key{Namespace: "test-namespace", Name: "test-name"}, webhookIDPs: []runtime.Object{ - &idpv1alpha1.WebhookIdentityProvider{ + &auth1alpha1.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test-namespace", Name: "test-name", }, - Spec: idpv1alpha1.WebhookIdentityProviderSpec{ + Spec: auth1alpha1.WebhookIdentityProviderSpec{ Endpoint: "invalid url", }, }, @@ -66,14 +66,14 @@ func TestController(t *testing.T) { name: "valid webhook", syncKey: controllerlib.Key{Namespace: "test-namespace", Name: "test-name"}, webhookIDPs: []runtime.Object{ - &idpv1alpha1.WebhookIdentityProvider{ + &auth1alpha1.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test-namespace", Name: "test-name", }, - Spec: idpv1alpha1.WebhookIdentityProviderSpec{ + Spec: auth1alpha1.WebhookIdentityProviderSpec{ Endpoint: "https://example.com", - TLS: &idpv1alpha1.TLSSpec{CertificateAuthorityData: ""}, + TLS: &auth1alpha1.TLSSpec{CertificateAuthorityData: ""}, }, }, }, @@ -93,7 +93,7 @@ func TestController(t *testing.T) { cache := idpcache.New() testLog := testlogger.New(t) - controller := New(cache, informers.IDP().V1alpha1().WebhookIdentityProviders(), testLog) + controller := New(cache, informers.Authentication().V1alpha1().WebhookIdentityProviders(), testLog) ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() @@ -124,22 +124,22 @@ func TestNewWebhookAuthenticator(t *testing.T) { t.Run("marshal failure", func(t *testing.T) { marshalError := func(_ clientcmdapi.Config, _ string) error { return fmt.Errorf("some marshal error") } - res, err := newWebhookAuthenticator(&idpv1alpha1.WebhookIdentityProviderSpec{}, ioutil.TempFile, marshalError) + res, err := newWebhookAuthenticator(&auth1alpha1.WebhookIdentityProviderSpec{}, ioutil.TempFile, marshalError) require.Nil(t, res) require.EqualError(t, err, "unable to marshal kubeconfig: some marshal error") }) t.Run("invalid base64", func(t *testing.T) { - res, err := newWebhookAuthenticator(&idpv1alpha1.WebhookIdentityProviderSpec{ + res, err := newWebhookAuthenticator(&auth1alpha1.WebhookIdentityProviderSpec{ Endpoint: "https://example.com", - TLS: &idpv1alpha1.TLSSpec{CertificateAuthorityData: "invalid-base64"}, + TLS: &auth1alpha1.TLSSpec{CertificateAuthorityData: "invalid-base64"}, }, ioutil.TempFile, clientcmd.WriteToFile) require.Nil(t, res) require.EqualError(t, err, "invalid TLS configuration: illegal base64 data at input byte 7") }) t.Run("valid config with no TLS spec", func(t *testing.T) { - res, err := newWebhookAuthenticator(&idpv1alpha1.WebhookIdentityProviderSpec{ + res, err := newWebhookAuthenticator(&auth1alpha1.WebhookIdentityProviderSpec{ Endpoint: "https://example.com", }, ioutil.TempFile, clientcmd.WriteToFile) require.NotNil(t, res) @@ -154,9 +154,9 @@ func TestNewWebhookAuthenticator(t *testing.T) { _, err = w.Write([]byte(`{}`)) require.NoError(t, err) }) - spec := &idpv1alpha1.WebhookIdentityProviderSpec{ + spec := &auth1alpha1.WebhookIdentityProviderSpec{ Endpoint: url, - TLS: &idpv1alpha1.TLSSpec{ + TLS: &auth1alpha1.TLSSpec{ CertificateAuthorityData: base64.StdEncoding.EncodeToString([]byte(caBundle)), }, } diff --git a/internal/controllermanager/prepare_controllers.go b/internal/controllermanager/prepare_controllers.go index e4bb8b320..228551e10 100644 --- a/internal/controllermanager/prepare_controllers.go +++ b/internal/controllermanager/prepare_controllers.go @@ -232,7 +232,7 @@ func PrepareControllers(c *Config) (func(ctx context.Context), error) { WithController( webhookcachefiller.New( c.IDPCache, - informers.installationNamespacePinniped.IDP().V1alpha1().WebhookIdentityProviders(), + informers.installationNamespacePinniped.Authentication().V1alpha1().WebhookIdentityProviders(), klogr.New(), ), singletonWorker, @@ -240,7 +240,7 @@ func PrepareControllers(c *Config) (func(ctx context.Context), error) { WithController( webhookcachecleaner.New( c.IDPCache, - informers.installationNamespacePinniped.IDP().V1alpha1().WebhookIdentityProviders(), + informers.installationNamespacePinniped.Authentication().V1alpha1().WebhookIdentityProviders(), klogr.New(), ), singletonWorker, diff --git a/test/integration/concierge_credentialrequest_test.go b/test/integration/concierge_credentialrequest_test.go index b4504cd88..fdf240ce2 100644 --- a/test/integration/concierge_credentialrequest_test.go +++ b/test/integration/concierge_credentialrequest_test.go @@ -16,7 +16,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" loginv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/login/v1alpha1" "go.pinniped.dev/test/library" ) @@ -28,7 +28,7 @@ func TestUnsuccessfulCredentialRequest(t *testing.T) { defer cancel() response, err := makeRequest(ctx, t, validCredentialRequestSpecWithRealToken(t, corev1.TypedLocalObjectReference{ - APIGroup: &idpv1alpha1.SchemeGroupVersion.Group, + APIGroup: &auth1alpha1.SchemeGroupVersion.Group, Kind: "WebhookIdentityProvider", Name: "some-webhook-that-does-not-exist", })) diff --git a/test/integration/kube_api_discovery_test.go b/test/integration/kube_api_discovery_test.go index 473cc682b..6facc8291 100644 --- a/test/integration/kube_api_discovery_test.go +++ b/test/integration/kube_api_discovery_test.go @@ -91,20 +91,20 @@ func TestGetAPIResourceList(t *testing.T) { }, { group: metav1.APIGroup{ - Name: "idp.concierge.pinniped.dev", + Name: "authentication.concierge.pinniped.dev", Versions: []metav1.GroupVersionForDiscovery{ { - GroupVersion: "idp.concierge.pinniped.dev/v1alpha1", + GroupVersion: "authentication.concierge.pinniped.dev/v1alpha1", Version: "v1alpha1", }, }, PreferredVersion: metav1.GroupVersionForDiscovery{ - GroupVersion: "idp.concierge.pinniped.dev/v1alpha1", + GroupVersion: "authentication.concierge.pinniped.dev/v1alpha1", Version: "v1alpha1", }, }, resourceByVersion: map[string][]metav1.APIResource{ - "idp.concierge.pinniped.dev/v1alpha1": { + "authentication.concierge.pinniped.dev/v1alpha1": { { Name: "webhookidentityproviders", SingularName: "webhookidentityprovider", diff --git a/test/library/client.go b/test/library/client.go index 50aa9057a..285968f9b 100644 --- a/test/library/client.go +++ b/test/library/client.go @@ -23,7 +23,7 @@ import ( "k8s.io/client-go/tools/clientcmd" aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" configv1alpha1 "go.pinniped.dev/generated/1.19/apis/config/v1alpha1" pinnipedclientset "go.pinniped.dev/generated/1.19/client/clientset/versioned" @@ -127,12 +127,12 @@ func CreateTestWebhookIDP(ctx context.Context, t *testing.T) corev1.TypedLocalOb testEnv := IntegrationEnv(t) client := NewPinnipedClientset(t) - webhooks := client.IDPV1alpha1().WebhookIdentityProviders(testEnv.ConciergeNamespace) + webhooks := client.AuthenticationV1alpha1().WebhookIdentityProviders(testEnv.ConciergeNamespace) createContext, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel() - idp, err := webhooks.Create(createContext, &idpv1alpha1.WebhookIdentityProvider{ + idp, err := webhooks.Create(createContext, &auth1alpha1.WebhookIdentityProvider{ ObjectMeta: metav1.ObjectMeta{ GenerateName: "test-webhook-", Labels: map[string]string{"pinniped.dev/test": ""}, @@ -153,7 +153,7 @@ func CreateTestWebhookIDP(ctx context.Context, t *testing.T) corev1.TypedLocalOb }) return corev1.TypedLocalObjectReference{ - APIGroup: &idpv1alpha1.SchemeGroupVersion.Group, + APIGroup: &auth1alpha1.SchemeGroupVersion.Group, Kind: "WebhookIdentityProvider", Name: idp.Name, } diff --git a/test/library/env.go b/test/library/env.go index 1ed59e1ae..da5afb340 100644 --- a/test/library/env.go +++ b/test/library/env.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" "sigs.k8s.io/yaml" - idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/idp/v1alpha1" + auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" ) type Capability string @@ -33,7 +33,7 @@ type TestEnv struct { SupervisorCustomLabels map[string]string `json:"supervisorCustomLabels"` ConciergeCustomLabels map[string]string `json:"conciergeCustomLabels"` Capabilities map[Capability]bool `json:"capabilities"` - TestWebhook idpv1alpha1.WebhookIdentityProviderSpec `json:"testWebhook"` + TestWebhook auth1alpha1.WebhookIdentityProviderSpec `json:"testWebhook"` SupervisorHTTPAddress string `json:"supervisorHttpAddress"` SupervisorHTTPSAddress string `json:"supervisorHttpsAddress"` SupervisorHTTPSIngressAddress string `json:"supervisorHttpsIngressAddress"` @@ -100,7 +100,7 @@ func loadEnvVars(t *testing.T, result *TestEnv) { result.TestWebhook.Endpoint = needEnv(t, "PINNIPED_TEST_WEBHOOK_ENDPOINT") result.SupervisorNamespace = needEnv(t, "PINNIPED_TEST_SUPERVISOR_NAMESPACE") result.SupervisorAppName = needEnv(t, "PINNIPED_TEST_SUPERVISOR_APP_NAME") - result.TestWebhook.TLS = &idpv1alpha1.TLSSpec{CertificateAuthorityData: needEnv(t, "PINNIPED_TEST_WEBHOOK_CA_BUNDLE")} + result.TestWebhook.TLS = &auth1alpha1.TLSSpec{CertificateAuthorityData: needEnv(t, "PINNIPED_TEST_WEBHOOK_CA_BUNDLE")} result.SupervisorHTTPAddress = os.Getenv("PINNIPED_TEST_SUPERVISOR_HTTP_ADDRESS") result.SupervisorHTTPSIngressAddress = os.Getenv("PINNIPED_TEST_SUPERVISOR_HTTPS_INGRESS_ADDRESS") From 0f25657a35bf01b917f83e537795e08c12c62e64 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Fri, 30 Oct 2020 11:39:26 -0500 Subject: [PATCH 3/5] Rename WebhookIdentityProvider to WebhookAuthenticator. Signed-off-by: Matt Moyer --- apis/concierge/authentication/doc.go.tmpl | 2 +- .../authentication/v1alpha1/doc.go.tmpl | 2 +- .../authentication/v1alpha1/register.go.tmpl | 4 +- .../authentication/v1alpha1/types_tls.go.tmpl | 2 +- .../v1alpha1/types_webhook.go.tmpl | 30 +-- cmd/pinniped/cmd/exchange_credential.go | 2 +- cmd/pinniped/cmd/get_kubeconfig.go | 2 +- cmd/pinniped/cmd/get_kubeconfig_test.go | 6 +- ...e.pinniped.dev_webhookauthenticators.yaml} | 29 ++- deploy/concierge/z0_crd_overlay.yaml | 2 +- doc/demo.md | 4 +- generated/1.17/README.adoc | 38 ++-- .../1.17/apis/concierge/authentication/doc.go | 2 +- .../concierge/authentication/v1alpha1/doc.go | 2 +- .../authentication/v1alpha1/register.go | 4 +- .../authentication/v1alpha1/types_tls.go | 2 +- .../authentication/v1alpha1/types_webhook.go | 30 +-- .../v1alpha1/zz_generated.deepcopy.go | 38 ++-- .../v1alpha1/authentication_client.go | 6 +- .../fake/fake_authentication_client.go | 4 +- .../fake/fake_webhookauthenticator.go | 127 ++++++++++++ .../fake/fake_webhookidentityprovider.go | 127 ------------ .../v1alpha1/generated_expansion.go | 2 +- .../v1alpha1/webhookauthenticator.go | 178 +++++++++++++++++ .../v1alpha1/webhookidentityprovider.go | 178 ----------------- .../authentication/v1alpha1/interface.go | 10 +- .../v1alpha1/webhookauthenticator.go | 76 ++++++++ .../v1alpha1/webhookidentityprovider.go | 76 -------- .../informers/externalversions/generic.go | 4 +- .../v1alpha1/expansion_generated.go | 12 +- .../v1alpha1/webhookauthenticator.go | 81 ++++++++ .../v1alpha1/webhookidentityprovider.go | 81 -------- .../client/openapi/zz_generated.openapi.go | 176 ++++++++--------- ...ge.pinniped.dev_webhookauthenticators.yaml | 29 ++- generated/1.18/README.adoc | 38 ++-- .../1.18/apis/concierge/authentication/doc.go | 2 +- .../concierge/authentication/v1alpha1/doc.go | 2 +- .../authentication/v1alpha1/register.go | 4 +- .../authentication/v1alpha1/types_tls.go | 2 +- .../authentication/v1alpha1/types_webhook.go | 30 +-- .../v1alpha1/zz_generated.deepcopy.go | 38 ++-- .../v1alpha1/authentication_client.go | 6 +- .../fake/fake_authentication_client.go | 4 +- .../fake/fake_webhookauthenticator.go | 129 +++++++++++++ .../fake/fake_webhookidentityprovider.go | 129 ------------- .../v1alpha1/generated_expansion.go | 2 +- .../v1alpha1/webhookauthenticator.go | 182 ++++++++++++++++++ .../v1alpha1/webhookidentityprovider.go | 182 ------------------ .../authentication/v1alpha1/interface.go | 10 +- .../v1alpha1/webhookauthenticator.go | 77 ++++++++ .../v1alpha1/webhookidentityprovider.go | 77 -------- .../informers/externalversions/generic.go | 4 +- .../v1alpha1/expansion_generated.go | 12 +- .../v1alpha1/webhookauthenticator.go | 81 ++++++++ .../v1alpha1/webhookidentityprovider.go | 81 -------- .../client/openapi/zz_generated.openapi.go | 176 ++++++++--------- ...e.pinniped.dev_webhookauthenticators.yaml} | 29 ++- generated/1.19/README.adoc | 38 ++-- .../1.19/apis/concierge/authentication/doc.go | 2 +- .../concierge/authentication/v1alpha1/doc.go | 2 +- .../authentication/v1alpha1/register.go | 4 +- .../authentication/v1alpha1/types_tls.go | 2 +- .../authentication/v1alpha1/types_webhook.go | 30 +-- .../v1alpha1/zz_generated.deepcopy.go | 38 ++-- .../v1alpha1/authentication_client.go | 6 +- .../fake/fake_authentication_client.go | 4 +- .../fake/fake_webhookauthenticator.go | 129 +++++++++++++ .../fake/fake_webhookidentityprovider.go | 129 ------------- .../v1alpha1/generated_expansion.go | 2 +- .../v1alpha1/webhookauthenticator.go | 182 ++++++++++++++++++ .../v1alpha1/webhookidentityprovider.go | 182 ------------------ .../authentication/v1alpha1/interface.go | 10 +- .../v1alpha1/webhookauthenticator.go | 77 ++++++++ .../v1alpha1/webhookidentityprovider.go | 77 -------- .../informers/externalversions/generic.go | 4 +- .../v1alpha1/expansion_generated.go | 12 +- .../v1alpha1/webhookauthenticator.go | 86 +++++++++ .../v1alpha1/webhookidentityprovider.go | 86 --------- .../client/openapi/zz_generated.openapi.go | 178 ++++++++--------- ...e.pinniped.dev_webhookauthenticators.yaml} | 29 ++- ...pinniped.dev_webhookidentityproviders.yaml | 149 -------------- hack/lib/tilt/Tiltfile | 2 +- hack/update.sh | 2 +- internal/client/client_test.go | 4 +- .../identityprovider/idpcache/cache_test.go | 2 +- .../webhookcachecleaner.go | 10 +- .../webhookcachecleaner_test.go | 14 +- .../webhookcachefiller/webhookcachefiller.go | 16 +- .../webhookcachefiller_test.go | 20 +- .../controllermanager/prepare_controllers.go | 4 +- .../concierge_credentialrequest_test.go | 2 +- test/integration/kube_api_discovery_test.go | 9 +- test/library/client.go | 16 +- test/library/env.go | 24 +-- 94 files changed, 2043 insertions(+), 2205 deletions(-) rename deploy/concierge/{authentication.concierge.pinniped.dev_webhookidentityproviders.yaml => authentication.concierge.pinniped.dev_webhookauthenticators.yaml} (89%) create mode 100644 generated/1.17/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookauthenticator.go delete mode 100644 generated/1.17/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookidentityprovider.go create mode 100644 generated/1.17/client/clientset/versioned/typed/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.17/client/clientset/versioned/typed/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.17/client/informers/externalversions/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.17/client/informers/externalversions/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.17/client/listers/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.17/client/listers/authentication/v1alpha1/webhookidentityprovider.go rename deploy/concierge/idp.concierge.pinniped.dev_webhookidentityproviders.yaml => generated/1.17/crds/authentication.concierge.pinniped.dev_webhookauthenticators.yaml (89%) create mode 100644 generated/1.18/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookauthenticator.go delete mode 100644 generated/1.18/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookidentityprovider.go create mode 100644 generated/1.18/client/clientset/versioned/typed/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.18/client/clientset/versioned/typed/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.18/client/informers/externalversions/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.18/client/informers/externalversions/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.18/client/listers/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.18/client/listers/authentication/v1alpha1/webhookidentityprovider.go rename generated/{1.17/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml => 1.18/crds/authentication.concierge.pinniped.dev_webhookauthenticators.yaml} (89%) create mode 100644 generated/1.19/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookauthenticator.go delete mode 100644 generated/1.19/client/clientset/versioned/typed/authentication/v1alpha1/fake/fake_webhookidentityprovider.go create mode 100644 generated/1.19/client/clientset/versioned/typed/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.19/client/clientset/versioned/typed/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.19/client/informers/externalversions/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.19/client/informers/externalversions/authentication/v1alpha1/webhookidentityprovider.go create mode 100644 generated/1.19/client/listers/authentication/v1alpha1/webhookauthenticator.go delete mode 100644 generated/1.19/client/listers/authentication/v1alpha1/webhookidentityprovider.go rename generated/{1.18/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml => 1.19/crds/authentication.concierge.pinniped.dev_webhookauthenticators.yaml} (89%) delete mode 100644 generated/1.19/crds/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml diff --git a/apis/concierge/authentication/doc.go.tmpl b/apis/concierge/authentication/doc.go.tmpl index c85584632..78e81bd63 100644 --- a/apis/concierge/authentication/doc.go.tmpl +++ b/apis/concierge/authentication/doc.go.tmpl @@ -4,5 +4,5 @@ // +k8s:deepcopy-gen=package // +groupName=authentication.concierge.pinniped.dev -// Package authentication is the internal version of the Pinniped identity provider API. +// Package authentication is the internal version of the Pinniped concierge authentication API. package authentication diff --git a/apis/concierge/authentication/v1alpha1/doc.go.tmpl b/apis/concierge/authentication/v1alpha1/doc.go.tmpl index 4bd09774a..f1ad1a869 100644 --- a/apis/concierge/authentication/v1alpha1/doc.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/doc.go.tmpl @@ -7,5 +7,5 @@ // +k8s:defaulter-gen=TypeMeta // +groupName=authentication.concierge.pinniped.dev -// Package v1alpha1 is the v1alpha1 version of the Pinniped identity provider API. +// Package v1alpha1 is the v1alpha1 version of the Pinniped concierge authentication API. package v1alpha1 diff --git a/apis/concierge/authentication/v1alpha1/register.go.tmpl b/apis/concierge/authentication/v1alpha1/register.go.tmpl index b372270dc..1a5163daa 100644 --- a/apis/concierge/authentication/v1alpha1/register.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/register.go.tmpl @@ -30,8 +30,8 @@ func init() { // Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &WebhookIdentityProvider{}, - &WebhookIdentityProviderList{}, + &WebhookAuthenticator{}, + &WebhookAuthenticatorList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/apis/concierge/authentication/v1alpha1/types_tls.go.tmpl b/apis/concierge/authentication/v1alpha1/types_tls.go.tmpl index 2f2098c91..f882f2d6c 100644 --- a/apis/concierge/authentication/v1alpha1/types_tls.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/types_tls.go.tmpl @@ -3,7 +3,7 @@ package v1alpha1 -// Configuration for configuring TLS on various identity providers. +// Configuration for configuring TLS on various authenticators. type TLSSpec struct { // X.509 Certificate Authority (base64-encoded PEM bundle). If omitted, a default set of system roots will be trusted. // +optional diff --git a/apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl b/apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl index 6e4763378..8124597ab 100644 --- a/apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl +++ b/apis/concierge/authentication/v1alpha1/types_webhook.go.tmpl @@ -5,9 +5,9 @@ package v1alpha1 import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -// Status of a webhook identity provider. -type WebhookIdentityProviderStatus struct { - // Represents the observations of an identity provider's current state. +// Status of a webhook authenticator. +type WebhookAuthenticatorStatus struct { + // Represents the observations of the authenticator's current state. // +patchMergeKey=type // +patchStrategy=merge // +listType=map @@ -15,8 +15,8 @@ type WebhookIdentityProviderStatus struct { Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` } -// Spec for configuring a webhook identity provider. -type WebhookIdentityProviderSpec struct { +// Spec for configuring a webhook authenticator. +type WebhookAuthenticatorSpec struct { // Webhook server endpoint URL. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:Pattern=`^https://` @@ -27,27 +27,27 @@ type WebhookIdentityProviderSpec struct { TLS *TLSSpec `json:"tls,omitempty"` } -// WebhookIdentityProvider describes the configuration of a Pinniped webhook identity provider. +// WebhookAuthenticator describes the configuration of a webhook authenticator. // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:resource:categories=all;idp;idps,shortName=webhookidp;webhookidps +// +kubebuilder:resource:categories=all;authenticator;authenticators // +kubebuilder:printcolumn:name="Endpoint",type=string,JSONPath=`.spec.endpoint` -type WebhookIdentityProvider struct { +type WebhookAuthenticator struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // Spec for configuring the identity provider. - Spec WebhookIdentityProviderSpec `json:"spec"` + // Spec for configuring the authenticator. + Spec WebhookAuthenticatorSpec `json:"spec"` - // Status of the identity provider. - Status WebhookIdentityProviderStatus `json:"status,omitempty"` + // Status of the authenticator. + Status WebhookAuthenticatorStatus `json:"status,omitempty"` } -// List of WebhookIdentityProvider objects. +// List of WebhookAuthenticator objects. // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -type WebhookIdentityProviderList struct { +type WebhookAuthenticatorList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` - Items []WebhookIdentityProvider `json:"items"` + Items []WebhookAuthenticator `json:"items"` } diff --git a/cmd/pinniped/cmd/exchange_credential.go b/cmd/pinniped/cmd/exchange_credential.go index 0e8d99d76..481165fb0 100644 --- a/cmd/pinniped/cmd/exchange_credential.go +++ b/cmd/pinniped/cmd/exchange_credential.go @@ -144,7 +144,7 @@ func exchangeCredential(envGetter envGetter, tokenExchanger tokenExchanger, outp switch strings.ToLower(idpType) { case "webhook": idp.APIGroup = &auth1alpha1.SchemeGroupVersion.Group - idp.Kind = "WebhookIdentityProvider" + idp.Kind = "WebhookAuthenticator" default: return fmt.Errorf(`%w: %q, supported values are "webhook"`, ErrInvalidIDPType, idpType) } diff --git a/cmd/pinniped/cmd/get_kubeconfig.go b/cmd/pinniped/cmd/get_kubeconfig.go index fa6935af4..a0349eed8 100644 --- a/cmd/pinniped/cmd/get_kubeconfig.go +++ b/cmd/pinniped/cmd/get_kubeconfig.go @@ -187,7 +187,7 @@ func getDefaultIDP(clientset pinnipedclientset.Interface, namespace string) (str ctx, cancelFunc := context.WithTimeout(context.Background(), time.Second*20) defer cancelFunc() - webhooks, err := clientset.AuthenticationV1alpha1().WebhookIdentityProviders(namespace).List(ctx, metav1.ListOptions{}) + webhooks, err := clientset.AuthenticationV1alpha1().WebhookAuthenticators(namespace).List(ctx, metav1.ListOptions{}) if err != nil { return "", "", err } diff --git a/cmd/pinniped/cmd/get_kubeconfig_test.go b/cmd/pinniped/cmd/get_kubeconfig_test.go index 23d920c5c..430791730 100644 --- a/cmd/pinniped/cmd/get_kubeconfig_test.go +++ b/cmd/pinniped/cmd/get_kubeconfig_test.go @@ -256,8 +256,8 @@ func TestRun(t *testing.T) { cmd.flags.idpType = "" cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( - &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-one"}}, - &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-two"}}, + &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-one"}}, + &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-two"}}, ), nil } }, @@ -349,7 +349,7 @@ func TestRun(t *testing.T) { cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( - &authv1alpha.WebhookIdentityProvider{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-idp"}}, + &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-idp"}}, newCredentialIssuerConfig("pinniped-config", "test-namespace", "https://example.com", "test-ca"), ), nil } diff --git a/deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml b/deploy/concierge/authentication.concierge.pinniped.dev_webhookauthenticators.yaml similarity index 89% rename from deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml rename to deploy/concierge/authentication.concierge.pinniped.dev_webhookauthenticators.yaml index 5e7aba722..9ae6152e1 100644 --- a/deploy/concierge/authentication.concierge.pinniped.dev_webhookidentityproviders.yaml +++ b/deploy/concierge/authentication.concierge.pinniped.dev_webhookauthenticators.yaml @@ -6,21 +6,18 @@ metadata: annotations: controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null - name: webhookidentityproviders.authentication.concierge.pinniped.dev + name: webhookauthenticators.authentication.concierge.pinniped.dev spec: group: authentication.concierge.pinniped.dev names: categories: - all - - idp - - idps - kind: WebhookIdentityProvider - listKind: WebhookIdentityProviderList - plural: webhookidentityproviders - shortNames: - - webhookidp - - webhookidps - singular: webhookidentityprovider + - authenticator + - authenticators + kind: WebhookAuthenticator + listKind: WebhookAuthenticatorList + plural: webhookauthenticators + singular: webhookauthenticator scope: Namespaced versions: - additionalPrinterColumns: @@ -30,8 +27,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: WebhookIdentityProvider describes the configuration of a Pinniped - webhook identity provider. + description: WebhookAuthenticator describes the configuration of a webhook + authenticator. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -46,7 +43,7 @@ spec: metadata: type: object spec: - description: Spec for configuring the identity provider. + description: Spec for configuring the authenticator. properties: endpoint: description: Webhook server endpoint URL. @@ -65,11 +62,11 @@ spec: - endpoint type: object status: - description: Status of the identity provider. + description: Status of the authenticator. properties: conditions: - description: Represents the observations of an identity provider's - current state. + description: Represents the observations of the authenticator's current + state. items: description: Condition status of a resource (mirrored from the metav1.Condition type added in Kubernetes 1.19). In a future API version we can diff --git a/deploy/concierge/z0_crd_overlay.yaml b/deploy/concierge/z0_crd_overlay.yaml index 61f4c93e5..c5050f04d 100644 --- a/deploy/concierge/z0_crd_overlay.yaml +++ b/deploy/concierge/z0_crd_overlay.yaml @@ -10,7 +10,7 @@ metadata: #@overlay/match missing_ok=True labels: #@ labels() -#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookidentityproviders.authentication.concierge.pinniped.dev"}}), expects=1 +#@overlay/match by=overlay.subset({"kind": "CustomResourceDefinition", "metadata":{"name":"webhookauthenticators.authentication.concierge.pinniped.dev"}}), expects=1 --- metadata: #@overlay/match missing_ok=True diff --git a/doc/demo.md b/doc/demo.md index 8b6cef40a..4d6fcafed 100644 --- a/doc/demo.md +++ b/doc/demo.md @@ -118,12 +118,12 @@ as the identity provider. If you would prefer to customize the available options, please see [deploy/concierge/README.md](../deploy/concierge/README.md) for instructions on how to deploy using `ytt`. -1. Create a `WebhookIdentityProvider` object to configure Pinniped to authenticate using local-user-authenticator. +1. Create a `WebhookAuthenticator` object to configure Pinniped to authenticate using local-user-authenticator. ```bash cat < Date: Fri, 30 Oct 2020 12:41:21 -0500 Subject: [PATCH 4/5] Rename the IdentityProvider field to Authenticator in TokenCredentialRequest. Signed-off-by: Matt Moyer --- apis/concierge/login/types_token.go.tmpl | 4 ++-- apis/concierge/login/v1alpha1/types_token.go.tmpl | 4 ++-- generated/1.17/README.adoc | 2 +- generated/1.17/apis/concierge/login/types_token.go | 4 ++-- .../1.17/apis/concierge/login/v1alpha1/types_token.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.conversion.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.deepcopy.go | 2 +- .../1.17/apis/concierge/login/zz_generated.deepcopy.go | 2 +- generated/1.17/client/openapi/zz_generated.openapi.go | 6 +++--- generated/1.18/README.adoc | 2 +- generated/1.18/apis/concierge/login/types_token.go | 4 ++-- .../1.18/apis/concierge/login/v1alpha1/types_token.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.conversion.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.deepcopy.go | 2 +- .../1.18/apis/concierge/login/zz_generated.deepcopy.go | 2 +- generated/1.18/client/openapi/zz_generated.openapi.go | 6 +++--- generated/1.19/README.adoc | 2 +- generated/1.19/apis/concierge/login/types_token.go | 4 ++-- .../1.19/apis/concierge/login/v1alpha1/types_token.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.conversion.go | 4 ++-- .../concierge/login/v1alpha1/zz_generated.deepcopy.go | 2 +- .../1.19/apis/concierge/login/zz_generated.deepcopy.go | 2 +- generated/1.19/client/openapi/zz_generated.openapi.go | 6 +++--- internal/client/client.go | 4 ++-- internal/client/client_test.go | 2 +- internal/controller/identityprovider/idpcache/cache.go | 8 ++++---- .../controller/identityprovider/idpcache/cache_test.go | 8 ++++---- test/integration/concierge_credentialrequest_test.go | 4 ++-- 28 files changed, 53 insertions(+), 53 deletions(-) diff --git a/apis/concierge/login/types_token.go.tmpl b/apis/concierge/login/types_token.go.tmpl index 91d36cfbf..a0555f85d 100644 --- a/apis/concierge/login/types_token.go.tmpl +++ b/apis/concierge/login/types_token.go.tmpl @@ -12,8 +12,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference } type TokenCredentialRequestStatus struct { diff --git a/apis/concierge/login/v1alpha1/types_token.go.tmpl b/apis/concierge/login/v1alpha1/types_token.go.tmpl index 9fba33694..cb5965a23 100644 --- a/apis/concierge/login/v1alpha1/types_token.go.tmpl +++ b/apis/concierge/login/v1alpha1/types_token.go.tmpl @@ -13,8 +13,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string `json:"token,omitempty"` - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference `json:"identityProvider"` + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference `json:"authenticator"` } // TokenCredentialRequestStatus is the status of a TokenCredentialRequest, returned on responses to the Pinniped API. diff --git a/generated/1.17/README.adoc b/generated/1.17/README.adoc index e004e05ee..23b14014b 100644 --- a/generated/1.17/README.adoc +++ b/generated/1.17/README.adoc @@ -328,7 +328,7 @@ TokenCredentialRequestSpec is the specification of a TokenCredentialRequest, exp |=== | Field | Description | *`token`* __string__ | Bearer token supplied with the credential request. -| *`identityProvider`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an identity provider which can fulfill this credential request. +| *`authenticator`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an authenticator which can validate this credential request. |=== diff --git a/generated/1.17/apis/concierge/login/types_token.go b/generated/1.17/apis/concierge/login/types_token.go index 91d36cfbf..a0555f85d 100644 --- a/generated/1.17/apis/concierge/login/types_token.go +++ b/generated/1.17/apis/concierge/login/types_token.go @@ -12,8 +12,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference } type TokenCredentialRequestStatus struct { diff --git a/generated/1.17/apis/concierge/login/v1alpha1/types_token.go b/generated/1.17/apis/concierge/login/v1alpha1/types_token.go index 9fba33694..cb5965a23 100644 --- a/generated/1.17/apis/concierge/login/v1alpha1/types_token.go +++ b/generated/1.17/apis/concierge/login/v1alpha1/types_token.go @@ -13,8 +13,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string `json:"token,omitempty"` - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference `json:"identityProvider"` + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference `json:"authenticator"` } // TokenCredentialRequestStatus is the status of a TokenCredentialRequest, returned on responses to the Pinniped API. diff --git a/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.conversion.go b/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.conversion.go index 93defe45d..999cd6d3a 100644 --- a/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.conversion.go +++ b/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.conversion.go @@ -157,7 +157,7 @@ func Convert_login_TokenCredentialRequestList_To_v1alpha1_TokenCredentialRequest func autoConvert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequestSpec(in *TokenCredentialRequestSpec, out *login.TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } @@ -168,7 +168,7 @@ func Convert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequest func autoConvert_login_TokenCredentialRequestSpec_To_v1alpha1_TokenCredentialRequestSpec(in *login.TokenCredentialRequestSpec, out *TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } diff --git a/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go b/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go index 2001aa609..4160d6692 100644 --- a/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go +++ b/generated/1.17/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.17/apis/concierge/login/zz_generated.deepcopy.go b/generated/1.17/apis/concierge/login/zz_generated.deepcopy.go index d92ad253c..f43661bc6 100644 --- a/generated/1.17/apis/concierge/login/zz_generated.deepcopy.go +++ b/generated/1.17/apis/concierge/login/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.17/client/openapi/zz_generated.openapi.go b/generated/1.17/client/openapi/zz_generated.openapi.go index 821f0ba8f..2aea64774 100644 --- a/generated/1.17/client/openapi/zz_generated.openapi.go +++ b/generated/1.17/client/openapi/zz_generated.openapi.go @@ -476,14 +476,14 @@ func schema_apis_concierge_login_v1alpha1_TokenCredentialRequestSpec(ref common. Format: "", }, }, - "identityProvider": { + "authenticator": { SchemaProps: spec.SchemaProps{ - Description: "Reference to an identity provider which can fulfill this credential request.", + Description: "Reference to an authenticator which can validate this credential request.", Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), }, }, }, - Required: []string{"identityProvider"}, + Required: []string{"authenticator"}, }, }, Dependencies: []string{ diff --git a/generated/1.18/README.adoc b/generated/1.18/README.adoc index 3dc20e722..0361d2162 100644 --- a/generated/1.18/README.adoc +++ b/generated/1.18/README.adoc @@ -328,7 +328,7 @@ TokenCredentialRequestSpec is the specification of a TokenCredentialRequest, exp |=== | Field | Description | *`token`* __string__ | Bearer token supplied with the credential request. -| *`identityProvider`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an identity provider which can fulfill this credential request. +| *`authenticator`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an authenticator which can validate this credential request. |=== diff --git a/generated/1.18/apis/concierge/login/types_token.go b/generated/1.18/apis/concierge/login/types_token.go index 91d36cfbf..a0555f85d 100644 --- a/generated/1.18/apis/concierge/login/types_token.go +++ b/generated/1.18/apis/concierge/login/types_token.go @@ -12,8 +12,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference } type TokenCredentialRequestStatus struct { diff --git a/generated/1.18/apis/concierge/login/v1alpha1/types_token.go b/generated/1.18/apis/concierge/login/v1alpha1/types_token.go index 9fba33694..cb5965a23 100644 --- a/generated/1.18/apis/concierge/login/v1alpha1/types_token.go +++ b/generated/1.18/apis/concierge/login/v1alpha1/types_token.go @@ -13,8 +13,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string `json:"token,omitempty"` - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference `json:"identityProvider"` + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference `json:"authenticator"` } // TokenCredentialRequestStatus is the status of a TokenCredentialRequest, returned on responses to the Pinniped API. diff --git a/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.conversion.go b/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.conversion.go index bdb74e19f..c25c575d8 100644 --- a/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.conversion.go +++ b/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.conversion.go @@ -157,7 +157,7 @@ func Convert_login_TokenCredentialRequestList_To_v1alpha1_TokenCredentialRequest func autoConvert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequestSpec(in *TokenCredentialRequestSpec, out *login.TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } @@ -168,7 +168,7 @@ func Convert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequest func autoConvert_login_TokenCredentialRequestSpec_To_v1alpha1_TokenCredentialRequestSpec(in *login.TokenCredentialRequestSpec, out *TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } diff --git a/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go b/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go index 2001aa609..4160d6692 100644 --- a/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go +++ b/generated/1.18/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.18/apis/concierge/login/zz_generated.deepcopy.go b/generated/1.18/apis/concierge/login/zz_generated.deepcopy.go index d92ad253c..f43661bc6 100644 --- a/generated/1.18/apis/concierge/login/zz_generated.deepcopy.go +++ b/generated/1.18/apis/concierge/login/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.18/client/openapi/zz_generated.openapi.go b/generated/1.18/client/openapi/zz_generated.openapi.go index d020267ec..5dc7862aa 100644 --- a/generated/1.18/client/openapi/zz_generated.openapi.go +++ b/generated/1.18/client/openapi/zz_generated.openapi.go @@ -476,14 +476,14 @@ func schema_apis_concierge_login_v1alpha1_TokenCredentialRequestSpec(ref common. Format: "", }, }, - "identityProvider": { + "authenticator": { SchemaProps: spec.SchemaProps{ - Description: "Reference to an identity provider which can fulfill this credential request.", + Description: "Reference to an authenticator which can validate this credential request.", Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), }, }, }, - Required: []string{"identityProvider"}, + Required: []string{"authenticator"}, }, }, Dependencies: []string{ diff --git a/generated/1.19/README.adoc b/generated/1.19/README.adoc index 25625544a..c33732fa5 100644 --- a/generated/1.19/README.adoc +++ b/generated/1.19/README.adoc @@ -328,7 +328,7 @@ TokenCredentialRequestSpec is the specification of a TokenCredentialRequest, exp |=== | Field | Description | *`token`* __string__ | Bearer token supplied with the credential request. -| *`identityProvider`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an identity provider which can fulfill this credential request. +| *`authenticator`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#typedlocalobjectreference-v1-core[$$TypedLocalObjectReference$$]__ | Reference to an authenticator which can validate this credential request. |=== diff --git a/generated/1.19/apis/concierge/login/types_token.go b/generated/1.19/apis/concierge/login/types_token.go index 91d36cfbf..a0555f85d 100644 --- a/generated/1.19/apis/concierge/login/types_token.go +++ b/generated/1.19/apis/concierge/login/types_token.go @@ -12,8 +12,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference } type TokenCredentialRequestStatus struct { diff --git a/generated/1.19/apis/concierge/login/v1alpha1/types_token.go b/generated/1.19/apis/concierge/login/v1alpha1/types_token.go index 9fba33694..cb5965a23 100644 --- a/generated/1.19/apis/concierge/login/v1alpha1/types_token.go +++ b/generated/1.19/apis/concierge/login/v1alpha1/types_token.go @@ -13,8 +13,8 @@ type TokenCredentialRequestSpec struct { // Bearer token supplied with the credential request. Token string `json:"token,omitempty"` - // Reference to an identity provider which can fulfill this credential request. - IdentityProvider corev1.TypedLocalObjectReference `json:"identityProvider"` + // Reference to an authenticator which can validate this credential request. + Authenticator corev1.TypedLocalObjectReference `json:"authenticator"` } // TokenCredentialRequestStatus is the status of a TokenCredentialRequest, returned on responses to the Pinniped API. diff --git a/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.conversion.go b/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.conversion.go index 6d295f18c..50a88d8ea 100644 --- a/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.conversion.go +++ b/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.conversion.go @@ -157,7 +157,7 @@ func Convert_login_TokenCredentialRequestList_To_v1alpha1_TokenCredentialRequest func autoConvert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequestSpec(in *TokenCredentialRequestSpec, out *login.TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } @@ -168,7 +168,7 @@ func Convert_v1alpha1_TokenCredentialRequestSpec_To_login_TokenCredentialRequest func autoConvert_login_TokenCredentialRequestSpec_To_v1alpha1_TokenCredentialRequestSpec(in *login.TokenCredentialRequestSpec, out *TokenCredentialRequestSpec, s conversion.Scope) error { out.Token = in.Token - out.IdentityProvider = in.IdentityProvider + out.Authenticator = in.Authenticator return nil } diff --git a/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go b/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go index 2001aa609..4160d6692 100644 --- a/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go +++ b/generated/1.19/apis/concierge/login/v1alpha1/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.19/apis/concierge/login/zz_generated.deepcopy.go b/generated/1.19/apis/concierge/login/zz_generated.deepcopy.go index d92ad253c..f43661bc6 100644 --- a/generated/1.19/apis/concierge/login/zz_generated.deepcopy.go +++ b/generated/1.19/apis/concierge/login/zz_generated.deepcopy.go @@ -92,7 +92,7 @@ func (in *TokenCredentialRequestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenCredentialRequestSpec) DeepCopyInto(out *TokenCredentialRequestSpec) { *out = *in - in.IdentityProvider.DeepCopyInto(&out.IdentityProvider) + in.Authenticator.DeepCopyInto(&out.Authenticator) return } diff --git a/generated/1.19/client/openapi/zz_generated.openapi.go b/generated/1.19/client/openapi/zz_generated.openapi.go index 7411987de..ef20e195d 100644 --- a/generated/1.19/client/openapi/zz_generated.openapi.go +++ b/generated/1.19/client/openapi/zz_generated.openapi.go @@ -477,14 +477,14 @@ func schema_apis_concierge_login_v1alpha1_TokenCredentialRequestSpec(ref common. Format: "", }, }, - "identityProvider": { + "authenticator": { SchemaProps: spec.SchemaProps{ - Description: "Reference to an identity provider which can fulfill this credential request.", + Description: "Reference to an authenticator which can validate this credential request.", Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), }, }, }, - Required: []string{"identityProvider"}, + Required: []string{"authenticator"}, }, }, Dependencies: []string{ diff --git a/internal/client/client.go b/internal/client/client.go index 28e4c188d..b29849e88 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -34,8 +34,8 @@ func ExchangeToken(ctx context.Context, namespace string, idp corev1.TypedLocalO Namespace: namespace, }, Spec: v1alpha1.TokenCredentialRequestSpec{ - Token: token, - IdentityProvider: idp, + Token: token, + Authenticator: idp, }, }, metav1.CreateOptions{}) if err != nil { diff --git a/internal/client/client_test.go b/internal/client/client_test.go index 57cbf0d39..e30d4dd24 100644 --- a/internal/client/client_test.go +++ b/internal/client/client_test.go @@ -105,7 +105,7 @@ func TestExchangeToken(t *testing.T) { }, "spec": { "token": "test-token", - "identityProvider": { + "authenticator": { "apiGroup": "authentication.concierge.pinniped.dev", "kind": "WebhookAuthenticator", "name": "test-webhook" diff --git a/internal/controller/identityprovider/idpcache/cache.go b/internal/controller/identityprovider/idpcache/cache.go index ee51ca6c0..dbf6954e8 100644 --- a/internal/controller/identityprovider/idpcache/cache.go +++ b/internal/controller/identityprovider/idpcache/cache.go @@ -84,11 +84,11 @@ func (c *Cache) AuthenticateTokenCredentialRequest(ctx context.Context, req *log // Map the incoming request to a cache key. key := Key{ Namespace: req.Namespace, - Name: req.Spec.IdentityProvider.Name, - Kind: req.Spec.IdentityProvider.Kind, + Name: req.Spec.Authenticator.Name, + Kind: req.Spec.Authenticator.Kind, } - if req.Spec.IdentityProvider.APIGroup != nil { - key.APIGroup = *req.Spec.IdentityProvider.APIGroup + if req.Spec.Authenticator.APIGroup != nil { + key.APIGroup = *req.Spec.Authenticator.APIGroup } val := c.Get(key) diff --git a/internal/controller/identityprovider/idpcache/cache_test.go b/internal/controller/identityprovider/idpcache/cache_test.go index 8e2631d3b..4b15b57b9 100644 --- a/internal/controller/identityprovider/idpcache/cache_test.go +++ b/internal/controller/identityprovider/idpcache/cache_test.go @@ -75,7 +75,7 @@ func TestAuthenticateTokenCredentialRequest(t *testing.T) { Namespace: "test-namespace", }, Spec: loginapi.TokenCredentialRequestSpec{ - IdentityProvider: corev1.TypedLocalObjectReference{ + Authenticator: corev1.TypedLocalObjectReference{ APIGroup: &authv1alpha.SchemeGroupVersion.Group, Kind: "WebhookAuthenticator", Name: "test-name", @@ -85,10 +85,10 @@ func TestAuthenticateTokenCredentialRequest(t *testing.T) { Status: loginapi.TokenCredentialRequestStatus{}, } validRequestKey := Key{ - APIGroup: *validRequest.Spec.IdentityProvider.APIGroup, - Kind: validRequest.Spec.IdentityProvider.Kind, + APIGroup: *validRequest.Spec.Authenticator.APIGroup, + Kind: validRequest.Spec.Authenticator.Kind, Namespace: validRequest.Namespace, - Name: validRequest.Spec.IdentityProvider.Name, + Name: validRequest.Spec.Authenticator.Name, } mockCache := func(t *testing.T, res *authenticator.Response, authenticated bool, err error) *Cache { diff --git a/test/integration/concierge_credentialrequest_test.go b/test/integration/concierge_credentialrequest_test.go index b71969145..3467340a6 100644 --- a/test/integration/concierge_credentialrequest_test.go +++ b/test/integration/concierge_credentialrequest_test.go @@ -154,8 +154,8 @@ func makeRequest(ctx context.Context, t *testing.T, spec loginv1alpha1.TokenCred func validCredentialRequestSpecWithRealToken(t *testing.T, idp corev1.TypedLocalObjectReference) loginv1alpha1.TokenCredentialRequestSpec { return loginv1alpha1.TokenCredentialRequestSpec{ - Token: library.IntegrationEnv(t).TestUser.Token, - IdentityProvider: idp, + Token: library.IntegrationEnv(t).TestUser.Token, + Authenticator: idp, } } From 34da8c78777c7c21bc6312c8d673b766b5a28a04 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Fri, 30 Oct 2020 14:02:21 -0500 Subject: [PATCH 5/5] Rename existing references to "IDP" and "Identity Provider". Signed-off-by: Matt Moyer --- cmd/pinniped/cmd/exchange_credential.go | 32 +++--- cmd/pinniped/cmd/exchange_credential_test.go | 44 ++++---- cmd/pinniped/cmd/get_kubeconfig.go | 64 +++++------ cmd/pinniped/cmd/get_kubeconfig_test.go | 106 +++++++++--------- doc/demo.md | 2 +- internal/client/client.go | 4 +- internal/client/client_test.go | 12 +- internal/concierge/server/server.go | 10 +- .../authncache}/cache.go | 22 ++-- .../authncache}/cache_test.go | 10 +- .../webhookcachecleaner.go | 26 ++--- .../webhookcachecleaner_test.go | 40 +++---- .../webhookcachefiller/webhookcachefiller.go | 30 ++--- .../webhookcachefiller_test.go | 14 +-- .../controllermanager/prepare_controllers.go | 18 +-- test/integration/cli_test.go | 10 +- test/integration/client_test.go | 4 +- .../concierge_credentialrequest_test.go | 8 +- test/library/client.go | 18 +-- 19 files changed, 237 insertions(+), 237 deletions(-) rename internal/controller/{identityprovider/idpcache => authenticator/authncache}/cache.go (81%) rename internal/controller/{identityprovider/idpcache => authenticator/authncache}/cache_test.go (96%) rename internal/controller/{identityprovider => authenticator}/webhookcachecleaner/webhookcachecleaner.go (71%) rename internal/controller/{identityprovider => authenticator}/webhookcachecleaner/webhookcachecleaner_test.go (77%) rename internal/controller/{identityprovider => authenticator}/webhookcachefiller/webhookcachefiller.go (82%) rename internal/controller/{identityprovider => authenticator}/webhookcachefiller/webhookcachefiller_test.go (93%) diff --git a/cmd/pinniped/cmd/exchange_credential.go b/cmd/pinniped/cmd/exchange_credential.go index 481165fb0..20c1d5e03 100644 --- a/cmd/pinniped/cmd/exchange_credential.go +++ b/cmd/pinniped/cmd/exchange_credential.go @@ -60,11 +60,11 @@ func newExchangeCredentialCmd(args []string, stdout, stderr io.Writer) *exchange Requires all of the following environment variables, which are typically set in the kubeconfig: - PINNIPED_TOKEN: the token to send to Pinniped for exchange - - PINNIPED_NAMESPACE: the namespace of the identity provider to authenticate + - PINNIPED_NAMESPACE: the namespace of the authenticator to authenticate against - - PINNIPED_IDP_TYPE: the type of identity provider to authenticate + - PINNIPED_AUTHENTICATOR_TYPE: the type of authenticator to authenticate against (e.g., "webhook") - - PINNIPED_IDP_NAME: the name of the identity provider to authenticate + - PINNIPED_AUTHENTICATOR_NAME: the name of the authenticator to authenticate against - PINNIPED_CA_BUNDLE: the CA bundle to trust when calling Pinniped's HTTPS endpoint @@ -87,15 +87,15 @@ type envGetter func(string) (string, bool) type tokenExchanger func( ctx context.Context, namespace string, - idp corev1.TypedLocalObjectReference, + authenticator corev1.TypedLocalObjectReference, token string, caBundle string, apiEndpoint string, ) (*clientauthenticationv1beta1.ExecCredential, error) const ( - ErrMissingEnvVar = constable.Error("failed to get credential: environment variable not set") - ErrInvalidIDPType = constable.Error("invalid IDP type") + ErrMissingEnvVar = constable.Error("failed to get credential: environment variable not set") + ErrInvalidAuthenticatorType = constable.Error("invalid authenticator type") ) func runExchangeCredential(stdout, _ io.Writer) { @@ -115,14 +115,14 @@ func exchangeCredential(envGetter envGetter, tokenExchanger tokenExchanger, outp return envVarNotSetError("PINNIPED_NAMESPACE") } - idpType, varExists := envGetter("PINNIPED_IDP_TYPE") + authenticatorType, varExists := envGetter("PINNIPED_AUTHENTICATOR_TYPE") if !varExists { - return envVarNotSetError("PINNIPED_IDP_TYPE") + return envVarNotSetError("PINNIPED_AUTHENTICATOR_TYPE") } - idpName, varExists := envGetter("PINNIPED_IDP_NAME") + authenticatorName, varExists := envGetter("PINNIPED_AUTHENTICATOR_NAME") if !varExists { - return envVarNotSetError("PINNIPED_IDP_NAME") + return envVarNotSetError("PINNIPED_AUTHENTICATOR_NAME") } token, varExists := envGetter("PINNIPED_TOKEN") @@ -140,16 +140,16 @@ func exchangeCredential(envGetter envGetter, tokenExchanger tokenExchanger, outp return envVarNotSetError("PINNIPED_K8S_API_ENDPOINT") } - idp := corev1.TypedLocalObjectReference{Name: idpName} - switch strings.ToLower(idpType) { + authenticator := corev1.TypedLocalObjectReference{Name: authenticatorName} + switch strings.ToLower(authenticatorType) { case "webhook": - idp.APIGroup = &auth1alpha1.SchemeGroupVersion.Group - idp.Kind = "WebhookAuthenticator" + authenticator.APIGroup = &auth1alpha1.SchemeGroupVersion.Group + authenticator.Kind = "WebhookAuthenticator" default: - return fmt.Errorf(`%w: %q, supported values are "webhook"`, ErrInvalidIDPType, idpType) + return fmt.Errorf(`%w: %q, supported values are "webhook"`, ErrInvalidAuthenticatorType, authenticatorType) } - cred, err := tokenExchanger(ctx, namespace, idp, token, caBundle, apiEndpoint) + cred, err := tokenExchanger(ctx, namespace, authenticator, token, caBundle, apiEndpoint) if err != nil { return fmt.Errorf("failed to get credential: %w", err) } diff --git a/cmd/pinniped/cmd/exchange_credential_test.go b/cmd/pinniped/cmd/exchange_credential_test.go index b074cfc07..9c9e1c3f6 100644 --- a/cmd/pinniped/cmd/exchange_credential_test.go +++ b/cmd/pinniped/cmd/exchange_credential_test.go @@ -43,11 +43,11 @@ var ( Requires all of the following environment variables, which are typically set in the kubeconfig: - PINNIPED_TOKEN: the token to send to Pinniped for exchange - - PINNIPED_NAMESPACE: the namespace of the identity provider to authenticate + - PINNIPED_NAMESPACE: the namespace of the authenticator to authenticate against - - PINNIPED_IDP_TYPE: the type of identity provider to authenticate + - PINNIPED_AUTHENTICATOR_TYPE: the type of authenticator to authenticate against (e.g., "webhook") - - PINNIPED_IDP_NAME: the name of the identity provider to authenticate + - PINNIPED_AUTHENTICATOR_NAME: the name of the authenticator to authenticate against - PINNIPED_CA_BUNDLE: the CA bundle to trust when calling Pinniped's HTTPS endpoint @@ -142,12 +142,12 @@ func TestExchangeCredential(t *testing.T) { r = require.New(t) buffer = new(bytes.Buffer) fakeEnv = map[string]string{ - "PINNIPED_NAMESPACE": "namespace from env", - "PINNIPED_IDP_TYPE": "Webhook", - "PINNIPED_IDP_NAME": "webhook name from env", - "PINNIPED_TOKEN": "token from env", - "PINNIPED_CA_BUNDLE": "ca bundle from env", - "PINNIPED_K8S_API_ENDPOINT": "k8s api from env", + "PINNIPED_NAMESPACE": "namespace from env", + "PINNIPED_AUTHENTICATOR_TYPE": "Webhook", + "PINNIPED_AUTHENTICATOR_NAME": "webhook name from env", + "PINNIPED_TOKEN": "token from env", + "PINNIPED_CA_BUNDLE": "ca bundle from env", + "PINNIPED_K8S_API_ENDPOINT": "k8s api from env", } }) @@ -158,16 +158,16 @@ func TestExchangeCredential(t *testing.T) { r.EqualError(err, "failed to get credential: environment variable not set: PINNIPED_NAMESPACE") }) - it("returns an error when PINNIPED_IDP_TYPE is missing", func() { - delete(fakeEnv, "PINNIPED_IDP_TYPE") + it("returns an error when PINNIPED_AUTHENTICATOR_TYPE is missing", func() { + delete(fakeEnv, "PINNIPED_AUTHENTICATOR_TYPE") err := exchangeCredential(envGetter, tokenExchanger, buffer, 30*time.Second) - r.EqualError(err, "failed to get credential: environment variable not set: PINNIPED_IDP_TYPE") + r.EqualError(err, "failed to get credential: environment variable not set: PINNIPED_AUTHENTICATOR_TYPE") }) - it("returns an error when PINNIPED_IDP_NAME is missing", func() { - delete(fakeEnv, "PINNIPED_IDP_NAME") + it("returns an error when PINNIPED_AUTHENTICATOR_NAME is missing", func() { + delete(fakeEnv, "PINNIPED_AUTHENTICATOR_NAME") err := exchangeCredential(envGetter, tokenExchanger, buffer, 30*time.Second) - r.EqualError(err, "failed to get credential: environment variable not set: PINNIPED_IDP_NAME") + r.EqualError(err, "failed to get credential: environment variable not set: PINNIPED_AUTHENTICATOR_NAME") }) it("returns an error when PINNIPED_TOKEN is missing", func() { @@ -190,16 +190,16 @@ func TestExchangeCredential(t *testing.T) { }) when("env vars are invalid", func() { - it("returns an error when PINNIPED_IDP_TYPE is missing", func() { - fakeEnv["PINNIPED_IDP_TYPE"] = "invalid" + it("returns an error when PINNIPED_AUTHENTICATOR_TYPE is missing", func() { + fakeEnv["PINNIPED_AUTHENTICATOR_TYPE"] = "invalid" err := exchangeCredential(envGetter, tokenExchanger, buffer, 30*time.Second) - r.EqualError(err, `invalid IDP type: "invalid", supported values are "webhook"`) + r.EqualError(err, `invalid authenticator type: "invalid", supported values are "webhook"`) }) }) when("the token exchange fails", func() { it.Before(func() { - tokenExchanger = func(ctx context.Context, namespace string, idp corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { + tokenExchanger = func(ctx context.Context, namespace string, authenticator corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { return nil, fmt.Errorf("some error") } }) @@ -212,7 +212,7 @@ func TestExchangeCredential(t *testing.T) { when("the JSON encoder fails", func() { it.Before(func() { - tokenExchanger = func(ctx context.Context, namespace string, idp corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { + tokenExchanger = func(ctx context.Context, namespace string, authenticator corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { return &clientauthenticationv1beta1.ExecCredential{ Status: &clientauthenticationv1beta1.ExecCredentialStatus{ Token: "some token", @@ -229,7 +229,7 @@ func TestExchangeCredential(t *testing.T) { when("the token exchange times out", func() { it.Before(func() { - tokenExchanger = func(ctx context.Context, namespace string, idp corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { + tokenExchanger = func(ctx context.Context, namespace string, authenticator corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { select { case <-time.After(100 * time.Millisecond): return &clientauthenticationv1beta1.ExecCredential{ @@ -253,7 +253,7 @@ func TestExchangeCredential(t *testing.T) { var actualNamespace, actualToken, actualCaBundle, actualAPIEndpoint string it.Before(func() { - tokenExchanger = func(ctx context.Context, namespace string, idp corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { + tokenExchanger = func(ctx context.Context, namespace string, authenticator corev1.TypedLocalObjectReference, token, caBundle, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { actualNamespace, actualToken, actualCaBundle, actualAPIEndpoint = namespace, token, caBundle, apiEndpoint now := metav1.NewTime(time.Date(2020, 7, 29, 1, 2, 3, 0, time.UTC)) return &clientauthenticationv1beta1.ExecCredential{ diff --git a/cmd/pinniped/cmd/get_kubeconfig.go b/cmd/pinniped/cmd/get_kubeconfig.go index a0349eed8..ad5f9f131 100644 --- a/cmd/pinniped/cmd/get_kubeconfig.go +++ b/cmd/pinniped/cmd/get_kubeconfig.go @@ -33,12 +33,12 @@ func init() { } type getKubeConfigFlags struct { - token string - kubeconfig string - contextOverride string - namespace string - idpName string - idpType string + token string + kubeconfig string + contextOverride string + namespace string + authenticatorName string + authenticatorType string } type getKubeConfigCommand struct { @@ -88,8 +88,8 @@ func (c *getKubeConfigCommand) Command() *cobra.Command { cmd.Flags().StringVar(&c.flags.kubeconfig, "kubeconfig", c.flags.kubeconfig, "Path to the kubeconfig file") cmd.Flags().StringVar(&c.flags.contextOverride, "kubeconfig-context", c.flags.contextOverride, "Kubeconfig context override") cmd.Flags().StringVar(&c.flags.namespace, "pinniped-namespace", c.flags.namespace, "Namespace in which Pinniped was installed") - cmd.Flags().StringVar(&c.flags.idpType, "idp-type", c.flags.idpType, "Identity provider type (e.g., 'webhook')") - cmd.Flags().StringVar(&c.flags.idpName, "idp-name", c.flags.idpType, "Identity provider name") + cmd.Flags().StringVar(&c.flags.authenticatorType, "authenticator-type", c.flags.authenticatorType, "Authenticator type (e.g., 'webhook')") + cmd.Flags().StringVar(&c.flags.authenticatorName, "authenticator-name", c.flags.authenticatorType, "Authenticator name") mustMarkRequired(cmd, "token") return cmd } @@ -116,9 +116,9 @@ func (c *getKubeConfigCommand) run(cmd *cobra.Command, args []string) error { return err } - idpType, idpName := c.flags.idpType, c.flags.idpName - if idpType == "" || idpName == "" { - idpType, idpName, err = getDefaultIDP(clientset, c.flags.namespace) + authenticatorType, authenticatorName := c.flags.authenticatorType, c.flags.authenticatorName + if authenticatorType == "" || authenticatorName == "" { + authenticatorType, authenticatorName, err = getDefaultAuthenticator(clientset, c.flags.namespace) if err != nil { return err } @@ -143,7 +143,7 @@ func (c *getKubeConfigCommand) run(cmd *cobra.Command, args []string) error { return err } - config := newPinnipedKubeconfig(v1Cluster, fullPathToSelf, c.flags.token, c.flags.namespace, idpType, idpName) + config := newPinnipedKubeconfig(v1Cluster, fullPathToSelf, c.flags.token, c.flags.namespace, authenticatorType, authenticatorName) err = writeConfigAsYAML(cmd.OutOrStdout(), config) if err != nil { @@ -168,22 +168,22 @@ func issueWarningForNonMatchingServerOrCA(v1Cluster v1.Cluster, credentialIssuer return nil } -type noIDPError struct{ Namespace string } +type noAuthenticatorError struct{ Namespace string } -func (e noIDPError) Error() string { - return fmt.Sprintf(`no identity providers were found in namespace %q`, e.Namespace) +func (e noAuthenticatorError) Error() string { + return fmt.Sprintf(`no authenticators were found in namespace %q`, e.Namespace) } -type indeterminateIDPError struct{ Namespace string } +type indeterminateAuthenticatorError struct{ Namespace string } -func (e indeterminateIDPError) Error() string { +func (e indeterminateAuthenticatorError) Error() string { return fmt.Sprintf( - `multiple identity providers were found in namespace %q, so --pinniped-idp-name/--pinniped-idp-type must be specified`, + `multiple authenticators were found in namespace %q, so --authenticator-name/--authenticator-type must be specified`, e.Namespace, ) } -func getDefaultIDP(clientset pinnipedclientset.Interface, namespace string) (string, string, error) { +func getDefaultAuthenticator(clientset pinnipedclientset.Interface, namespace string) (string, string, error) { ctx, cancelFunc := context.WithTimeout(context.Background(), time.Second*20) defer cancelFunc() @@ -192,19 +192,19 @@ func getDefaultIDP(clientset pinnipedclientset.Interface, namespace string) (str return "", "", err } - type ref struct{ idpType, idpName string } - idps := make([]ref, 0, len(webhooks.Items)) + type ref struct{ authenticatorType, authenticatorName string } + authenticators := make([]ref, 0, len(webhooks.Items)) for _, webhook := range webhooks.Items { - idps = append(idps, ref{idpType: "webhook", idpName: webhook.Name}) + authenticators = append(authenticators, ref{authenticatorType: "webhook", authenticatorName: webhook.Name}) } - if len(idps) == 0 { - return "", "", noIDPError{namespace} + if len(authenticators) == 0 { + return "", "", noAuthenticatorError{namespace} } - if len(idps) > 1 { - return "", "", indeterminateIDPError{namespace} + if len(authenticators) > 1 { + return "", "", indeterminateAuthenticatorError{namespace} } - return idps[0].idpType, idps[0].idpName, nil + return authenticators[0].authenticatorType, authenticators[0].authenticatorName, nil } func fetchPinnipedCredentialIssuerConfig(clientset pinnipedclientset.Interface, pinnipedInstallationNamespace string) (*configv1alpha1.CredentialIssuerConfig, error) { @@ -277,7 +277,7 @@ func copyCurrentClusterFromExistingKubeConfig(currentKubeConfig clientcmdapi.Con return v1Cluster, nil } -func newPinnipedKubeconfig(v1Cluster v1.Cluster, fullPathToSelf string, token string, namespace string, idpType string, idpName string) v1.Config { +func newPinnipedKubeconfig(v1Cluster v1.Cluster, fullPathToSelf string, token string, namespace string, authenticatorType string, authenticatorName string) v1.Config { clusterName := "pinniped-cluster" userName := "pinniped-user" @@ -324,12 +324,12 @@ func newPinnipedKubeconfig(v1Cluster v1.Cluster, fullPathToSelf string, token st Value: token, }, { - Name: "PINNIPED_IDP_TYPE", - Value: idpType, + Name: "PINNIPED_AUTHENTICATOR_TYPE", + Value: authenticatorType, }, { - Name: "PINNIPED_IDP_NAME", - Value: idpName, + Name: "PINNIPED_AUTHENTICATOR_NAME", + Value: authenticatorName, }, }, APIVersion: clientauthenticationv1beta1.SchemeGroupVersion.String(), diff --git a/cmd/pinniped/cmd/get_kubeconfig_test.go b/cmd/pinniped/cmd/get_kubeconfig_test.go index 430791730..6bdd262f6 100644 --- a/cmd/pinniped/cmd/get_kubeconfig_test.go +++ b/cmd/pinniped/cmd/get_kubeconfig_test.go @@ -30,9 +30,9 @@ var ( get-kubeconfig [flags] Flags: + --authenticator-name string Authenticator name + --authenticator-type string Authenticator type (e.g., 'webhook') -h, --help help for get-kubeconfig - --idp-name string Identity provider name - --idp-type string Identity provider type (e.g., 'webhook') --kubeconfig string Path to the kubeconfig file --kubeconfig-context string Kubeconfig context override --pinniped-namespace string Namespace in which Pinniped was installed (default "pinniped") @@ -61,9 +61,9 @@ var ( get-kubeconfig [flags] Flags: + --authenticator-name string Authenticator name + --authenticator-type string Authenticator type (e.g., 'webhook') -h, --help help for get-kubeconfig - --idp-name string Identity provider name - --idp-type string Identity provider type (e.g., 'webhook') --kubeconfig string Path to the kubeconfig file --kubeconfig-context string Kubeconfig context override --pinniped-namespace string Namespace in which Pinniped was installed (default "pinniped") @@ -116,15 +116,15 @@ func TestNewGetKubeConfigCmd(t *testing.T) { } type expectedKubeconfigYAML struct { - clusterCAData string - clusterServer string - command string - token string - pinnipedEndpoint string - pinnipedCABundle string - namespace string - idpType string - idpName string + clusterCAData string + clusterServer string + command string + token string + pinnipedEndpoint string + pinnipedCABundle string + namespace string + authenticatorType string + authenticatorName string } func (e expectedKubeconfigYAML) String() string { @@ -160,14 +160,14 @@ func (e expectedKubeconfigYAML) String() string { value: %s - name: PINNIPED_TOKEN value: %s - - name: PINNIPED_IDP_TYPE + - name: PINNIPED_AUTHENTICATOR_TYPE value: %s - - name: PINNIPED_IDP_NAME + - name: PINNIPED_AUTHENTICATOR_NAME value: %s installHint: |- The Pinniped CLI is required to authenticate to the current cluster. For more information, please visit https://pinniped.dev - `, e.clusterCAData, e.clusterServer, e.command, e.pinnipedEndpoint, e.pinnipedCABundle, e.namespace, e.token, e.idpType, e.idpName) + `, e.clusterCAData, e.clusterServer, e.command, e.pinnipedEndpoint, e.pinnipedCABundle, e.namespace, e.token, e.authenticatorType, e.authenticatorName) } func newCredentialIssuerConfig(name, namespace, server, certificateAuthorityData string) *configv1alpha1.CredentialIssuerConfig { @@ -224,36 +224,36 @@ func TestRun(t *testing.T) { wantError: "some error configuring clientset", }, { - name: "fail to get IDPs", + name: "fail to get authenticators", mocks: func(cmd *getKubeConfigCommand) { - cmd.flags.idpName = "" - cmd.flags.idpType = "" + cmd.flags.authenticatorName = "" + cmd.flags.authenticatorType = "" clientset := pinnipedfake.NewSimpleClientset() clientset.PrependReactor("*", "*", func(_ coretesting.Action) (bool, runtime.Object, error) { - return true, nil, fmt.Errorf("some error getting IDPs") + return true, nil, fmt.Errorf("some error getting authenticators") }) cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return clientset, nil } }, - wantError: "some error getting IDPs", + wantError: "some error getting authenticators", }, { - name: "zero IDPs", + name: "zero authenticators", mocks: func(cmd *getKubeConfigCommand) { - cmd.flags.idpName = "" - cmd.flags.idpType = "" + cmd.flags.authenticatorName = "" + cmd.flags.authenticatorType = "" cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset(), nil } }, - wantError: `no identity providers were found in namespace "test-namespace"`, + wantError: `no authenticators were found in namespace "test-namespace"`, }, { - name: "multiple IDPs", + name: "multiple authenticators", mocks: func(cmd *getKubeConfigCommand) { - cmd.flags.idpName = "" - cmd.flags.idpType = "" + cmd.flags.authenticatorName = "" + cmd.flags.authenticatorType = "" cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "webhook-one"}}, @@ -261,7 +261,7 @@ func TestRun(t *testing.T) { ), nil } }, - wantError: `multiple identity providers were found in namespace "test-namespace", so --pinniped-idp-name/--pinniped-idp-type must be specified`, + wantError: `multiple authenticators were found in namespace "test-namespace", so --authenticator-name/--authenticator-type must be specified`, }, { name: "fail to get CredentialIssuerConfigs", @@ -330,41 +330,41 @@ func TestRun(t *testing.T) { } }, wantStdout: expectedKubeconfigYAML{ - clusterCAData: "ZmFrZS1jZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YS12YWx1ZQ==", - clusterServer: "https://fake-server-url-value", - command: "/path/to/pinniped", - token: "test-token", - pinnipedEndpoint: "https://fake-server-url-value", - pinnipedCABundle: "fake-certificate-authority-data-value", - namespace: "test-namespace", - idpType: "test-idp-type", - idpName: "test-idp-name", + clusterCAData: "ZmFrZS1jZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YS12YWx1ZQ==", + clusterServer: "https://fake-server-url-value", + command: "/path/to/pinniped", + token: "test-token", + pinnipedEndpoint: "https://fake-server-url-value", + pinnipedCABundle: "fake-certificate-authority-data-value", + namespace: "test-namespace", + authenticatorType: "test-authenticator-type", + authenticatorName: "test-authenticator-name", }.String(), }, { - name: "success using local CA data and discovered IDP", + name: "success using local CA data and discovered authenticator", mocks: func(cmd *getKubeConfigCommand) { - cmd.flags.idpName = "" - cmd.flags.idpType = "" + cmd.flags.authenticatorName = "" + cmd.flags.authenticatorType = "" cmd.kubeClientCreator = func(_ *rest.Config) (pinnipedclientset.Interface, error) { return pinnipedfake.NewSimpleClientset( - &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-idp"}}, + &authv1alpha.WebhookAuthenticator{ObjectMeta: metav1.ObjectMeta{Namespace: "test-namespace", Name: "discovered-authenticator"}}, newCredentialIssuerConfig("pinniped-config", "test-namespace", "https://example.com", "test-ca"), ), nil } }, wantStderr: `WARNING: Server and certificate authority did not match between local kubeconfig and Pinniped's CredentialIssuerConfig on the cluster. Using local kubeconfig values.`, wantStdout: expectedKubeconfigYAML{ - clusterCAData: "ZmFrZS1jZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YS12YWx1ZQ==", - clusterServer: "https://fake-server-url-value", - command: "/path/to/pinniped", - token: "test-token", - pinnipedEndpoint: "https://fake-server-url-value", - pinnipedCABundle: "fake-certificate-authority-data-value", - namespace: "test-namespace", - idpType: "webhook", - idpName: "discovered-idp", + clusterCAData: "ZmFrZS1jZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YS12YWx1ZQ==", + clusterServer: "https://fake-server-url-value", + command: "/path/to/pinniped", + token: "test-token", + pinnipedEndpoint: "https://fake-server-url-value", + pinnipedCABundle: "fake-certificate-authority-data-value", + namespace: "test-namespace", + authenticatorType: "webhook", + authenticatorName: "discovered-authenticator", }.String(), }, } @@ -377,8 +377,8 @@ func TestRun(t *testing.T) { c := newGetKubeConfigCommand() c.flags.token = "test-token" c.flags.namespace = "test-namespace" - c.flags.idpName = "test-idp-name" - c.flags.idpType = "test-idp-type" + c.flags.authenticatorName = "test-authenticator-name" + c.flags.authenticatorType = "test-authenticator-type" c.getPathToSelf = func() (string, error) { return "/path/to/pinniped", nil } c.flags.kubeconfig = "./testdata/kubeconfig.yaml" tt.mocks(c) diff --git a/doc/demo.md b/doc/demo.md index 4d6fcafed..1da8e392b 100644 --- a/doc/demo.md +++ b/doc/demo.md @@ -143,7 +143,7 @@ as the identity provider. allow you to authenticate as the user that you created above. ```bash - pinniped get-kubeconfig --token "pinny-the-seal:password123" --idp-type webhook --idp-name local-user-authenticator > /tmp/pinniped-kubeconfig + pinniped get-kubeconfig --token "pinny-the-seal:password123" --authenticator-type webhook --authenticator-name local-user-authenticator > /tmp/pinniped-kubeconfig ``` If you are using MacOS, you may get an error dialog that says diff --git a/internal/client/client.go b/internal/client/client.go index b29849e88..435b59271 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -23,7 +23,7 @@ import ( var ErrLoginFailed = errors.New("login failed") // ExchangeToken exchanges an opaque token using the Pinniped TokenCredentialRequest API, returning a client-go ExecCredential valid on the target cluster. -func ExchangeToken(ctx context.Context, namespace string, idp corev1.TypedLocalObjectReference, token string, caBundle string, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { +func ExchangeToken(ctx context.Context, namespace string, authenticator corev1.TypedLocalObjectReference, token string, caBundle string, apiEndpoint string) (*clientauthenticationv1beta1.ExecCredential, error) { client, err := getClient(apiEndpoint, caBundle) if err != nil { return nil, fmt.Errorf("could not get API client: %w", err) @@ -35,7 +35,7 @@ func ExchangeToken(ctx context.Context, namespace string, idp corev1.TypedLocalO }, Spec: v1alpha1.TokenCredentialRequestSpec{ Token: token, - Authenticator: idp, + Authenticator: authenticator, }, }, metav1.CreateOptions{}) if err != nil { diff --git a/internal/client/client_test.go b/internal/client/client_test.go index e30d4dd24..7a0e47cfa 100644 --- a/internal/client/client_test.go +++ b/internal/client/client_test.go @@ -25,7 +25,7 @@ func TestExchangeToken(t *testing.T) { t.Parallel() ctx := context.Background() - testIDP := corev1.TypedLocalObjectReference{ + testAuthenticator := corev1.TypedLocalObjectReference{ APIGroup: &auth1alpha1.SchemeGroupVersion.Group, Kind: "WebhookAuthenticator", Name: "test-webhook", @@ -33,7 +33,7 @@ func TestExchangeToken(t *testing.T) { t.Run("invalid configuration", func(t *testing.T) { t.Parallel() - got, err := ExchangeToken(ctx, "test-namespace", testIDP, "", "", "") + got, err := ExchangeToken(ctx, "test-namespace", testAuthenticator, "", "", "") require.EqualError(t, err, "could not get API client: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable") require.Nil(t, got) }) @@ -46,7 +46,7 @@ func TestExchangeToken(t *testing.T) { _, _ = w.Write([]byte("some server error")) }) - got, err := ExchangeToken(ctx, "test-namespace", testIDP, "", caBundle, endpoint) + got, err := ExchangeToken(ctx, "test-namespace", testAuthenticator, "", caBundle, endpoint) require.EqualError(t, err, `could not login: an error on the server ("some server error") has prevented the request from succeeding (post tokencredentialrequests.login.concierge.pinniped.dev)`) require.Nil(t, got) }) @@ -63,7 +63,7 @@ func TestExchangeToken(t *testing.T) { }) }) - got, err := ExchangeToken(ctx, "test-namespace", testIDP, "", caBundle, endpoint) + got, err := ExchangeToken(ctx, "test-namespace", testAuthenticator, "", caBundle, endpoint) require.EqualError(t, err, `login failed: some login failure`) require.Nil(t, got) }) @@ -78,7 +78,7 @@ func TestExchangeToken(t *testing.T) { }) }) - got, err := ExchangeToken(ctx, "test-namespace", testIDP, "", caBundle, endpoint) + got, err := ExchangeToken(ctx, "test-namespace", testAuthenticator, "", caBundle, endpoint) require.EqualError(t, err, `login failed: unknown`) require.Nil(t, got) }) @@ -129,7 +129,7 @@ func TestExchangeToken(t *testing.T) { }) }) - got, err := ExchangeToken(ctx, "test-namespace", testIDP, "test-token", caBundle, endpoint) + got, err := ExchangeToken(ctx, "test-namespace", testAuthenticator, "test-token", caBundle, endpoint) require.NoError(t, err) require.Equal(t, &clientauthenticationv1beta1.ExecCredential{ TypeMeta: metav1.TypeMeta{ diff --git a/internal/concierge/server/server.go b/internal/concierge/server/server.go index d474dcf8d..b3667b4df 100644 --- a/internal/concierge/server/server.go +++ b/internal/concierge/server/server.go @@ -18,7 +18,7 @@ import ( "go.pinniped.dev/internal/certauthority/dynamiccertauthority" "go.pinniped.dev/internal/concierge/apiserver" "go.pinniped.dev/internal/config/concierge" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" + "go.pinniped.dev/internal/controller/authenticator/authncache" "go.pinniped.dev/internal/controllermanager" "go.pinniped.dev/internal/downward" "go.pinniped.dev/internal/dynamiccert" @@ -104,8 +104,8 @@ func (a *App) runServer(ctx context.Context) error { } serverInstallationNamespace := podInfo.Namespace - // Initialize the cache of active identity providers. - idpCache := idpcache.New() + // Initialize the cache of active authenticators. + authenticators := authncache.New() // This cert provider will provide certs to the API server and will // be mutated by a controller to keep the certs up to date with what @@ -131,7 +131,7 @@ func (a *App) runServer(ctx context.Context) error { DynamicSigningCertProvider: dynamicSigningCertProvider, ServingCertDuration: time.Duration(*cfg.APIConfig.ServingCertificateConfig.DurationSeconds) * time.Second, ServingCertRenewBefore: time.Duration(*cfg.APIConfig.ServingCertificateConfig.RenewBeforeSeconds) * time.Second, - IDPCache: idpCache, + AuthenticatorCache: authenticators, }, ) if err != nil { @@ -141,7 +141,7 @@ func (a *App) runServer(ctx context.Context) error { // Get the aggregated API server config. aggregatedAPIServerConfig, err := getAggregatedAPIServerConfig( dynamicServingCertProvider, - idpCache, + authenticators, dynamiccertauthority.New(dynamicSigningCertProvider), startControllersFunc, ) diff --git a/internal/controller/identityprovider/idpcache/cache.go b/internal/controller/authenticator/authncache/cache.go similarity index 81% rename from internal/controller/identityprovider/idpcache/cache.go rename to internal/controller/authenticator/authncache/cache.go index dbf6954e8..00de2e1ef 100644 --- a/internal/controller/identityprovider/idpcache/cache.go +++ b/internal/controller/authenticator/authncache/cache.go @@ -1,8 +1,8 @@ // Copyright 2020 the Pinniped contributors. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -// Package idpcache implements a cache of active identity providers. -package idpcache +// Package authncache implements a cache of active authenticators. +package authncache import ( "context" @@ -17,12 +17,12 @@ import ( ) var ( - // ErrNoSuchIDP is returned by Cache.AuthenticateTokenCredentialRequest() when the requested IDP is not configured. - ErrNoSuchIDP = fmt.Errorf("no such identity provider") + // ErrNoSuchAuthenticator is returned by Cache.AuthenticateTokenCredentialRequest() when the requested authenticator is not configured. + ErrNoSuchAuthenticator = fmt.Errorf("no such authenticator") ) -// Cache implements the authenticator.Token interface by multiplexing across a dynamic set of identity providers -// loaded from IDP resources. +// Cache implements the authenticator.Token interface by multiplexing across a dynamic set of authenticators +// loaded from authenticator resources. type Cache struct { cache sync.Map } @@ -43,7 +43,7 @@ func New() *Cache { return &Cache{} } -// Get an identity provider by key. +// Get an authenticator by key. func (c *Cache) Get(key Key) Value { res, _ := c.cache.Load(key) if res == nil { @@ -52,12 +52,12 @@ func (c *Cache) Get(key Key) Value { return res.(Value) } -// Store an identity provider into the cache. +// Store an authenticator into the cache. func (c *Cache) Store(key Key, value Value) { c.cache.Store(key, value) } -// Delete an identity provider from the cache. +// Delete an authenticator from the cache. func (c *Cache) Delete(key Key) { c.cache.Delete(key) } @@ -93,14 +93,14 @@ func (c *Cache) AuthenticateTokenCredentialRequest(ctx context.Context, req *log val := c.Get(key) if val == nil { - return nil, ErrNoSuchIDP + return nil, ErrNoSuchAuthenticator } // The incoming context could have an audience. Since we do not want to handle audiences right now, do not pass it // through directly to the authentication webhook. ctx = valuelessContext{ctx} - // Call the selected IDP. + // Call the selected authenticator. resp, authenticated, err := val.AuthenticateToken(ctx, req.Spec.Token) if err != nil { return nil, err diff --git a/internal/controller/identityprovider/idpcache/cache_test.go b/internal/controller/authenticator/authncache/cache_test.go similarity index 96% rename from internal/controller/identityprovider/idpcache/cache_test.go rename to internal/controller/authenticator/authncache/cache_test.go index 4b15b57b9..bd38d5c34 100644 --- a/internal/controller/identityprovider/idpcache/cache_test.go +++ b/internal/controller/authenticator/authncache/cache_test.go @@ -1,7 +1,7 @@ // Copyright 2020 the Pinniped contributors. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -package idpcache +package authncache import ( "context" @@ -31,13 +31,13 @@ func TestCache(t *testing.T) { cache := New() require.NotNil(t, cache) - key1 := Key{Namespace: "foo", Name: "idp-one"} + key1 := Key{Namespace: "foo", Name: "authenticator-one"} mockToken1 := mocktokenauthenticator.NewMockToken(ctrl) cache.Store(key1, mockToken1) require.Equal(t, mockToken1, cache.Get(key1)) require.Equal(t, 1, len(cache.Keys())) - key2 := Key{Namespace: "foo", Name: "idp-two"} + key2 := Key{Namespace: "foo", Name: "authenticator-two"} mockToken2 := mocktokenauthenticator.NewMockToken(ctrl) cache.Store(key2, mockToken2) require.Equal(t, mockToken2, cache.Get(key2)) @@ -101,10 +101,10 @@ func TestAuthenticateTokenCredentialRequest(t *testing.T) { return c } - t.Run("no such IDP", func(t *testing.T) { + t.Run("no such authenticator", func(t *testing.T) { c := New() res, err := c.AuthenticateTokenCredentialRequest(context.Background(), validRequest.DeepCopy()) - require.EqualError(t, err, "no such identity provider") + require.EqualError(t, err, "no such authenticator") require.Nil(t, res) }) diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go b/internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner.go similarity index 71% rename from internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go rename to internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner.go index fcb69416e..c867c1aa7 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner.go +++ b/internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner.go @@ -1,7 +1,7 @@ // Copyright 2020 the Pinniped contributors. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -// Package webhookcachecleaner implements a controller for garbage collectting webhook IDPs from an IDP cache. +// Package webhookcachecleaner implements a controller for garbage collecting webhook authenticators from an authenticator cache. package webhookcachecleaner import ( @@ -12,25 +12,25 @@ import ( "k8s.io/klog/v2" auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" - idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" + authinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" + "go.pinniped.dev/internal/controller/authenticator/authncache" "go.pinniped.dev/internal/controllerlib" ) // New instantiates a new controllerlib.Controller which will garbage collect webhooks from the provided Cache. -func New(cache *idpcache.Cache, webhookIDPs idpinformers.WebhookAuthenticatorInformer, log logr.Logger) controllerlib.Controller { +func New(cache *authncache.Cache, webhooks authinformers.WebhookAuthenticatorInformer, log logr.Logger) controllerlib.Controller { return controllerlib.New( controllerlib.Config{ Name: "webhookcachecleaner-controller", Syncer: &controller{ - cache: cache, - webhookIDPs: webhookIDPs, - log: log.WithName("webhookcachecleaner-controller"), + cache: cache, + webhooks: webhooks, + log: log.WithName("webhookcachecleaner-controller"), }, }, controllerlib.WithInformer( - webhookIDPs, + webhooks, pinnipedcontroller.MatchAnythingFilter(), controllerlib.InformerOption{}, ), @@ -38,14 +38,14 @@ func New(cache *idpcache.Cache, webhookIDPs idpinformers.WebhookAuthenticatorInf } type controller struct { - cache *idpcache.Cache - webhookIDPs idpinformers.WebhookAuthenticatorInformer - log logr.Logger + cache *authncache.Cache + webhooks authinformers.WebhookAuthenticatorInformer + log logr.Logger } // Sync implements controllerlib.Syncer. func (c *controller) Sync(_ controllerlib.Context) error { - webhooks, err := c.webhookIDPs.Lister().List(labels.Everything()) + webhooks, err := c.webhooks.Lister().List(labels.Everything()) if err != nil { return fmt.Errorf("failed to list WebhookAuthenticators: %w", err) } @@ -63,7 +63,7 @@ func (c *controller) Sync(_ controllerlib.Context) error { continue } if _, exists := webhooksByKey[controllerlib.Key{Namespace: key.Namespace, Name: key.Name}]; !exists { - c.log.WithValues("idp", klog.KRef(key.Namespace, key.Name)).Info("deleting webhook IDP from cache") + c.log.WithValues("webhook", klog.KRef(key.Namespace, key.Name)).Info("deleting webhook authenticator from cache") c.cache.Delete(key) } } diff --git a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go b/internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner_test.go similarity index 77% rename from internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go rename to internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner_test.go index d6c826354..4301dd29b 100644 --- a/internal/controller/identityprovider/webhookcachecleaner/webhookcachecleaner_test.go +++ b/internal/controller/authenticator/webhookcachecleaner/webhookcachecleaner_test.go @@ -15,7 +15,7 @@ import ( authv1alpha "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" + "go.pinniped.dev/internal/controller/authenticator/authncache" "go.pinniped.dev/internal/controllerlib" "go.pinniped.dev/internal/testutil/testlogger" ) @@ -23,37 +23,37 @@ import ( func TestController(t *testing.T) { t.Parallel() - testKey1 := idpcache.Key{ + testKey1 := authncache.Key{ APIGroup: "authentication.concierge.pinniped.dev", Kind: "WebhookAuthenticator", Namespace: "test-namespace", Name: "test-name-one", } - testKey2 := idpcache.Key{ + testKey2 := authncache.Key{ APIGroup: "authentication.concierge.pinniped.dev", Kind: "WebhookAuthenticator", Namespace: "test-namespace", Name: "test-name-two", } - testKeyNonwebhook := idpcache.Key{ + testKeyNonwebhook := authncache.Key{ APIGroup: "authentication.concierge.pinniped.dev", - Kind: "SomeOtherIdentityProvider", + Kind: "SomeOtherAuthenticator", Namespace: "test-namespace", Name: "test-name-one", } tests := []struct { name string - webhookIDPs []runtime.Object - initialCache map[idpcache.Key]idpcache.Value + webhooks []runtime.Object + initialCache map[authncache.Key]authncache.Value wantErr string wantLogs []string - wantCacheKeys []idpcache.Key + wantCacheKeys []authncache.Key }{ { name: "no change", - initialCache: map[idpcache.Key]idpcache.Value{testKey1: nil}, - webhookIDPs: []runtime.Object{ + initialCache: map[authncache.Key]authncache.Value{testKey1: nil}, + webhooks: []runtime.Object{ &authv1alpha.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, @@ -61,12 +61,12 @@ func TestController(t *testing.T) { }, }, }, - wantCacheKeys: []idpcache.Key{testKey1}, + wantCacheKeys: []authncache.Key{testKey1}, }, { - name: "IDPs not yet added", + name: "authenticators not yet added", initialCache: nil, - webhookIDPs: []runtime.Object{ + webhooks: []runtime.Object{ &authv1alpha.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, @@ -80,16 +80,16 @@ func TestController(t *testing.T) { }, }, }, - wantCacheKeys: []idpcache.Key{}, + wantCacheKeys: []authncache.Key{}, }, { name: "successful cleanup", - initialCache: map[idpcache.Key]idpcache.Value{ + initialCache: map[authncache.Key]authncache.Value{ testKey1: nil, testKey2: nil, testKeyNonwebhook: nil, }, - webhookIDPs: []runtime.Object{ + webhooks: []runtime.Object{ &authv1alpha.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ Namespace: testKey1.Namespace, @@ -98,9 +98,9 @@ func TestController(t *testing.T) { }, }, wantLogs: []string{ - `webhookcachecleaner-controller "level"=0 "msg"="deleting webhook IDP from cache" "idp"={"name":"test-name-two","namespace":"test-namespace"}`, + `webhookcachecleaner-controller "level"=0 "msg"="deleting webhook authenticator from cache" "webhook"={"name":"test-name-two","namespace":"test-namespace"}`, }, - wantCacheKeys: []idpcache.Key{testKey1, testKeyNonwebhook}, + wantCacheKeys: []authncache.Key{testKey1, testKeyNonwebhook}, }, } for _, tt := range tests { @@ -108,9 +108,9 @@ func TestController(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() - fakeClient := pinnipedfake.NewSimpleClientset(tt.webhookIDPs...) + fakeClient := pinnipedfake.NewSimpleClientset(tt.webhooks...) informers := pinnipedinformers.NewSharedInformerFactory(fakeClient, 0) - cache := idpcache.New() + cache := authncache.New() for k, v := range tt.initialCache { cache.Store(k, v) } diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go b/internal/controller/authenticator/webhookcachefiller/webhookcachefiller.go similarity index 82% rename from internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go rename to internal/controller/authenticator/webhookcachefiller/webhookcachefiller.go index 55ba0c773..863f3f8c7 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller.go +++ b/internal/controller/authenticator/webhookcachefiller/webhookcachefiller.go @@ -1,7 +1,7 @@ // Copyright 2020 the Pinniped contributors. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -// Package webhookcachefiller implements a controller for filling an idpcache.Cache with each added/updated WebhookAuthenticator. +// Package webhookcachefiller implements a controller for filling an authncache.Cache with each added/updated WebhookAuthenticator. package webhookcachefiller import ( @@ -21,25 +21,25 @@ import ( "k8s.io/klog/v2" auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" - idpinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" + authinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions/authentication/v1alpha1" pinnipedcontroller "go.pinniped.dev/internal/controller" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" + "go.pinniped.dev/internal/controller/authenticator/authncache" "go.pinniped.dev/internal/controllerlib" ) -// New instantiates a new controllerlib.Controller which will populate the provided idpcache.Cache. -func New(cache *idpcache.Cache, webhookIDPs idpinformers.WebhookAuthenticatorInformer, log logr.Logger) controllerlib.Controller { +// New instantiates a new controllerlib.Controller which will populate the provided authncache.Cache. +func New(cache *authncache.Cache, webhooks authinformers.WebhookAuthenticatorInformer, log logr.Logger) controllerlib.Controller { return controllerlib.New( controllerlib.Config{ Name: "webhookcachefiller-controller", Syncer: &controller{ - cache: cache, - webhookIDPs: webhookIDPs, - log: log.WithName("webhookcachefiller-controller"), + cache: cache, + webhooks: webhooks, + log: log.WithName("webhookcachefiller-controller"), }, }, controllerlib.WithInformer( - webhookIDPs, + webhooks, pinnipedcontroller.MatchAnythingFilter(), controllerlib.InformerOption{}, ), @@ -47,14 +47,14 @@ func New(cache *idpcache.Cache, webhookIDPs idpinformers.WebhookAuthenticatorInf } type controller struct { - cache *idpcache.Cache - webhookIDPs idpinformers.WebhookAuthenticatorInformer - log logr.Logger + cache *authncache.Cache + webhooks authinformers.WebhookAuthenticatorInformer + log logr.Logger } // Sync implements controllerlib.Syncer. func (c *controller) Sync(ctx controllerlib.Context) error { - obj, err := c.webhookIDPs.Lister().WebhookAuthenticators(ctx.Key.Namespace).Get(ctx.Key.Name) + obj, err := c.webhooks.Lister().WebhookAuthenticators(ctx.Key.Namespace).Get(ctx.Key.Name) if err != nil && errors.IsNotFound(err) { c.log.Info("Sync() found that the WebhookAuthenticator does not exist yet or was deleted") return nil @@ -68,13 +68,13 @@ func (c *controller) Sync(ctx controllerlib.Context) error { return fmt.Errorf("failed to build webhook config: %w", err) } - c.cache.Store(idpcache.Key{ + c.cache.Store(authncache.Key{ APIGroup: auth1alpha1.GroupName, Kind: "WebhookAuthenticator", Namespace: ctx.Key.Namespace, Name: ctx.Key.Name, }, webhookAuthenticator) - c.log.WithValues("idp", klog.KObj(obj), "endpoint", obj.Spec.Endpoint).Info("added new webhook IDP") + c.log.WithValues("webhook", klog.KObj(obj), "endpoint", obj.Spec.Endpoint).Info("added new webhook authenticator") return nil } diff --git a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go b/internal/controller/authenticator/webhookcachefiller/webhookcachefiller_test.go similarity index 93% rename from internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go rename to internal/controller/authenticator/webhookcachefiller/webhookcachefiller_test.go index 79244c3f8..d70a88fdd 100644 --- a/internal/controller/identityprovider/webhookcachefiller/webhookcachefiller_test.go +++ b/internal/controller/authenticator/webhookcachefiller/webhookcachefiller_test.go @@ -22,7 +22,7 @@ import ( auth1alpha1 "go.pinniped.dev/generated/1.19/apis/concierge/authentication/v1alpha1" pinnipedfake "go.pinniped.dev/generated/1.19/client/clientset/versioned/fake" pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" + "go.pinniped.dev/internal/controller/authenticator/authncache" "go.pinniped.dev/internal/controllerlib" "go.pinniped.dev/internal/testutil" "go.pinniped.dev/internal/testutil/testlogger" @@ -34,7 +34,7 @@ func TestController(t *testing.T) { tests := []struct { name string syncKey controllerlib.Key - webhookIDPs []runtime.Object + webhooks []runtime.Object wantErr string wantLogs []string wantCacheEntries int @@ -49,7 +49,7 @@ func TestController(t *testing.T) { { name: "invalid webhook", syncKey: controllerlib.Key{Namespace: "test-namespace", Name: "test-name"}, - webhookIDPs: []runtime.Object{ + webhooks: []runtime.Object{ &auth1alpha1.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test-namespace", @@ -65,7 +65,7 @@ func TestController(t *testing.T) { { name: "valid webhook", syncKey: controllerlib.Key{Namespace: "test-namespace", Name: "test-name"}, - webhookIDPs: []runtime.Object{ + webhooks: []runtime.Object{ &auth1alpha1.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test-namespace", @@ -78,7 +78,7 @@ func TestController(t *testing.T) { }, }, wantLogs: []string{ - `webhookcachefiller-controller "level"=0 "msg"="added new webhook IDP" "endpoint"="https://example.com" "idp"={"name":"test-name","namespace":"test-namespace"}`, + `webhookcachefiller-controller "level"=0 "msg"="added new webhook authenticator" "endpoint"="https://example.com" "webhook"={"name":"test-name","namespace":"test-namespace"}`, }, wantCacheEntries: 1, }, @@ -88,9 +88,9 @@ func TestController(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() - fakeClient := pinnipedfake.NewSimpleClientset(tt.webhookIDPs...) + fakeClient := pinnipedfake.NewSimpleClientset(tt.webhooks...) informers := pinnipedinformers.NewSharedInformerFactory(fakeClient, 0) - cache := idpcache.New() + cache := authncache.New() testLog := testlogger.New(t) controller := New(cache, informers.Authentication().V1alpha1().WebhookAuthenticators(), testLog) diff --git a/internal/controllermanager/prepare_controllers.go b/internal/controllermanager/prepare_controllers.go index 8a3d2acd6..8b3b85f5a 100644 --- a/internal/controllermanager/prepare_controllers.go +++ b/internal/controllermanager/prepare_controllers.go @@ -24,9 +24,9 @@ import ( pinnipedinformers "go.pinniped.dev/generated/1.19/client/informers/externalversions" "go.pinniped.dev/internal/config/concierge" "go.pinniped.dev/internal/controller/apicerts" - "go.pinniped.dev/internal/controller/identityprovider/idpcache" - "go.pinniped.dev/internal/controller/identityprovider/webhookcachecleaner" - "go.pinniped.dev/internal/controller/identityprovider/webhookcachefiller" + "go.pinniped.dev/internal/controller/authenticator/authncache" + "go.pinniped.dev/internal/controller/authenticator/webhookcachecleaner" + "go.pinniped.dev/internal/controller/authenticator/webhookcachefiller" "go.pinniped.dev/internal/controller/issuerconfig" "go.pinniped.dev/internal/controller/kubecertagent" "go.pinniped.dev/internal/controllerlib" @@ -70,8 +70,8 @@ type Config struct { // certificate. ServingCertRenewBefore time.Duration - // IDPCache is a cache of authenticators shared amongst various IDP-related controllers. - IDPCache *idpcache.Cache + // AuthenticatorCache is a cache of authenticators shared amongst various authenticated-related controllers. + AuthenticatorCache *authncache.Cache // Labels are labels that should be added to any resources created by the controllers. Labels map[string]string @@ -227,11 +227,11 @@ func PrepareControllers(c *Config) (func(ctx context.Context), error) { singletonWorker, ). - // The cache filler controllers are responsible for keep an in-memory representation of active - // IDPs up to date. + // The cache filler/cleaner controllers are responsible for keep an in-memory representation of active + // authenticators up to date. WithController( webhookcachefiller.New( - c.IDPCache, + c.AuthenticatorCache, informers.installationNamespacePinniped.Authentication().V1alpha1().WebhookAuthenticators(), klogr.New(), ), @@ -239,7 +239,7 @@ func PrepareControllers(c *Config) (func(ctx context.Context), error) { ). WithController( webhookcachecleaner.New( - c.IDPCache, + c.AuthenticatorCache, informers.installationNamespacePinniped.Authentication().V1alpha1().WebhookAuthenticators(), klogr.New(), ), diff --git a/test/integration/cli_test.go b/test/integration/cli_test.go index 35d2fd965..93d8fb198 100644 --- a/test/integration/cli_test.go +++ b/test/integration/cli_test.go @@ -38,13 +38,13 @@ func TestCLIGetKubeconfig(t *testing.T) { ctx, cancelFunc := context.WithTimeout(context.Background(), 4*time.Minute) defer cancelFunc() - idp := library.CreateTestWebhookIDP(ctx, t) + authenticator := library.CreateTestWebhookAuthenticator(ctx, t) // Build pinniped CLI. pinnipedExe := buildPinnipedCLI(t) // Run pinniped CLI to get kubeconfig. - kubeConfigYAML := runPinnipedCLIGetKubeconfig(t, pinnipedExe, env.TestUser.Token, env.ConciergeNamespace, "webhook", idp.Name) + kubeConfigYAML := runPinnipedCLIGetKubeconfig(t, pinnipedExe, env.TestUser.Token, env.ConciergeNamespace, "webhook", authenticator.Name) // In addition to the client-go based testing below, also try the kubeconfig // with kubectl to validate that it works. @@ -91,7 +91,7 @@ func buildPinnipedCLI(t *testing.T) string { return pinnipedExe } -func runPinnipedCLIGetKubeconfig(t *testing.T, pinnipedExe, token, namespaceName, idpType, idpName string) string { +func runPinnipedCLIGetKubeconfig(t *testing.T, pinnipedExe, token, namespaceName, authenticatorType, authenticatorName string) string { t.Helper() output, err := exec.Command( @@ -99,8 +99,8 @@ func runPinnipedCLIGetKubeconfig(t *testing.T, pinnipedExe, token, namespaceName "get-kubeconfig", "--token", token, "--pinniped-namespace", namespaceName, - "--idp-type", idpType, - "--idp-name", idpName, + "--authenticator-type", authenticatorType, + "--authenticator-name", authenticatorName, ).CombinedOutput() require.NoError(t, err, string(output)) diff --git a/test/integration/client_test.go b/test/integration/client_test.go index a5dba407b..6e4701204 100644 --- a/test/integration/client_test.go +++ b/test/integration/client_test.go @@ -60,7 +60,7 @@ func TestClient(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() - idp := library.CreateTestWebhookIDP(ctx, t) + webhook := library.CreateTestWebhookAuthenticator(ctx, t) // Use an invalid certificate/key to validate that the ServerVersion API fails like we assume. invalidClient := library.NewClientsetWithCertAndKey(t, testCert, testKey) @@ -72,7 +72,7 @@ func TestClient(t *testing.T) { var resp *clientauthenticationv1beta1.ExecCredential assert.Eventually(t, func() bool { - resp, err = client.ExchangeToken(ctx, env.ConciergeNamespace, idp, env.TestUser.Token, string(clientConfig.CAData), clientConfig.Host) + resp, err = client.ExchangeToken(ctx, env.ConciergeNamespace, webhook, env.TestUser.Token, string(clientConfig.CAData), clientConfig.Host) return err == nil }, 10*time.Second, 500*time.Millisecond) require.NoError(t, err) diff --git a/test/integration/concierge_credentialrequest_test.go b/test/integration/concierge_credentialrequest_test.go index 3467340a6..869f272c9 100644 --- a/test/integration/concierge_credentialrequest_test.go +++ b/test/integration/concierge_credentialrequest_test.go @@ -44,7 +44,7 @@ func TestSuccessfulCredentialRequest(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 6*time.Minute) defer cancel() - testWebhook := library.CreateTestWebhookIDP(ctx, t) + testWebhook := library.CreateTestWebhookAuthenticator(ctx, t) var response *loginv1alpha1.TokenCredentialRequest successfulResponse := func() bool { @@ -125,7 +125,7 @@ func TestCredentialRequest_OtherwiseValidRequestWithRealTokenShouldFailWhenTheCl ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) defer cancel() - testWebhook := library.CreateTestWebhookIDP(ctx, t) + testWebhook := library.CreateTestWebhookAuthenticator(ctx, t) response, err := makeRequest(ctx, t, validCredentialRequestSpecWithRealToken(t, testWebhook)) @@ -152,10 +152,10 @@ func makeRequest(ctx context.Context, t *testing.T, spec loginv1alpha1.TokenCred }, metav1.CreateOptions{}) } -func validCredentialRequestSpecWithRealToken(t *testing.T, idp corev1.TypedLocalObjectReference) loginv1alpha1.TokenCredentialRequestSpec { +func validCredentialRequestSpecWithRealToken(t *testing.T, authenticator corev1.TypedLocalObjectReference) loginv1alpha1.TokenCredentialRequestSpec { return loginv1alpha1.TokenCredentialRequestSpec{ Token: library.IntegrationEnv(t).TestUser.Token, - Authenticator: idp, + Authenticator: authenticator, } } diff --git a/test/library/client.go b/test/library/client.go index 17485e17e..c7cb1356f 100644 --- a/test/library/client.go +++ b/test/library/client.go @@ -119,10 +119,10 @@ func newAnonymousClientRestConfigWithCertAndKeyAdded(t *testing.T, clientCertifi return config } -// CreateTestWebhookIDP creates and returns a test WebhookAuthenticator in $PINNIPED_TEST_CONCIERGE_NAMESPACE, which will be +// CreateTestWebhookAuthenticator creates and returns a test WebhookAuthenticator in $PINNIPED_TEST_CONCIERGE_NAMESPACE, which will be // automatically deleted at the end of the current test's lifetime. It returns a corev1.TypedLocalObjectReference which -// descibes the test IDP within the test namespace. -func CreateTestWebhookIDP(ctx context.Context, t *testing.T) corev1.TypedLocalObjectReference { +// describes the test webhook authenticator within the test namespace. +func CreateTestWebhookAuthenticator(ctx context.Context, t *testing.T) corev1.TypedLocalObjectReference { t.Helper() testEnv := IntegrationEnv(t) @@ -132,7 +132,7 @@ func CreateTestWebhookIDP(ctx context.Context, t *testing.T) corev1.TypedLocalOb createContext, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel() - idp, err := webhooks.Create(createContext, &auth1alpha1.WebhookAuthenticator{ + webhook, err := webhooks.Create(createContext, &auth1alpha1.WebhookAuthenticator{ ObjectMeta: metav1.ObjectMeta{ GenerateName: "test-webhook-", Labels: map[string]string{"pinniped.dev/test": ""}, @@ -141,21 +141,21 @@ func CreateTestWebhookIDP(ctx context.Context, t *testing.T) corev1.TypedLocalOb Spec: testEnv.TestWebhook, }, metav1.CreateOptions{}) require.NoError(t, err, "could not create test WebhookAuthenticator") - t.Logf("created test WebhookAuthenticator %s/%s", idp.Namespace, idp.Name) + t.Logf("created test WebhookAuthenticator %s/%s", webhook.Namespace, webhook.Name) t.Cleanup(func() { t.Helper() - t.Logf("cleaning up test WebhookAuthenticator %s/%s", idp.Namespace, idp.Name) + t.Logf("cleaning up test WebhookAuthenticator %s/%s", webhook.Namespace, webhook.Name) deleteCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - err := webhooks.Delete(deleteCtx, idp.Name, metav1.DeleteOptions{}) - require.NoErrorf(t, err, "could not cleanup test WebhookAuthenticator %s/%s", idp.Namespace, idp.Name) + err := webhooks.Delete(deleteCtx, webhook.Name, metav1.DeleteOptions{}) + require.NoErrorf(t, err, "could not cleanup test WebhookAuthenticator %s/%s", webhook.Namespace, webhook.Name) }) return corev1.TypedLocalObjectReference{ APIGroup: &auth1alpha1.SchemeGroupVersion.Group, Kind: "WebhookAuthenticator", - Name: idp.Name, + Name: webhook.Name, } }