Chore: serverConfig.EffectiveVersion earlier in initialization (#110798)

This commit is contained in:
Ryan McKinley
2025-09-09 17:46:46 +03:00
committed by GitHub
parent 05a6e8503e
commit 0404eb3452
5 changed files with 22 additions and 12 deletions
-4
View File
@@ -102,10 +102,7 @@ func SetupConfig(
scheme *runtime.Scheme,
serverConfig *genericapiserver.RecommendedConfig,
builders []APIGroupBuilder,
buildTimestamp int64,
buildVersion string,
buildCommit string,
buildBranch string,
buildHandlerChainFuncFromBuilders BuildHandlerChainFuncFromBuilders,
gvs []schema.GroupVersion,
additionalOpenAPIDefGetters []common.GetOpenAPIDefinitions,
@@ -234,7 +231,6 @@ func SetupConfig(
serverConfig.SkipOpenAPIInstallation = false
serverConfig.BuildHandlerChainFunc = buildHandlerChainFuncFromBuilders(builders)
serverConfig.EffectiveVersion = getEffectiveVersion(buildTimestamp, buildVersion, buildCommit, buildBranch)
// set priority for aggregated discovery
for i, b := range builders {
gvs := GetGroupVersions(b)
+1 -1
View File
@@ -16,7 +16,7 @@ type grafanaVersion struct {
wrap compatibility.EffectiveVersion
}
func getEffectiveVersion(
func GetEffectiveVersion(
buildTimestamp int64,
buildVersion string,
buildCommit string,
+6 -3
View File
@@ -312,6 +312,12 @@ func (s *service) start(ctx context.Context) error {
if err := o.ApplyTo(serverConfig); err != nil {
return err
}
serverConfig.EffectiveVersion = builder.GetEffectiveVersion(
s.cfg.BuildStamp,
s.cfg.BuildVersion,
s.cfg.BuildCommit,
s.cfg.BuildBranch,
)
if err := o.APIEnablementOptions.ApplyTo(&serverConfig.Config, appinstaller.NewAPIResourceConfig(s.appInstallers), s.scheme); err != nil {
return err
@@ -351,10 +357,7 @@ func (s *service) start(ctx context.Context) error {
s.scheme,
serverConfig,
builders,
s.cfg.BuildStamp,
s.cfg.BuildVersion,
s.cfg.BuildCommit,
s.cfg.BuildBranch,
s.buildHandlerChainFuncFromBuilders,
groupVersions,
defGetters,
+7 -2
View File
@@ -709,14 +709,19 @@ func (c *K8sTestHelper) AddOrUpdateTeamMember(user User, teamID int64, permissio
require.NoError(c.t, err)
}
func (c *K8sTestHelper) NewDiscoveryClient() *discovery.DiscoveryClient {
func (c *K8sTestHelper) NewAdminRestConfig() *rest.Config {
c.t.Helper()
baseUrl := fmt.Sprintf("http://%s", c.env.Server.HTTPServer.Listener.Addr())
cfg := newOptimizedRestConfig(baseUrl)
cfg.Username = c.Org1.Admin.Identity.GetLogin()
cfg.Password = c.Org1.Admin.password
client, err := discovery.NewDiscoveryClientForConfig(cfg)
return cfg
}
func (c *K8sTestHelper) NewDiscoveryClient() *discovery.DiscoveryClient {
c.t.Helper()
client, err := discovery.NewDiscoveryClientForConfig(c.NewAdminRestConfig())
require.NoError(c.t, err)
return client
}
+8 -2
View File
@@ -8,6 +8,7 @@ import (
"github.com/stretchr/testify/require"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/version"
"k8s.io/client-go/kubernetes"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/tests/testinfra"
@@ -34,10 +35,14 @@ func TestIntegrationOpenAPIs(t *testing.T) {
})
t.Run("check valid version response", func(t *testing.T) {
disco := h.NewDiscoveryClient()
info, err := disco.ServerVersion()
client, err := kubernetes.NewForConfig(h.NewAdminRestConfig())
require.NoError(t, err)
info, err := client.ServerVersion()
require.NoError(t, err)
require.Equal(t, runtime.Version(), info.GoVersion)
require.Equal(t, "1", info.Major)
require.Equal(t, "33", info.Minor)
// Make sure the gitVersion is parsable
v, err := version.Parse(info.GitVersion)
@@ -50,6 +55,7 @@ func TestIntegrationOpenAPIs(t *testing.T) {
// Removing the explicit `OneOf` properties from InlineSecureValue in:
// https://github.com/grafana/grafana/blob/main/pkg/apimachinery/apis/common/v0alpha1/secure_values.go#L78
// will consistently support V2, however kubectl and everything else continues to work
disco := h.NewDiscoveryClient()
paths, err := disco.OpenAPIV3().Paths()
require.NoError(t, err, "requesting OpenAPI v3")