Skip to content

Commit c403105

Browse files
committed
apps: use generated clientset for deployment controllers and add expansion for instantiate
1 parent d8e3a92 commit c403105

File tree

7 files changed

+54
-24
lines changed

7 files changed

+54
-24
lines changed

pkg/cmd/server/origin/controller/apps.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,11 @@ func (c *DeploymentConfigControllerConfig) RunController(ctx ControllerContext)
5151
if err != nil {
5252
return true, err
5353
}
54-
deprecatedOcDcClient, err := ctx.ClientBuilder.DeprecatedOpenshiftClient(saName)
55-
if err != nil {
56-
return true, err
57-
}
5854

5955
go deployconfigcontroller.NewDeploymentConfigController(
6056
ctx.AppInformers.Apps().InternalVersion().DeploymentConfigs().Informer(),
6157
ctx.ExternalKubeInformers.Core().V1().ReplicationControllers(),
62-
deprecatedOcDcClient,
58+
ctx.ClientBuilder.AppsInternalClientOrDie(saName),
6359
kubeClient,
6460
c.Codec,
6561
).Run(5, ctx.Stop)
@@ -70,16 +66,11 @@ func (c *DeploymentConfigControllerConfig) RunController(ctx ControllerContext)
7066
func (c *DeploymentTriggerControllerConfig) RunController(ctx ControllerContext) (bool, error) {
7167
saName := bootstrappolicy.InfraDeploymentTriggerControllerServiceAccountName
7268

73-
deprecatedOcTriggerClient, err := ctx.ClientBuilder.DeprecatedOpenshiftClient(saName)
74-
if err != nil {
75-
return true, err
76-
}
77-
7869
go triggercontroller.NewDeploymentTriggerController(
7970
ctx.AppInformers.Apps().InternalVersion().DeploymentConfigs().Informer(),
8071
ctx.ExternalKubeInformers.Core().V1().ReplicationControllers().Informer(),
8172
ctx.ImageInformers.Image().InternalVersion().ImageStreams().Informer(),
82-
deprecatedOcTriggerClient,
73+
ctx.ClientBuilder.AppsInternalClientOrDie(saName),
8374
c.Codec,
8475
).Run(5, ctx.Stop)
8576

pkg/cmd/server/origin/controller/interfaces.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
buildinformer "github.com/openshift/origin/pkg/build/generated/informers/internalversion"
1414
osclient "github.com/openshift/origin/pkg/client"
1515
appinformer "github.com/openshift/origin/pkg/deploy/generated/informers/internalversion"
16+
appsclientinternal "github.com/openshift/origin/pkg/deploy/generated/internalclientset"
1617
imageinformer "github.com/openshift/origin/pkg/image/generated/informers/internalversion"
1718
quotainformer "github.com/openshift/origin/pkg/quota/generated/informers/internalversion"
1819
securityinformer "github.com/openshift/origin/pkg/security/generated/informers/internalversion"
@@ -49,9 +50,15 @@ type ControllerClientBuilder interface {
4950
controller.ControllerClientBuilder
5051
KubeInternalClient(name string) (kclientsetinternal.Interface, error)
5152
KubeInternalClientOrDie(name string) kclientsetinternal.Interface
53+
54+
// Legacy OpenShift client (pkg/client)
5255
DeprecatedOpenshiftClient(name string) (osclient.Interface, error)
5356
DeprecatedOpenshiftClientOrDie(name string) osclient.Interface
57+
58+
// OpenShift clients based on generated internal clientsets
5459
OpenshiftTemplateClient(name string) (templateclient.Interface, error)
60+
AppsInternalClient(name string) (appsclientinternal.Interface, error)
61+
AppsInternalClientOrDie(name string) appsclientinternal.Interface
5562
}
5663

5764
// InitFunc is used to launch a particular controller. It may run additional "should I activate checks".
@@ -103,6 +110,22 @@ func (b OpenshiftControllerClientBuilder) OpenshiftTemplateClient(name string) (
103110
return templateclient.NewForConfig(clientConfig)
104111
}
105112

113+
func (b OpenshiftControllerClientBuilder) AppsInternalClient(name string) (appsclientinternal.Interface, error) {
114+
clientConfig, err := b.Config(name)
115+
if err != nil {
116+
return nil, err
117+
}
118+
return appsclientinternal.NewForConfig(clientConfig)
119+
}
120+
121+
func (b OpenshiftControllerClientBuilder) AppsInternalClientOrDie(name string) appsclientinternal.Interface {
122+
client, err := b.AppsInternalClient(name)
123+
if err != nil {
124+
glog.Fatal(err)
125+
}
126+
return client
127+
}
128+
106129
// FromKubeInitFunc adapts a kube init func to an openshift one
107130
func FromKubeInitFunc(initFn kubecontroller.InitFunc) InitFunc {
108131
return func(ctx ControllerContext) (bool, error) {

pkg/deploy/controller/deploymentconfig/deploymentconfig_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
"k8s.io/kubernetes/pkg/client/retry"
2222
kcontroller "k8s.io/kubernetes/pkg/controller"
2323

24-
osclient "github.com/openshift/origin/pkg/client"
2524
oscache "github.com/openshift/origin/pkg/client/cache"
2625
deployapi "github.com/openshift/origin/pkg/deploy/apis/apps"
26+
appsclient "github.com/openshift/origin/pkg/deploy/generated/internalclientset/typed/apps/internalversion"
2727
deployutil "github.com/openshift/origin/pkg/deploy/util"
2828
)
2929

@@ -56,7 +56,7 @@ func (e fatalError) Error() string {
5656
// running deployments.
5757
type DeploymentConfigController struct {
5858
// dn provides access to deploymentconfigs.
59-
dn osclient.DeploymentConfigsNamespacer
59+
dn appsclient.DeploymentConfigsGetter
6060
// rn provides access to replication controllers.
6161
rn kcoreclient.ReplicationControllersGetter
6262

pkg/deploy/controller/deploymentconfig/factory.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import (
1919
kcoreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions/core/v1"
2020
kcontroller "k8s.io/kubernetes/pkg/controller"
2121

22-
osclient "github.com/openshift/origin/pkg/client"
2322
deployapi "github.com/openshift/origin/pkg/deploy/apis/apps"
23+
appsclient "github.com/openshift/origin/pkg/deploy/generated/internalclientset"
2424
)
2525

2626
const (
@@ -34,7 +34,7 @@ const (
3434
func NewDeploymentConfigController(
3535
dcInformer cache.SharedIndexInformer,
3636
rcInformer kcoreinformers.ReplicationControllerInformer,
37-
oc osclient.Interface,
37+
appsClientset appsclient.Interface,
3838
kubeClientset kclientset.Interface,
3939
codec runtime.Codec,
4040
) *DeploymentConfigController {
@@ -43,7 +43,7 @@ func NewDeploymentConfigController(
4343
recorder := eventBroadcaster.NewRecorder(kapi.Scheme, kclientv1.EventSource{Component: "deploymentconfig-controller"})
4444

4545
c := &DeploymentConfigController{
46-
dn: oc,
46+
dn: appsClientset.Apps(),
4747
rn: kubeClientset.Core(),
4848

4949
queue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()),

pkg/deploy/controller/generictrigger/deploy_generictrigger_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77
kcorelister "k8s.io/kubernetes/pkg/client/listers/core/v1"
88

99
"github.com/golang/glog"
10-
osclient "github.com/openshift/origin/pkg/client"
1110
oscache "github.com/openshift/origin/pkg/client/cache"
1211
deployapi "github.com/openshift/origin/pkg/deploy/apis/apps"
12+
appsclient "github.com/openshift/origin/pkg/deploy/generated/internalclientset/typed/apps/internalversion"
1313
)
1414

1515
const (
@@ -26,7 +26,7 @@ type DeploymentTriggerController struct {
2626
triggerFromImages bool
2727

2828
// dn is used to update deployment configs.
29-
dn osclient.DeploymentConfigsNamespacer
29+
dn appsclient.DeploymentConfigsGetter
3030

3131
// queue contains deployment configs that need to be synced.
3232
queue workqueue.RateLimitingInterface

pkg/deploy/controller/generictrigger/factory.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import (
1515
kcorelisters "k8s.io/kubernetes/pkg/client/listers/core/v1"
1616
kcontroller "k8s.io/kubernetes/pkg/controller"
1717

18-
osclient "github.com/openshift/origin/pkg/client"
1918
deployapi "github.com/openshift/origin/pkg/deploy/apis/apps"
19+
appsclient "github.com/openshift/origin/pkg/deploy/generated/internalclientset"
2020
deployutil "github.com/openshift/origin/pkg/deploy/util"
2121
imageapi "github.com/openshift/origin/pkg/image/apis/image"
2222
)
@@ -29,12 +29,10 @@ const (
2929
)
3030

3131
// NewDeploymentTriggerController returns a new DeploymentTriggerController.
32-
func NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer cache.SharedIndexInformer, oc osclient.Interface, codec runtime.Codec) *DeploymentTriggerController {
32+
func NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer cache.SharedIndexInformer, appsClientset appsclient.Interface, codec runtime.Codec) *DeploymentTriggerController {
3333
c := &DeploymentTriggerController{
34-
dn: oc,
35-
34+
dn: appsClientset.Apps(),
3635
queue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()),
37-
3836
codec: codec,
3937
}
4038

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
11
package internalversion
22

3-
type DeploymentConfigExpansion interface{}
3+
import (
4+
deployapi "github.com/openshift/origin/pkg/deploy/apis/apps"
5+
)
6+
7+
type DeploymentConfigExpansion interface {
8+
Instantiate(request *deployapi.DeploymentRequest) (*deployapi.DeploymentConfig, error)
9+
}
10+
11+
// Instantiate instantiates a new build from build config returning new object or an error
12+
func (c *deploymentConfigs) Instantiate(request *deployapi.DeploymentRequest) (*deployapi.DeploymentConfig, error) {
13+
result := &deployapi.DeploymentConfig{}
14+
resp := c.client.Post().Namespace(c.ns).Resource("deploymentConfigs").Name(request.Name).SubResource("instantiate").Body(request).Do()
15+
var statusCode int
16+
if resp.StatusCode(&statusCode); statusCode == 204 {
17+
return nil, nil
18+
}
19+
err := resp.Into(result)
20+
return result, err
21+
}

0 commit comments

Comments
 (0)