Skip to content

Commit

Permalink
Fix scale subresource type for apps.openshift.io/deploymentconfigs/scale
Browse files Browse the repository at this point in the history
  • Loading branch information
liggitt committed Dec 5, 2017
1 parent 3d3b9c5 commit cc424f5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
7 changes: 7 additions & 0 deletions pkg/apps/apiserver/apiserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
kclientsetexternal "k8s.io/client-go/kubernetes"
restclient "k8s.io/client-go/rest"
kapi "k8s.io/kubernetes/pkg/api"
v1beta1extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kclientsetinternal "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"

Expand Down Expand Up @@ -89,6 +90,12 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(appsapiv1.GroupName, c.ExtraConfig.Registry, c.ExtraConfig.Scheme, parameterCodec, c.ExtraConfig.Codecs)
apiGroupInfo.GroupMeta.GroupVersion = appsapiv1.SchemeGroupVersion
apiGroupInfo.VersionedResourcesStorageMap[appsapiv1.SchemeGroupVersion.Version] = v1Storage

if apiGroupInfo.SubresourceGroupVersionKind == nil {
apiGroupInfo.SubresourceGroupVersionKind = map[string]schema.GroupVersionKind{}
}
apiGroupInfo.SubresourceGroupVersionKind["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")

if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
return nil, err
}
Expand Down
36 changes: 36 additions & 0 deletions test/integration/deploy_scale_test.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package integration

import (
"fmt"
"testing"
"time"

extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/util/wait"
internalextensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"

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

{
// Get scale subresource
legacyPath := fmt.Sprintf("/oapi/v1/namespaces/%s/deploymentconfigs/%s/scale", dc.Namespace, dc.Name)
legacyScale := &unstructured.Unstructured{}
if err := adminAppsClient.RESTClient().Get().AbsPath(legacyPath).Do().Into(legacyScale); err != nil {
t.Fatal(err)
}
// Ensure correct type
if legacyScale.GetAPIVersion() != "extensions/v1beta1" {
t.Fatalf("Expected extensions/v1beta1, got %v", legacyScale.GetAPIVersion())
}
// Ensure we can submit the same type back
if err := adminAppsClient.RESTClient().Put().AbsPath(legacyPath).Body(legacyScale).Do().Error(); err != nil {
t.Fatal(err)
}
}

{
// Get scale subresource
scalePath := fmt.Sprintf("/apis/apps.openshift.io/v1/namespaces/%s/deploymentconfigs/%s/scale", dc.Namespace, dc.Name)
scale := &unstructured.Unstructured{}
if err := adminAppsClient.RESTClient().Get().AbsPath(scalePath).Do().Into(scale); err != nil {
t.Fatal(err)
}
// Ensure correct type
if scale.GetAPIVersion() != "extensions/v1beta1" {
t.Fatalf("Expected extensions/v1beta1, got %v", scale.GetAPIVersion())
}
// Ensure we can submit the same type back
if err := adminAppsClient.RESTClient().Put().AbsPath(scalePath).Body(scale).Do().Error(); err != nil {
t.Fatal(err)
}
}

condition := func() (bool, error) {
config, err := adminAppsClient.DeploymentConfigs(namespace).Get(dc.Name, metav1.GetOptions{})
if err != nil {
Expand Down

0 comments on commit cc424f5

Please sign in to comment.