Skip to content

Commit 4bac85c

Browse files
author
Christopher M. Luciano
committed
ingress: use networking api group for default storage of ingress
Signed-off-by: Christopher M. Luciano <[email protected]> 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 <[email protected]>
1 parent 0207363 commit 4bac85c

File tree

8 files changed

+13
-8
lines changed

8 files changed

+13
-8
lines changed

cluster/update-storage-objects.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ declare -a resources=(
5454
"clusterroles.rbac.authorization.k8s.io"
5555
"clusterrolebindings.rbac.authorization.k8s.io"
5656
"networkpolicies.networking.k8s.io"
57+
"ingresses.networking.k8s.io"
5758
)
5859

5960
# Find all the namespaces.

pkg/kubeapiserver/default_storage_factory_builder.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ var SpecialDefaultResourcePrefixes = map[schema.GroupResource]string{
4646
{Group: "", Resource: "nodes"}: "minions",
4747
{Group: "", Resource: "services"}: "services/specs",
4848
{Group: "extensions", Resource: "ingresses"}: "ingress",
49+
{Group: "networking.k8s.io", Resource: "ingresses"}: "ingress",
4950
{Group: "extensions", Resource: "podsecuritypolicies"}: "podsecuritypolicy",
5051
{Group: "policy", Resource: "podsecuritypolicies"}: "podsecuritypolicy",
5152
}
@@ -54,6 +55,7 @@ func NewStorageFactoryConfig() *StorageFactoryConfig {
5455

5556
resources := []schema.GroupVersionResource{
5657
batch.Resource("cronjobs").WithVersion("v1beta1"),
58+
networking.Resource("ingresses").WithVersion("v1beta1"),
5759
}
5860
// add csinodes if CSINodeInfo feature gate is enabled
5961
if utilfeature.DefaultFeatureGate.Enabled(features.CSINodeInfo) {
@@ -110,7 +112,7 @@ func (c *completedStorageFactoryConfig) New() (*serverstorage.DefaultStorageFact
110112
storageFactory.AddCohabitatingResources(apps.Resource("replicasets"), extensions.Resource("replicasets"))
111113
storageFactory.AddCohabitatingResources(api.Resource("events"), events.Resource("events"))
112114
storageFactory.AddCohabitatingResources(policy.Resource("podsecuritypolicies"), extensions.Resource("podsecuritypolicies"))
113-
storageFactory.AddCohabitatingResources(extensions.Resource("ingresses"), networking.Resource("ingresses"))
115+
storageFactory.AddCohabitatingResources(networking.Resource("ingresses"), extensions.Resource("ingresses"))
114116

115117
for _, override := range c.EtcdServersOverrides {
116118
tokens := strings.Split(override, "#")

pkg/master/master_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"crypto/tls"
2222
"encoding/json"
2323
"io/ioutil"
24+
"k8s.io/kubernetes/pkg/apis/networking"
2425
"net"
2526
"net/http"
2627
"net/http/httptest"
@@ -85,6 +86,7 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertion
8586
resourceEncodingOverrides := []schema.GroupVersionResource{
8687
batch.Resource("cronjobs").WithVersion("v1beta1"),
8788
apisstorage.Resource("volumeattachments").WithVersion("v1beta1"),
89+
networking.Resource("ingresses").WithVersion("v1beta1"),
8890
}
8991
resourceEncoding = resourceconfig.MergeResourceEncodingConfigs(resourceEncoding, resourceEncodingOverrides)
9092
storageFactory := serverstorage.NewDefaultStorageFactory(*storageConfig, testapi.StorageMediaType(), legacyscheme.Codecs, resourceEncoding, DefaultAPIResourceConfigSource(), nil)

pkg/master/storageversionhashdata/data.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ var GVRToStorageVersionHash = map[string]string{
6767
"coordination.k8s.io/v1/leases": "/sY7hl8ol1U=",
6868
"extensions/v1beta1/daemonsets": "dd7pWHUlMKQ=",
6969
"extensions/v1beta1/deployments": "8aSe+NMegvE=",
70-
"extensions/v1beta1/ingresses": "Ejja63IbU0E=",
70+
"extensions/v1beta1/ingresses": "ZOAfGflaKd0=",
7171
"extensions/v1beta1/networkpolicies": "YpfwF18m1G8=",
7272
"extensions/v1beta1/podsecuritypolicies": "khBLobUXkqA=",
7373
"extensions/v1beta1/replicasets": "P1RzHs8/mWQ=",
7474
"networking.k8s.io/v1/networkpolicies": "YpfwF18m1G8=",
75-
"networking.k8s.io/v1beta1/ingresses": "Ejja63IbU0E=",
75+
"networking.k8s.io/v1beta1/ingresses": "ZOAfGflaKd0=",
7676
"node.k8s.io/v1beta1/runtimeclasses": "8nMHWqj34s0=",
7777
"policy/v1beta1/poddisruptionbudgets": "6BGBu0kpHtk=",
7878
"policy/v1beta1/podsecuritypolicies": "khBLobUXkqA=",

pkg/registry/networking/ingress/storage/storage.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/apiserver/pkg/registry/generic"
2525
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
2626
"k8s.io/apiserver/pkg/registry/rest"
27-
"k8s.io/kubernetes/pkg/apis/extensions"
2827
"k8s.io/kubernetes/pkg/apis/networking"
2928
"k8s.io/kubernetes/pkg/printers"
3029
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
@@ -42,7 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
4241
store := &genericregistry.Store{
4342
NewFunc: func() runtime.Object { return &networking.Ingress{} },
4443
NewListFunc: func() runtime.Object { return &networking.IngressList{} },
45-
DefaultQualifiedResource: extensions.Resource("ingresses"),
44+
DefaultQualifiedResource: networking.Resource("ingresses"),
4645

4746
CreateStrategy: ingress.Strategy,
4847
UpdateStrategy: ingress.Strategy,

pkg/registry/networking/ingress/storage/storage_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@ import (
2828
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
2929
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
3030
api "k8s.io/kubernetes/pkg/apis/core"
31-
"k8s.io/kubernetes/pkg/apis/extensions"
3231
"k8s.io/kubernetes/pkg/apis/networking"
3332
"k8s.io/kubernetes/pkg/registry/registrytest"
3433
)
3534

3635
func newStorage(t *testing.T) (*REST, *StatusREST, *etcdtesting.EtcdTestServer) {
37-
etcdStorage, server := registrytest.NewEtcdStorage(t, extensions.GroupName)
36+
etcdStorage, server := registrytest.NewEtcdStorageForResource(t, networking.Resource("ingresses"))
3837
restOptions := generic.RESTOptions{
3938
StorageConfig: etcdStorage,
4039
Decorator: generic.UndecoratedStorage,

pkg/registry/registrytest/etcd.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
"k8s.io/apimachinery/pkg/runtime/schema"
2323
"k8s.io/apiserver/pkg/server/options"
24+
serverstorage "k8s.io/apiserver/pkg/server/storage"
2425
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
2526
"k8s.io/apiserver/pkg/storage/storagebackend"
2627
"k8s.io/kubernetes/pkg/api/testapi"
@@ -43,6 +44,7 @@ func NewEtcdStorageForResource(t *testing.T, resource schema.GroupResource) (*st
4344
if err != nil {
4445
t.Fatal(err)
4546
}
47+
completedConfig.ApiResourceConfig = serverstorage.NewResourceConfig()
4648
factory, err := completedConfig.New()
4749
if err != nil {
4850
t.Fatal(err)

test/integration/etcd/data.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ func GetEtcdStorageDataForNamespace(namespace string) map[schema.GroupVersionRes
258258
gvr("extensions", "v1beta1", "ingresses"): {
259259
Stub: `{"metadata": {"name": "ingress1"}, "spec": {"backend": {"serviceName": "service", "servicePort": 5000}}}`,
260260
ExpectedEtcdPath: "/registry/ingress/" + namespace + "/ingress1",
261+
ExpectedGVK: gvkP("networking.k8s.io", "v1beta1", "Ingress"),
261262
},
262263
gvr("extensions", "v1beta1", "networkpolicies"): {
263264
Stub: `{"metadata": {"name": "np1"}, "spec": {"podSelector": {"matchLabels": {"e": "f"}}}}`,
@@ -280,7 +281,6 @@ func GetEtcdStorageDataForNamespace(namespace string) map[schema.GroupVersionRes
280281
gvr("networking.k8s.io", "v1beta1", "ingresses"): {
281282
Stub: `{"metadata": {"name": "ingress2"}, "spec": {"backend": {"serviceName": "service", "servicePort": 5000}}}`,
282283
ExpectedEtcdPath: "/registry/ingress/" + namespace + "/ingress2",
283-
ExpectedGVK: gvkP("extensions", "v1beta1", "Ingress"),
284284
},
285285
// --
286286

0 commit comments

Comments
 (0)