K8s: Fix the gitVersion response (required for kubectl) (#98571)

pull/98587/head
Ryan McKinley 4 months ago committed by GitHub
parent 79d565f285
commit b506fcb11c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 17
      pkg/services/apiserver/builder/helper.go
  2. 27
      pkg/tests/apis/helper.go
  3. 3
      pkg/tests/apis/playlist/playlist_test.go

@ -232,7 +232,22 @@ func SetupConfig(
serverConfig.BuildHandlerChainFunc = buildHandlerChainFunc
}
serverConfig.EffectiveVersion = utilversion.DefaultKubeEffectiveVersion()
v := utilversion.DefaultKubeEffectiveVersion()
patchver := 0 // required for semver
info := v.BinaryVersion().Info()
info.BuildDate = time.Unix(buildTimestamp, 0).UTC().Format(time.RFC3339)
info.GitVersion = fmt.Sprintf("%s.%s.%d+grafana-v%s", info.Major, info.Minor, patchver, buildVersion)
info.GitCommit = fmt.Sprintf("%s@%s", buildBranch, buildCommit)
info.GitTreeState = fmt.Sprintf("grafana v%s", buildVersion)
info2 := v.EmulationVersion().Info()
info2.BuildDate = info.BuildDate
info2.GitVersion = fmt.Sprintf("%s.%s.%d+grafana-v%s", info2.Major, info2.Minor, patchver, buildVersion)
info2.GitCommit = info.GitCommit
info2.GitTreeState = info.GitTreeState
serverConfig.EffectiveVersion = v
if err := AddPostStartHooks(serverConfig, builders); err != nil {
return err

@ -20,7 +20,9 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer/yaml"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/version"
yamlutil "k8s.io/apimachinery/pkg/util/yaml"
apimachineryversion "k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/discovery"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/rest"
@ -601,6 +603,31 @@ func (c *K8sTestHelper) NewDiscoveryClient() *discovery.DiscoveryClient {
return client
}
func (c *K8sTestHelper) GetVersionInfo() apimachineryversion.Info {
c.t.Helper()
disco := c.NewDiscoveryClient()
req := disco.RESTClient().Get().
Prefix("version").
SetHeader("Accept", "application/json")
result := req.Do(context.Background())
require.NoError(c.t, result.Error())
raw, err := result.Raw()
require.NoError(c.t, err)
info := apimachineryversion.Info{}
err = json.Unmarshal(raw, &info)
require.NoError(c.t, err)
// Make sure the gitVersion is parsable
v, err := version.Parse(info.GitVersion)
require.NoError(c.t, err)
require.Equal(c.t, info.Major, fmt.Sprintf("%d", v.Major()))
require.Equal(c.t, info.Minor, fmt.Sprintf("%d", v.Minor()))
return info
}
func (c *K8sTestHelper) GetGroupVersionInfoJSON(group string) string {
c.t.Helper()

@ -49,6 +49,9 @@ func TestIntegrationPlaylist(t *testing.T) {
EnableFeatureToggles: []string{},
}))
// Ensure the k8s version is valid
_ = h.GetVersionInfo()
// The accepted verbs will change when dual write is enabled
disco := h.GetGroupVersionInfoJSON("playlist.grafana.app")
// fmt.Printf("%s", disco)

Loading…
Cancel
Save