Skip to content

Commit 33b73da

Browse files
authored
Merge pull request #17526 from liggitt/dc-scale-36
Fix scale subresource type for apps.openshift.io/deploymentconfigs/scale
2 parents 9cbcf2f + de5d058 commit 33b73da

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

pkg/cmd/server/origin/openshift_apiserver.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,13 @@ func installAPIs(c *OpenshiftAPIConfig, server *genericapiserver.GenericAPIServe
229229
if isPreferredGroupVersion(gv) {
230230
apiGroupInfo.GroupMeta.GroupVersion = gv
231231
}
232+
233+
if group == "apps.openshift.io" && version == "v1" {
234+
if apiGroupInfo.SubresourceGroupVersionKind == nil {
235+
apiGroupInfo.SubresourceGroupVersionKind = map[string]schema.GroupVersionKind{}
236+
}
237+
apiGroupInfo.SubresourceGroupVersionKind["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
238+
}
232239
}
233240

234241
if err := server.InstallAPIGroup(&apiGroupInfo); err != nil {

test/integration/deploy_scale_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package integration
22

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

78
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
810
"k8s.io/apimachinery/pkg/util/wait"
911
extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
1012

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

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

0 commit comments

Comments
 (0)