Skip to content

Commit cc424f5

Browse files
committed
Fix scale subresource type for apps.openshift.io/deploymentconfigs/scale
1 parent 3d3b9c5 commit cc424f5

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

pkg/apps/apiserver/apiserver.go

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
kclientsetexternal "k8s.io/client-go/kubernetes"
1414
restclient "k8s.io/client-go/rest"
1515
kapi "k8s.io/kubernetes/pkg/api"
16+
v1beta1extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
1617
kclientsetinternal "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
1718
kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
1819

@@ -89,6 +90,12 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
8990
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(appsapiv1.GroupName, c.ExtraConfig.Registry, c.ExtraConfig.Scheme, parameterCodec, c.ExtraConfig.Codecs)
9091
apiGroupInfo.GroupMeta.GroupVersion = appsapiv1.SchemeGroupVersion
9192
apiGroupInfo.VersionedResourcesStorageMap[appsapiv1.SchemeGroupVersion.Version] = v1Storage
93+
94+
if apiGroupInfo.SubresourceGroupVersionKind == nil {
95+
apiGroupInfo.SubresourceGroupVersionKind = map[string]schema.GroupVersionKind{}
96+
}
97+
apiGroupInfo.SubresourceGroupVersionKind["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
98+
9299
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
93100
return nil, err
94101
}

test/integration/deploy_scale_test.go

+36
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package integration
22

33
import (
4+
"fmt"
45
"testing"
56
"time"
67

78
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
89
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
911
"k8s.io/apimachinery/pkg/util/wait"
1012
internalextensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
1113

@@ -50,6 +52,40 @@ func TestDeployScale(t *testing.T) {
5052
}
5153
generation := dc.Generation
5254

55+
{
56+
// Get scale subresource
57+
legacyPath := fmt.Sprintf("/oapi/v1/namespaces/%s/deploymentconfigs/%s/scale", dc.Namespace, dc.Name)
58+
legacyScale := &unstructured.Unstructured{}
59+
if err := adminAppsClient.RESTClient().Get().AbsPath(legacyPath).Do().Into(legacyScale); err != nil {
60+
t.Fatal(err)
61+
}
62+
// Ensure correct type
63+
if legacyScale.GetAPIVersion() != "extensions/v1beta1" {
64+
t.Fatalf("Expected extensions/v1beta1, got %v", legacyScale.GetAPIVersion())
65+
}
66+
// Ensure we can submit the same type back
67+
if err := adminAppsClient.RESTClient().Put().AbsPath(legacyPath).Body(legacyScale).Do().Error(); err != nil {
68+
t.Fatal(err)
69+
}
70+
}
71+
72+
{
73+
// Get scale subresource
74+
scalePath := fmt.Sprintf("/apis/apps.openshift.io/v1/namespaces/%s/deploymentconfigs/%s/scale", dc.Namespace, dc.Name)
75+
scale := &unstructured.Unstructured{}
76+
if err := adminAppsClient.RESTClient().Get().AbsPath(scalePath).Do().Into(scale); err != nil {
77+
t.Fatal(err)
78+
}
79+
// Ensure correct type
80+
if scale.GetAPIVersion() != "extensions/v1beta1" {
81+
t.Fatalf("Expected extensions/v1beta1, got %v", scale.GetAPIVersion())
82+
}
83+
// Ensure we can submit the same type back
84+
if err := adminAppsClient.RESTClient().Put().AbsPath(scalePath).Body(scale).Do().Error(); err != nil {
85+
t.Fatal(err)
86+
}
87+
}
88+
5389
condition := func() (bool, error) {
5490
config, err := adminAppsClient.DeploymentConfigs(namespace).Get(dc.Name, metav1.GetOptions{})
5591
if err != nil {

0 commit comments

Comments
 (0)