From 94809ee396db9269bb7be0d8c7547e0646a8087b Mon Sep 17 00:00:00 2001 From: Joshua Casey Date: Thu, 22 Aug 2024 12:49:52 -0500 Subject: [PATCH] Use a real binary version when setting up the aggregated API servers --- internal/concierge/apiserver/apiserver.go | 8 ++++---- internal/concierge/impersonator/impersonator.go | 3 +++ internal/supervisor/apiserver/apiserver.go | 6 ++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/concierge/apiserver/apiserver.go b/internal/concierge/apiserver/apiserver.go index c710ed86a..1c7bf3f04 100644 --- a/internal/concierge/apiserver/apiserver.go +++ b/internal/concierge/apiserver/apiserver.go @@ -19,6 +19,7 @@ import ( "go.pinniped.dev/internal/clientcertissuer" "go.pinniped.dev/internal/controllerinit" "go.pinniped.dev/internal/plog" + "go.pinniped.dev/internal/pversion" "go.pinniped.dev/internal/registry/credentialrequest" "go.pinniped.dev/internal/registry/whoamirequest" "go.pinniped.dev/internal/tokenclient" @@ -56,14 +57,13 @@ type CompletedConfig struct { // Complete fills in any fields not set that are required to have valid data. It's mutating the receiver. func (c *Config) Complete() CompletedConfig { + // Be sure to set this before calling c.GenericConfig.Complete() + c.GenericConfig.EffectiveVersion = utilversion.NewEffectiveVersion(pversion.Get().String()) + completedCfg := completedConfig{ c.GenericConfig.Complete(), &c.ExtraConfig, } - - // TODO: use a real version - completedCfg.GenericConfig.EffectiveVersion = utilversion.NewEffectiveVersion("1.2.3") - return CompletedConfig{completedConfig: &completedCfg} } diff --git a/internal/concierge/impersonator/impersonator.go b/internal/concierge/impersonator/impersonator.go index c6d3179a2..bdd37212d 100644 --- a/internal/concierge/impersonator/impersonator.go +++ b/internal/concierge/impersonator/impersonator.go @@ -45,6 +45,7 @@ import ( "k8s.io/apiserver/pkg/server/dynamiccertificates" "k8s.io/apiserver/pkg/server/filters" genericoptions "k8s.io/apiserver/pkg/server/options" + utilversion "k8s.io/apiserver/pkg/util/version" auditfake "k8s.io/apiserver/plugin/pkg/audit/fake" "k8s.io/client-go/rest" "k8s.io/client-go/transport" @@ -55,6 +56,7 @@ import ( "go.pinniped.dev/internal/httputil/securityheader" "go.pinniped.dev/internal/kubeclient" "go.pinniped.dev/internal/plog" + "go.pinniped.dev/internal/pversion" "go.pinniped.dev/internal/tokenclient" "go.pinniped.dev/internal/valuelesscontext" ) @@ -323,6 +325,7 @@ func newInternal( recConfig(serverConfig) } + serverConfig.EffectiveVersion = utilversion.NewEffectiveVersion(pversion.Get().String()) completedConfig := serverConfig.Complete() impersonationProxyServer, err := completedConfig.New("impersonation-proxy", genericapiserver.NewEmptyDelegate()) if err != nil { diff --git a/internal/supervisor/apiserver/apiserver.go b/internal/supervisor/apiserver/apiserver.go index 4c8c62046..2d078897a 100644 --- a/internal/supervisor/apiserver/apiserver.go +++ b/internal/supervisor/apiserver/apiserver.go @@ -22,6 +22,7 @@ import ( configv1alpha1clientset "go.pinniped.dev/generated/latest/client/supervisor/clientset/versioned/typed/config/v1alpha1" "go.pinniped.dev/internal/controllerinit" "go.pinniped.dev/internal/plog" + "go.pinniped.dev/internal/pversion" "go.pinniped.dev/internal/registry/clientsecretrequest" ) @@ -56,13 +57,14 @@ type CompletedConfig struct { // Complete fills in any fields not set that are required to have valid data. It's mutating the receiver. func (c *Config) Complete() CompletedConfig { + // Be sure to set this before calling c.GenericConfig.Complete() + c.GenericConfig.EffectiveVersion = utilversion.NewEffectiveVersion(pversion.Get().String()) + completedCfg := completedConfig{ c.GenericConfig.Complete(), &c.ExtraConfig, } - // TODO: use a real version - completedCfg.GenericConfig.EffectiveVersion = utilversion.NewEffectiveVersion("1.2.3") return CompletedConfig{completedConfig: &completedCfg} }