mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-09-15 12:18:57 +00:00
chore: refactor read scheme to openapi from kubernetes api definition
Previously, only a single embedded Kubernetes API version could be specified, resulting in a lack of support for certain GVKs. To address this, the goal is to create and utilize a unified scheme that consolidates Kubernetes API definitions. As a preliminary step, the current method of loading API definitions will be improved.
This commit is contained in:
Binary file not shown.
@@ -1,18 +1,22 @@
|
||||
// Copyright 2020 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Code generated by ./scripts/makeOpenApiInfoDotGo.sh; DO NOT EDIT.
|
||||
|
||||
// Package kubernetesapi preserves access to the legacy built-in Kubernetes
|
||||
// OpenAPI assets. New code should use the parent openapi package.
|
||||
package kubernetesapi
|
||||
|
||||
import (
|
||||
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1_21_2"
|
||||
)
|
||||
|
||||
// Info describes the Kubernetes release represented by the legacy asset map.
|
||||
const Info = "{title:Kubernetes,version:v1.21.2}"
|
||||
|
||||
var OpenAPIMustAsset = map[string]func(string) []byte{
|
||||
// OpenAPIMustAsset maps supported Kubernetes releases to their legacy asset
|
||||
// loaders.
|
||||
var OpenAPIMustAsset = map[string]func(string) []byte{ //nolint:gochecknoglobals // Retained for API compatibility.
|
||||
"v1.21.2": v1_21_2.MustAsset,
|
||||
}
|
||||
|
||||
// DefaultOpenAPI is the default release exposed by the legacy asset map.
|
||||
const DefaultOpenAPI = "v1.21.2"
|
||||
|
||||
17
kyaml/openapi/kubernetesapi/openapiinfo_test.go
Normal file
17
kyaml/openapi/kubernetesapi/openapiinfo_test.go
Normal file
@@ -0,0 +1,17 @@
|
||||
// Copyright 2026 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package kubernetesapi
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"sigs.k8s.io/kustomize/kyaml/openapi"
|
||||
)
|
||||
|
||||
func TestLegacyMetadataMatchesBuiltinBundle(t *testing.T) {
|
||||
require.Equal(t, openapi.DefaultOpenAPI, DefaultOpenAPI)
|
||||
require.Equal(t, openapi.BuiltinSchemaInfo, Info)
|
||||
require.Contains(t, OpenAPIMustAsset, DefaultOpenAPI)
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
BIN
kyaml/openapi/kubernetesapi/v1_21_2/swagger.pb.gz
Normal file
BIN
kyaml/openapi/kubernetesapi/v1_21_2/swagger.pb.gz
Normal file
Binary file not shown.
43
kyaml/openapi/kubernetesapi/v1_21_2/swagger_test.go
Normal file
43
kyaml/openapi/kubernetesapi/v1_21_2/swagger_test.go
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright 2026 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package v1_21_2 //nolint:revive // The package name is part of the public API.
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestAssetCompatibility(t *testing.T) {
|
||||
b, err := Asset(assetName)
|
||||
require.NoError(t, err)
|
||||
digest := sha256.Sum256(b)
|
||||
require.Equal(t, "5d171b55e9601912807a870d73ffe70bb306f5889a00e76986042a0f2d7b6bc2",
|
||||
hex.EncodeToString(digest[:]))
|
||||
info, err := AssetInfo(assetName)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(3469475), info.Size())
|
||||
require.Equal(t, "swagger.pb", info.Name())
|
||||
|
||||
backslashName := "kubernetesapi\\v1_21_2\\swagger.pb"
|
||||
_, err = Asset(backslashName)
|
||||
require.NoError(t, err)
|
||||
children, err := AssetDir("kubernetesapi/v1_21_2")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{"swagger.pb"}, children)
|
||||
_, err = AssetDir(assetName)
|
||||
require.Error(t, err)
|
||||
|
||||
b[0] ^= 0xff
|
||||
again := MustAsset(assetName)
|
||||
require.NotEqual(t, b[0], again[0], "Asset must return a fresh byte slice")
|
||||
_, err = Asset("missing")
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestAssetNames(t *testing.T) {
|
||||
require.Equal(t, []string{assetName}, AssetNames())
|
||||
}
|
||||
Reference in New Issue
Block a user