diff --git a/pkg/kustomize/kustomize.go b/pkg/kustomize/kustomize.go index 866133cf8..7d89257e7 100644 --- a/pkg/kustomize/kustomize.go +++ b/pkg/kustomize/kustomize.go @@ -624,11 +624,19 @@ func Inflate( resources[index] = obj } - for index, resource := range resources { - resources[index] = v1.EnsureOwnerReference(quay, resource) + var filteredResources []client.Object + for _, resource := range resources { + if resource == nil { + continue + } + filteredResources = append(filteredResources, resource) + } + + for index, resource := range filteredResources { + filteredResources[index] = v1.EnsureOwnerReference(quay, resource) } - return resources, err + return filteredResources, err } func operatorServiceEndpoint() string { diff --git a/pkg/middleware/middleware.go b/pkg/middleware/middleware.go index 74b1f11a7..09ed3ed19 100644 --- a/pkg/middleware/middleware.go +++ b/pkg/middleware/middleware.go @@ -7,6 +7,7 @@ import ( route "github.com/openshift/api/route/v1" quaycontext "github.com/quay/quay-operator/pkg/context" appsv1 "k8s.io/api/apps/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" @@ -221,6 +222,20 @@ func Process(quay *v1.QuayRegistry, qctx *quaycontext.QuayRegistryContext, obj c return pvc, nil } + if _, ok := obj.(*autoscalingv1.HorizontalPodAutoscaler); ok { + componentMap := map[string]v1.ComponentKind{ + "mirror": v1.ComponentMirror, + "clair": v1.ComponentClair, + } + // If the HPA is not for a managed component, return nil + if component, ok := componentMap[quayComponentLabel]; ok { + if !v1.ComponentIsManaged(quay.Spec.Components, component) { + return nil, nil + } + } + return obj, nil + } + if job, ok := obj.(*batchv1.Job); ok { for _, oenv := range v1.GetEnvOverrideForComponent(quay, v1.ComponentQuay) { for i := range job.Spec.Template.Spec.Containers {