Skip to content

Commit e646705

Browse files
committed
fit the new scaler impl
1 parent ef04dae commit e646705

File tree

13 files changed

+180
-398
lines changed

13 files changed

+180
-398
lines changed

pkg/apps/strategy/recreate/recreate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func (s *RecreateDeploymentStrategy) scaleAndWait(deployment *kapi.ReplicationCo
230230
}
231231
var scaleErr error
232232
err := wait.PollImmediate(1*time.Second, 30*time.Second, func() (bool, error) {
233-
scaleErr = s.scaler.Scale(deployment.Namespace, deployment.Name, uint(replicas), &kubectl.ScalePrecondition{Size: -1, ResourceVersion: ""}, retry, retryParams)
233+
scaleErr = s.scaler.Scale(deployment.Namespace, deployment.Name, uint(replicas), &kubectl.ScalePrecondition{Size: -1, ResourceVersion: ""}, retry, retryParams, kapi.Resource("replicationcontrollers"))
234234
if scaleErr == nil {
235235
return true, nil
236236
}

pkg/apps/strategy/rolling/rolling.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func NewRollingDeploymentStrategy(namespace string, client kclientset.Interface,
9393
if errOut == nil {
9494
errOut = ioutil.Discard
9595
}
96+
9697
return &RollingDeploymentStrategy{
9798
out: out,
9899
errOut: errOut,
@@ -105,7 +106,7 @@ func NewRollingDeploymentStrategy(namespace string, client kclientset.Interface,
105106
apiRetryPeriod: defaultApiRetryPeriod,
106107
apiRetryTimeout: defaultApiRetryTimeout,
107108
rollingUpdate: func(config *kubectl.RollingUpdaterConfig) error {
108-
updater := kubectl.NewRollingUpdater(namespace, client.Core(), client.Core())
109+
updater := kubectl.NewRollingUpdater(namespace, client.Core(), client.Core(), appsutil.NewReplicationControllerV1ScaleClient(client))
109110
return updater.Update(config)
110111
},
111112
hookExecutor: stratsupport.NewHookExecutor(client.Core(), tags, client.Core(), os.Stdout, decoder),

pkg/apps/util/test/support.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ type ScaleEvent struct {
1717
Size uint
1818
}
1919

20-
func (t *FakeScaler) Scale(namespace, name string, newSize uint, preconditions *kubectl.ScalePrecondition, retry, wait *kubectl.RetryParams) error {
20+
func (t *FakeScaler) Scale(namespace, name string, newSize uint, preconditions *kubectl.ScalePrecondition, retry, wait *kubectl.RetryParams, resource schema.GroupResource) error {
2121
t.Events = append(t.Events, ScaleEvent{name, newSize})
2222
return nil
2323
}
2424

25-
func (t *FakeScaler) ScaleSimple(namespace, name string, preconditions *kubectl.ScalePrecondition, newSize uint) (string, error) {
25+
func (t *FakeScaler) ScaleSimple(namespace, name string, preconditions *kubectl.ScalePrecondition, newSize uint, resource schema.GroupResource) (string, error) {
2626
return "", fmt.Errorf("unexpected call to ScaleSimple")
2727
}
2828

@@ -31,17 +31,17 @@ type FakeLaggedScaler struct {
3131
RetryCount int
3232
}
3333

34-
func (t *FakeLaggedScaler) Scale(namespace, name string, newSize uint, preconditions *kubectl.ScalePrecondition, retry, wait *kubectl.RetryParams) error {
34+
func (t *FakeLaggedScaler) Scale(namespace, name string, newSize uint, preconditions *kubectl.ScalePrecondition, retry, wait *kubectl.RetryParams, resource schema.GroupResource) error {
3535
if t.RetryCount != 2 {
3636
t.RetryCount += 1
3737
// This is faking a real error from the
3838
// "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle" package.
39-
return errors.NewForbidden(schema.GroupResource{Resource: "ReplicationController"}, name, fmt.Errorf("%s: not yet ready to handle request", name))
39+
return errors.NewForbidden(resource, name, fmt.Errorf("%s: not yet ready to handle request", name))
4040
}
4141
t.Events = append(t.Events, ScaleEvent{name, newSize})
4242
return nil
4343
}
4444

45-
func (t *FakeLaggedScaler) ScaleSimple(namespace, name string, preconditions *kubectl.ScalePrecondition, newSize uint) (string, error) {
45+
func (t *FakeLaggedScaler) ScaleSimple(namespace, name string, preconditions *kubectl.ScalePrecondition, newSize uint, resource schema.GroupResource) (string, error) {
4646
return "", nil
4747
}

pkg/apps/util/util.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,11 @@ import (
3737
)
3838

3939
func NewReplicationControllerV1Scaler(client kclientset.Interface) kubectl.Scaler {
40-
return kubectl.ScalerFor(
41-
kapi.Kind("ReplicationController"),
42-
nil,
43-
scaleclient.New(client.Core().RESTClient(), rcv1mapper{}, dynamic.LegacyAPIPathResolverFunc, rcv1mapper{}),
44-
kapi.Resource("replicationcontrollers"),
45-
)
40+
return kubectl.NewScaler(NewReplicationControllerV1ScaleClient(client))
41+
}
42+
43+
func NewReplicationControllerV1ScaleClient(client kclientset.Interface) scaleclient.ScalesGetter {
44+
return scaleclient.New(client.Core().RESTClient(), rcv1mapper{}, dynamic.LegacyAPIPathResolverFunc, rcv1mapper{})
4645
}
4746

4847
// rcv1mapper pins preferred version to v1 and scale kind to autoscaling/v1 Scale

pkg/cmd/infra/deployer/deployer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func (d *Deployer) Deploy(namespace, rcName string) error {
238238
}
239239
// Scale the deployment down to zero.
240240
retryWaitParams := kubectl.NewRetryParams(1*time.Second, 120*time.Second)
241-
if err := d.scaler.Scale(candidate.Namespace, candidate.Name, uint(0), &kubectl.ScalePrecondition{Size: -1, ResourceVersion: ""}, retryWaitParams, retryWaitParams); err != nil {
241+
if err := d.scaler.Scale(candidate.Namespace, candidate.Name, uint(0), &kubectl.ScalePrecondition{Size: -1, ResourceVersion: ""}, retryWaitParams, retryWaitParams, kapi.Resource("replicationcontrollers")); err != nil {
242242
fmt.Fprintf(d.errOut, "error: Couldn't scale down prior deployment %s: %v\n", appsutil.LabelForDeployment(candidate), err)
243243
} else {
244244
fmt.Fprintf(d.out, "--> Scaled older deployment %s down\n", candidate.Name)

pkg/oc/admin/diagnostics/diagnostics/cluster/app_create/setup_cleanup.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
99
"k8s.io/apimachinery/pkg/util/wait"
1010

11+
appsutil "github.com/openshift/origin/pkg/apps/util"
1112
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
1213
newproject "github.com/openshift/origin/pkg/oc/admin/project"
1314
appscmd "github.com/openshift/origin/pkg/oc/cli/deploymentconfigs"
@@ -82,7 +83,7 @@ func (d *AppCreate) cleanupApp() {
8283
d.out.Debug("DCluAC043", fmt.Sprintf("%s: Deleting components of app '%s' if present.", now(), d.appName))
8384

8485
// reap the DC's deployments first
85-
if err := appscmd.NewDeploymentConfigReaper(d.AppsClient, d.KubeClient).Stop(d.project, d.appName, time.Duration(1)*time.Second, nil); err != nil {
86+
if err := appscmd.NewDeploymentConfigReaper(d.AppsClient, d.KubeClient, appsutil.NewReplicationControllerV1ScaleClient(d.KubeClient)).Stop(d.project, d.appName, time.Duration(1)*time.Second, nil); err != nil {
8687
errs = append(errs, err)
8788
}
8889

pkg/oc/cli/deploymentconfigs/delete.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
99
"k8s.io/apimachinery/pkg/types"
1010
"k8s.io/apimachinery/pkg/util/wait"
11+
scaleclient "k8s.io/client-go/scale"
1112
kapi "k8s.io/kubernetes/pkg/apis/core"
1213
kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
1314
"k8s.io/kubernetes/pkg/kubectl"
@@ -18,14 +19,15 @@ import (
1819
)
1920

2021
// NewDeploymentConfigReaper returns a new reaper for deploymentConfigs
21-
func NewDeploymentConfigReaper(appsClient appsclient.Interface, kc kclientset.Interface) kubectl.Reaper {
22-
return &DeploymentConfigReaper{appsClient: appsClient, kc: kc, pollInterval: kubectl.Interval, timeout: kubectl.Timeout}
22+
func NewDeploymentConfigReaper(appsClient appsclient.Interface, kc kclientset.Interface, scaleClient scaleclient.ScalesGetter) kubectl.Reaper {
23+
return &DeploymentConfigReaper{appsClient: appsClient, kc: kc, scaleClient: scaleClient, pollInterval: kubectl.Interval, timeout: kubectl.Timeout}
2324
}
2425

2526
// DeploymentConfigReaper implements the Reaper interface for deploymentConfigs
2627
type DeploymentConfigReaper struct {
2728
appsClient appsclient.Interface
2829
kc kclientset.Interface
30+
scaleClient scaleclient.ScalesGetter
2931
pollInterval, timeout time.Duration
3032
}
3133

@@ -85,10 +87,6 @@ func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time.
8587
if err != nil {
8688
return err
8789
}
88-
rcReaper, err := kubectl.ReaperFor(kapi.Kind("ReplicationController"), reaper.kc)
89-
if err != nil {
90-
return err
91-
}
9290

9391
// If there is neither a config nor any deployments, nor any deployer pods, we can return NotFound.
9492
deployments := rcList.Items
@@ -98,9 +96,20 @@ func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time.
9896
}
9997

10098
for _, rc := range deployments {
101-
if err = rcReaper.Stop(rc.Namespace, rc.Name, timeout, gracePeriod); err != nil {
102-
// Better not error out here...
103-
glog.Infof("Cannot delete ReplicationController %s/%s for deployment config %s/%s: %v", rc.Namespace, rc.Name, namespace, name, err)
99+
// this is unnecessary since the ownership is present
100+
if reaper.scaleClient != nil {
101+
rcReaper, err := kubectl.ReaperFor(kapi.Kind("ReplicationController"), reaper.kc, reaper.scaleClient)
102+
if err != nil {
103+
return err
104+
}
105+
if err = rcReaper.Stop(rc.Namespace, rc.Name, timeout, gracePeriod); err != nil {
106+
// Better not error out here...
107+
glog.Infof("Cannot delete ReplicationController %s/%s for deployment config %s/%s: %v", rc.Namespace, rc.Name, namespace, name, err)
108+
}
109+
} else {
110+
if err := reaper.kc.Core().ReplicationControllers(rc.Namespace).Delete(rc.Name, nil); err != nil {
111+
glog.Infof("Cannot delete ReplicationController %s/%s for deployment config %s/%s: %v", rc.Namespace, rc.Name, namespace, name, err)
112+
}
104113
}
105114

106115
// Only remove deployer pods when the deployment was failed. For completed

pkg/oc/cli/deploymentconfigs/delete_test.go

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@ func TestStop(t *testing.T) {
8585
},
8686
kexpected: []clientgotesting.Action{
8787
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}),
88-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
89-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
90-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
91-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
92-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
93-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
9488
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"),
9589
},
9690
err: false,
@@ -108,12 +102,6 @@ func TestStop(t *testing.T) {
108102
},
109103
kexpected: []clientgotesting.Action{
110104
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}),
111-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
112-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
113-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
114-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
115-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
116-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
117105
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"),
118106
},
119107
err: false,
@@ -131,40 +119,10 @@ func TestStop(t *testing.T) {
131119
},
132120
kexpected: []clientgotesting.Action{
133121
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}),
134-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
135-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
136-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
137-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
138-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
139-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
140122
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"),
141-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
142-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
143-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
144-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
145-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
146-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
147123
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-2"),
148-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
149-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
150-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
151-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
152-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
153-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
154124
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-3"),
155-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
156-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
157-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
158-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
159-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
160-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
161125
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-4"),
162-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
163-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
164-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
165-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
166-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
167-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
168126
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-5"),
169127
},
170128
err: false,
@@ -182,40 +140,10 @@ func TestStop(t *testing.T) {
182140
},
183141
kexpected: []clientgotesting.Action{
184142
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}),
185-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
186-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
187-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
188-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
189-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
190-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
191143
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"),
192-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
193-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
194-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
195-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
196-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
197-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"),
198144
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-2"),
199-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
200-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
201-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
202-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
203-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
204-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"),
205145
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-3"),
206-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
207-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
208-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
209-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
210-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
211-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"),
212146
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-4"),
213-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
214-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
215-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
216-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
217-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
218-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"),
219147
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-5"),
220148
},
221149
err: false,
@@ -231,12 +159,6 @@ func TestStop(t *testing.T) {
231159
},
232160
kexpected: []clientgotesting.Action{
233161
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}),
234-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
235-
clientgotesting.NewListAction(replicationControllersResource, replicationControllerKind, "default", metav1.ListOptions{}),
236-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
237-
clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil),
238-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
239-
clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"),
240162
clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"),
241163
},
242164
err: false,

0 commit comments

Comments
 (0)