Skip to content

Commit

Permalink
Merge pull request #271 from openshift-cherrypick-robot/cherry-pick-2…
Browse files Browse the repository at this point in the history
…70-to-release-4.14

[release-4.14] OCPBUGS-18980: Disable Build and DeploymentConfig Informers if their caps are disabled
  • Loading branch information
openshift-merge-robot committed Sep 14, 2023
2 parents 66b6169 + 64bdab1 commit 69bd018
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 23 deletions.
42 changes: 22 additions & 20 deletions pkg/cmd/controller/image.go
Expand Up @@ -16,6 +16,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
kclientsetexternal "k8s.io/client-go/kubernetes"

openshiftcontrolplanev1 "github.com/openshift/api/openshiftcontrolplane/v1"
triggerutil "github.com/openshift/library-go/pkg/image/trigger"
imagecontroller "github.com/openshift/openshift-controller-manager/pkg/image/controller"
imagesignaturecontroller "github.com/openshift/openshift-controller-manager/pkg/image/controller/signature"
Expand All @@ -27,37 +28,38 @@ import (

func RunImageTriggerController(ctx *ControllerContext) (bool, error) {
informer := ctx.ImageInformers.Image().V1().ImageStreams()

buildClient, err := ctx.ClientBuilder.OpenshiftBuildClient(infraImageTriggerControllerServiceAccountName)
if err != nil {
return true, err
}

appsClient, err := ctx.ClientBuilder.OpenshiftAppsClient(infraImageTriggerControllerServiceAccountName)
if err != nil {
return true, err
}
kclient := ctx.ClientBuilder.ClientOrDie(infraImageTriggerControllerServiceAccountName)

updater := podSpecUpdater{kclient}
broadcaster := imagetriggercontroller.NewTriggerEventBroadcaster(kclient.CoreV1())

sources := []imagetriggercontroller.TriggerSource{
{
var sources []imagetriggercontroller.TriggerSource
if ctx.IsControllerEnabled(string(openshiftcontrolplanev1.OpenshiftDeploymentConfigController)) {
appsClient, err := ctx.ClientBuilder.OpenshiftAppsClient(infraImageTriggerControllerServiceAccountName)
if err != nil {
return true, err
}
sources = append(sources, imagetriggercontroller.TriggerSource{
Resource: schema.GroupResource{Group: "apps.openshift.io", Resource: "deploymentconfigs"},
Informer: ctx.AppsInformers.Apps().V1().DeploymentConfigs().Informer(),
Store: ctx.AppsInformers.Apps().V1().DeploymentConfigs().Informer().GetIndexer(),
TriggerFn: triggerdeploymentconfigs.NewDeploymentConfigTriggerIndexer,
Reactor: &triggerdeploymentconfigs.DeploymentConfigReactor{Client: appsClient.AppsV1()},
},
})
}
if ctx.IsControllerEnabled(string(openshiftcontrolplanev1.OpenshiftBuildController)) {
buildClient, err := ctx.ClientBuilder.OpenshiftBuildClient(infraImageTriggerControllerServiceAccountName)
if err != nil {
return true, err
}
sources = append(sources, imagetriggercontroller.TriggerSource{
Resource: schema.GroupResource{Group: "build.openshift.io", Resource: "buildconfigs"},
Informer: ctx.BuildInformers.Build().V1().BuildConfigs().Informer(),
Store: ctx.BuildInformers.Build().V1().BuildConfigs().Informer().GetIndexer(),
TriggerFn: triggerbuildconfigs.NewBuildConfigTriggerIndexer,
Reactor: triggerbuildconfigs.NewBuildConfigReactor(buildClient.BuildV1(), kclient.CoreV1().RESTClient()),
})
}
sources = append(sources, imagetriggercontroller.TriggerSource{
Resource: schema.GroupResource{Group: "build.openshift.io", Resource: "buildconfigs"},
Informer: ctx.BuildInformers.Build().V1().BuildConfigs().Informer(),
Store: ctx.BuildInformers.Build().V1().BuildConfigs().Informer().GetIndexer(),
TriggerFn: triggerbuildconfigs.NewBuildConfigTriggerIndexer,
Reactor: triggerbuildconfigs.NewBuildConfigReactor(buildClient.BuildV1(), kclient.CoreV1().RESTClient()),
})
sources = append(sources, imagetriggercontroller.TriggerSource{
Resource: schema.GroupResource{Group: "apps", Resource: "deployments"},
Informer: ctx.KubernetesInformers.Apps().V1().Deployments().Informer(),
Expand Down
8 changes: 6 additions & 2 deletions pkg/cmd/controller/interfaces.go
Expand Up @@ -171,8 +171,12 @@ func (c *ControllerContext) StartInformers(stopCh <-chan struct{}) {
c.OpenshiftConfigKubernetesInformers.Start(stopCh)
c.ControllerManagerKubeInformers.Start(stopCh)

c.AppsInformers.Start(stopCh)
c.BuildInformers.Start(stopCh)
if c.IsControllerEnabled(string(openshiftcontrolplanev1.OpenshiftDeploymentConfigController)) {
c.AppsInformers.Start(stopCh)
}
if c.IsControllerEnabled(string(openshiftcontrolplanev1.OpenshiftBuildController)) {
c.BuildInformers.Start(stopCh)
}
c.ConfigInformers.Start(stopCh)
c.ImageInformers.Start(stopCh)

Expand Down
9 changes: 8 additions & 1 deletion pkg/cmd/controller/template.go
@@ -1,6 +1,8 @@
package controller

import (
openshiftcontrolplanev1 "github.com/openshift/api/openshiftcontrolplane/v1"
buildv1client "github.com/openshift/client-go/build/clientset/versioned"
templatecontroller "github.com/openshift/openshift-controller-manager/pkg/template/controller"
"k8s.io/client-go/dynamic"
)
Expand All @@ -17,12 +19,17 @@ func RunTemplateInstanceController(ctx *ControllerContext) (bool, error) {
return true, err
}

var buildClient buildv1client.Interface
if ctx.IsControllerEnabled(string(openshiftcontrolplanev1.OpenshiftBuildController)) {
buildClient = ctx.ClientBuilder.OpenshiftBuildClientOrDie(saName)
}

go templatecontroller.NewTemplateInstanceController(
ctx.RestMapper,
dynamicClient,
ctx.ClientBuilder.ClientOrDie(saName).AuthorizationV1(),
ctx.ClientBuilder.ClientOrDie(saName),
ctx.ClientBuilder.OpenshiftBuildClientOrDie(saName),
buildClient,
ctx.ClientBuilder.OpenshiftTemplateClientOrDie(saName).TemplateV1(),
ctx.TemplateInformers.Template().V1().TemplateInstances(),
).Run(5, ctx.Stop)
Expand Down
3 changes: 3 additions & 0 deletions pkg/template/controller/readiness.go
Expand Up @@ -282,6 +282,9 @@ func CheckReadiness(oc buildv1client.Interface, ref corev1.ObjectReference, obj

switch ref.GroupVersionKind() {
case groupVersionKind(buildv1.GroupVersion, "BuildConfig"), schema.GroupVersionKind{Group: "", Version: "v1", Kind: "BuildConfig"}:
if oc == nil {
return false, false, nil
}
return checkBuildConfigReadiness(oc, castObj)
}

Expand Down

0 comments on commit 69bd018

Please sign in to comment.