mirror of https://github.com/k3s-io/k3s
ingress: use networking api group for default storage of ingress
Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com> The change to registrytest was found by liggitt to mitigate a NPE error. This is necessary since ingress is a cohabitating resource that is not stored in the default version for the networking resource. Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>k3s-v1.15.3
parent
0207363445
commit
4bac85c162
|
@ -54,6 +54,7 @@ declare -a resources=(
|
|||
"clusterroles.rbac.authorization.k8s.io"
|
||||
"clusterrolebindings.rbac.authorization.k8s.io"
|
||||
"networkpolicies.networking.k8s.io"
|
||||
"ingresses.networking.k8s.io"
|
||||
)
|
||||
|
||||
# Find all the namespaces.
|
||||
|
|
|
@ -46,6 +46,7 @@ var SpecialDefaultResourcePrefixes = map[schema.GroupResource]string{
|
|||
{Group: "", Resource: "nodes"}: "minions",
|
||||
{Group: "", Resource: "services"}: "services/specs",
|
||||
{Group: "extensions", Resource: "ingresses"}: "ingress",
|
||||
{Group: "networking.k8s.io", Resource: "ingresses"}: "ingress",
|
||||
{Group: "extensions", Resource: "podsecuritypolicies"}: "podsecuritypolicy",
|
||||
{Group: "policy", Resource: "podsecuritypolicies"}: "podsecuritypolicy",
|
||||
}
|
||||
|
@ -54,6 +55,7 @@ func NewStorageFactoryConfig() *StorageFactoryConfig {
|
|||
|
||||
resources := []schema.GroupVersionResource{
|
||||
batch.Resource("cronjobs").WithVersion("v1beta1"),
|
||||
networking.Resource("ingresses").WithVersion("v1beta1"),
|
||||
}
|
||||
// add csinodes if CSINodeInfo feature gate is enabled
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.CSINodeInfo) {
|
||||
|
@ -110,7 +112,7 @@ func (c *completedStorageFactoryConfig) New() (*serverstorage.DefaultStorageFact
|
|||
storageFactory.AddCohabitatingResources(apps.Resource("replicasets"), extensions.Resource("replicasets"))
|
||||
storageFactory.AddCohabitatingResources(api.Resource("events"), events.Resource("events"))
|
||||
storageFactory.AddCohabitatingResources(policy.Resource("podsecuritypolicies"), extensions.Resource("podsecuritypolicies"))
|
||||
storageFactory.AddCohabitatingResources(extensions.Resource("ingresses"), networking.Resource("ingresses"))
|
||||
storageFactory.AddCohabitatingResources(networking.Resource("ingresses"), extensions.Resource("ingresses"))
|
||||
|
||||
for _, override := range c.EtcdServersOverrides {
|
||||
tokens := strings.Split(override, "#")
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"k8s.io/kubernetes/pkg/apis/networking"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
|
@ -85,6 +86,7 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertion
|
|||
resourceEncodingOverrides := []schema.GroupVersionResource{
|
||||
batch.Resource("cronjobs").WithVersion("v1beta1"),
|
||||
apisstorage.Resource("volumeattachments").WithVersion("v1beta1"),
|
||||
networking.Resource("ingresses").WithVersion("v1beta1"),
|
||||
}
|
||||
resourceEncoding = resourceconfig.MergeResourceEncodingConfigs(resourceEncoding, resourceEncodingOverrides)
|
||||
storageFactory := serverstorage.NewDefaultStorageFactory(*storageConfig, testapi.StorageMediaType(), legacyscheme.Codecs, resourceEncoding, DefaultAPIResourceConfigSource(), nil)
|
||||
|
|
|
@ -67,12 +67,12 @@ var GVRToStorageVersionHash = map[string]string{
|
|||
"coordination.k8s.io/v1/leases": "/sY7hl8ol1U=",
|
||||
"extensions/v1beta1/daemonsets": "dd7pWHUlMKQ=",
|
||||
"extensions/v1beta1/deployments": "8aSe+NMegvE=",
|
||||
"extensions/v1beta1/ingresses": "Ejja63IbU0E=",
|
||||
"extensions/v1beta1/ingresses": "ZOAfGflaKd0=",
|
||||
"extensions/v1beta1/networkpolicies": "YpfwF18m1G8=",
|
||||
"extensions/v1beta1/podsecuritypolicies": "khBLobUXkqA=",
|
||||
"extensions/v1beta1/replicasets": "P1RzHs8/mWQ=",
|
||||
"networking.k8s.io/v1/networkpolicies": "YpfwF18m1G8=",
|
||||
"networking.k8s.io/v1beta1/ingresses": "Ejja63IbU0E=",
|
||||
"networking.k8s.io/v1beta1/ingresses": "ZOAfGflaKd0=",
|
||||
"node.k8s.io/v1beta1/runtimeclasses": "8nMHWqj34s0=",
|
||||
"policy/v1beta1/poddisruptionbudgets": "6BGBu0kpHtk=",
|
||||
"policy/v1beta1/podsecuritypolicies": "khBLobUXkqA=",
|
||||
|
|
|
@ -24,7 +24,6 @@ import (
|
|||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/apis/networking"
|
||||
"k8s.io/kubernetes/pkg/printers"
|
||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||
|
@ -42,7 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
|||
store := &genericregistry.Store{
|
||||
NewFunc: func() runtime.Object { return &networking.Ingress{} },
|
||||
NewListFunc: func() runtime.Object { return &networking.IngressList{} },
|
||||
DefaultQualifiedResource: extensions.Resource("ingresses"),
|
||||
DefaultQualifiedResource: networking.Resource("ingresses"),
|
||||
|
||||
CreateStrategy: ingress.Strategy,
|
||||
UpdateStrategy: ingress.Strategy,
|
||||
|
|
|
@ -28,13 +28,12 @@ import (
|
|||
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
|
||||
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/apis/networking"
|
||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
||||
)
|
||||
|
||||
func newStorage(t *testing.T) (*REST, *StatusREST, *etcdtesting.EtcdTestServer) {
|
||||
etcdStorage, server := registrytest.NewEtcdStorage(t, extensions.GroupName)
|
||||
etcdStorage, server := registrytest.NewEtcdStorageForResource(t, networking.Resource("ingresses"))
|
||||
restOptions := generic.RESTOptions{
|
||||
StorageConfig: etcdStorage,
|
||||
Decorator: generic.UndecoratedStorage,
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apiserver/pkg/server/options"
|
||||
serverstorage "k8s.io/apiserver/pkg/server/storage"
|
||||
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
|
||||
"k8s.io/apiserver/pkg/storage/storagebackend"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
|
@ -43,6 +44,7 @@ func NewEtcdStorageForResource(t *testing.T, resource schema.GroupResource) (*st
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
completedConfig.ApiResourceConfig = serverstorage.NewResourceConfig()
|
||||
factory, err := completedConfig.New()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
|
@ -258,6 +258,7 @@ func GetEtcdStorageDataForNamespace(namespace string) map[schema.GroupVersionRes
|
|||
gvr("extensions", "v1beta1", "ingresses"): {
|
||||
Stub: `{"metadata": {"name": "ingress1"}, "spec": {"backend": {"serviceName": "service", "servicePort": 5000}}}`,
|
||||
ExpectedEtcdPath: "/registry/ingress/" + namespace + "/ingress1",
|
||||
ExpectedGVK: gvkP("networking.k8s.io", "v1beta1", "Ingress"),
|
||||
},
|
||||
gvr("extensions", "v1beta1", "networkpolicies"): {
|
||||
Stub: `{"metadata": {"name": "np1"}, "spec": {"podSelector": {"matchLabels": {"e": "f"}}}}`,
|
||||
|
@ -280,7 +281,6 @@ func GetEtcdStorageDataForNamespace(namespace string) map[schema.GroupVersionRes
|
|||
gvr("networking.k8s.io", "v1beta1", "ingresses"): {
|
||||
Stub: `{"metadata": {"name": "ingress2"}, "spec": {"backend": {"serviceName": "service", "servicePort": 5000}}}`,
|
||||
ExpectedEtcdPath: "/registry/ingress/" + namespace + "/ingress2",
|
||||
ExpectedGVK: gvkP("extensions", "v1beta1", "Ingress"),
|
||||
},
|
||||
// --
|
||||
|
||||
|
|
Loading…
Reference in New Issue