Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
4121321
Rename rev to cer in ClusterExtensionRevision reconciler for consiste…
perdasilva Feb 24, 2026
b49a5b8
(test): Selector field exclusion in registry+v1 bundle configuration …
anik120 Feb 24, 2026
662ecf2
Refine registry+v1 revision phase definitions for granular resource o…
perdasilva Feb 24, 2026
78c9075
Merge branch 'main' into synchronize
Feb 25, 2026
b4d777e
UPSTREAM: <carry>: Add OpenShift specific files
dtfranz Oct 26, 2023
9807414
UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
camilamacedo86 Oct 6, 2025
7ed1aa0
UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
camilamacedo86 Oct 13, 2025
cdbe431
UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp …
camilamacedo86 Oct 13, 2025
b7ff8c2
UPSTREAM: <carry>: Update OCP catalogs to v4.21
tmshort Oct 13, 2025
275b4bf
UPSTREAM: <carry>: support singleown cases in disconnected
kuiwang02 Oct 16, 2025
8e50d57
UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
kuiwang02 Oct 17, 2025
ba1aa5f
UPSTREAM: <carry>: Define Default timeouts and apply their usage accr…
camilamacedo86 Oct 22, 2025
15a29d3
UPSTREAM: <carry>: Update to new feature-gate options in helm
tmshort Oct 22, 2025
7b4cacf
UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniq…
camilamacedo86 Oct 22, 2025
fb767ee
UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comme…
camilamacedo86 Oct 24, 2025
cd3e1c4
UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inlin…
kuiwang02 Nov 3, 2025
e45c8fc
UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension…
camilamacedo86 Nov 4, 2025
c9d67a9
UPSTREAM: <carry>: Add [OTP] to migrated cases
kuiwang02 Nov 7, 2025
3aa9271
UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
camilamacedo86 Nov 5, 2025
f31d9a9
UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version…
camilamacedo86 Nov 10, 2025
63c8005
UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and depe…
camilamacedo86 Nov 11, 2025
67142d3
UPSTREAM: <carry>: add disconnected environment support with custom p…
kuiwang02 Nov 12, 2025
7347cb5
UPSTREAM: <carry>: migrate jiazha test cases to OTE
jianzhangbjz Nov 14, 2025
ff4c591
UPSTREAM: <carry>: migrate clustercatalog case to ote
Xia-Zhao-rh Oct 17, 2025
35e5839
UPSTREAM: <carry>: migrate olmv1 QE stress cases
kuiwang02 Nov 20, 2025
d60a0d0
UPSTREAM: <carry>: Use busybox/httpd to simulate probes
tmshort Nov 25, 2025
4e9a626
UPSTREAM: <carry>: migrate olmv1 QE cases
Xia-Zhao-rh Nov 25, 2025
b30325b
UPSTREAM: <carry>: add agent for olmv1 qe cases
kuiwang02 Oct 21, 2025
9e9c742
UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
tmshort Dec 3, 2025
90d4e9f
UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
rashmigottipati Dec 11, 2025
2fbbf23
UPSTREAM: <carry>: address review comments through addl prompts
rashmigottipati Dec 11, 2025
321ec96
UPSTREAM: <carry>: addressing some more review comments
rashmigottipati Dec 11, 2025
12c453b
UPSTREAM: <carry>: remove DCO line
rashmigottipati Dec 11, 2025
df18b47
UPSTREAM: <carry>: migrate bandrade test cases to OTE
bandrade Nov 18, 2025
1092d76
UPSTREAM: <carry>: update metadata
bandrade Dec 3, 2025
686f169
UPSTREAM: <carry>: remove originalName
bandrade Dec 3, 2025
da72d75
UPSTREAM: <carry>: update 80458's timeout to 180s
jianzhangbjz Dec 8, 2025
fc47941
UPSTREAM: <carry>: update 83026 to specify the clustercatalog
jianzhangbjz Dec 15, 2025
30cfa6c
UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
oceanc80 Dec 18, 2025
7afe2ae
UPSTREAM: <carry>: Use oc client for running e2e tests
pedjak Jan 13, 2026
04ce180
UPSTREAM: <carry>: Run upstream e2e tests tagged with `@catalogd-update`
pedjak Jan 14, 2026
6371e05
UPSTREAM: <carry>: enhance case to make it more stable
kuiwang02 Jan 6, 2026
4c154a6
UPSTREAM: <carry>: add service account to curl job
ehearne-redhat Jan 7, 2026
a4895b0
UPSTREAM: <carry>: move sa creation out of buildCurlJob()
ehearne-redhat Jan 8, 2026
948199b
UPSTREAM: <carry>: comment out delete service account
ehearne-redhat Jan 9, 2026
92e9027
UPSTREAM: <carry>: move defercleanup for sa for LIFO
ehearne-redhat Jan 9, 2026
d99687e
UPSTREAM: <carry>: add polling so job fully deleted before proceed
ehearne-redhat Jan 12, 2026
5474dd8
UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redha…
sosiouxme Jan 20, 2026
1466d4e
UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
camilamacedo86 Jan 8, 2026
71b50d8
UPSTREAM: <carry>: config watchnamespace cases
kuiwang02 Jan 6, 2026
a248217
UPSTREAM: <carry>: enhance ocp-79770
Xia-Zhao-rh Jan 26, 2026
6818d01
UPSTREAM: <carry>: upgrade version support case
kuiwang02 Jan 28, 2026
7b46df9
UPSTREAM: <carry>: Remove installed condition check from auth preflig…
Jan 30, 2026
921222d
UPSTREAM: <carry>: Add openshift/api dependency
Jan 30, 2026
d5ea839
UPSTREAM: <carry>: Add boxcutter specific preflight auth test
Jan 30, 2026
a1807ae
UPSTREAM: <carry>: adjust watchnamespace case based on change
kuiwang02 Feb 2, 2026
eb85216
UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root…
camilamacedo86 Feb 3, 2026
955e850
UPSTREAM: <carry>: add 83979 automation
bandrade Feb 2, 2026
c58e312
UPSTREAM: <carry>: add 85889 automation
bandrade Feb 2, 2026
4a8ca62
UPSTREAM: <carry>: Update test-operator startup script to fix pod pro…
Feb 4, 2026
93dc7bf
UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
Feb 7, 2026
bec3f1c
UPSTREAM: <drop>: go mod vendor
Feb 25, 2026
f0de123
UPSTREAM: <drop>: remove upstream GitHub configuration
Feb 25, 2026
1e39151
UPSTREAM: <drop>: configure the commit-checker
Feb 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion commitchecker.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
expectedMergeBase: ddf921fee666b42a8f3c75c505f3174635041e9c
expectedMergeBase: 662ecf276b48680b471cd49e22ddd28e02475437
upstreamBranch: main
upstreamOrg: operator-framework
upstreamRepo: operator-controller
9 changes: 7 additions & 2 deletions internal/operator-controller/applier/boxcutter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func Test_SimpleRevisionGenerator_GenerateRevisionFromHelmRelease(t *testing.T)
Revision: 1,
Phases: []ocv1.ClusterExtensionRevisionPhase{
{
Name: "deploy",
Name: "configuration",
Objects: []ocv1.ClusterExtensionRevisionObject{
{
Object: unstructured.Unstructured{
Expand Down Expand Up @@ -219,7 +219,7 @@ func Test_SimpleRevisionGenerator_GenerateRevision(t *testing.T) {
t.Log("by checking the rendered objects are present in the correct phases")
require.Equal(t, []ocv1.ClusterExtensionRevisionPhase{
{
Name: string(applier.PhaseDeploy),
Name: string(applier.PhaseInfrastructure),
Objects: []ocv1.ClusterExtensionRevisionObject{
{
Object: unstructured.Unstructured{
Expand All @@ -233,6 +233,11 @@ func Test_SimpleRevisionGenerator_GenerateRevision(t *testing.T) {
},
},
},
},
},
{
Name: string(applier.PhaseDeploy),
Objects: []ocv1.ClusterExtensionRevisionObject{
{
Object: unstructured.Unstructured{
Object: map[string]interface{}{
Expand Down
104 changes: 68 additions & 36 deletions internal/operator-controller/applier/phase.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,44 @@ func determinePhase(gk schema.GroupKind) Phase {
type Phase string

const (
PhaseNamespaces Phase = "namespaces"
PhasePolicies Phase = "policies"
PhaseRBAC Phase = "rbac"
PhaseRBACBindings Phase = "rbac-bindings"
PhaseCRDs Phase = "crds"
PhaseStorage Phase = "storage"
PhaseDeploy Phase = "deploy"
PhasePublish Phase = "publish"
PhaseNamespaces Phase = "namespaces"
PhasePolicies Phase = "policies"
PhaseIdentity Phase = "identity"
PhaseConfiguration Phase = "configuration"
PhaseStorage Phase = "storage"
PhaseCRDs Phase = "crds"
PhaseRoles Phase = "roles"
PhaseBindings Phase = "bindings"
PhaseInfrastructure Phase = "infrastructure"
PhaseDeploy Phase = "deploy"
PhaseScaling Phase = "scaling"
PhasePublish Phase = "publish"
PhaseAdmission Phase = "admission"
)

// Well known phases ordered.
var defaultPhaseOrder = []Phase{
PhaseNamespaces,
PhasePolicies,
PhaseRBAC,
PhaseRBACBindings,
PhaseCRDs,
PhaseIdentity,
PhaseConfiguration,
PhaseStorage,
PhaseCRDs,
PhaseRoles,
PhaseBindings,
PhaseInfrastructure,
PhaseDeploy,
PhaseScaling,
PhasePublish,
PhaseAdmission,
}

// Note: OLMv1 currently only supports registry+v1 content. The registry+v1 format only supports a limited
// set of object kinds defined in:
// https://github.com/operator-framework/operator-registry/blob/f410a396abe01dbe6a46b6d90d34bdd844306388/pkg/lib/bundle/supported_resources.go
// The phase mapping considers all allowable registry+v1 bundle format resource with the following changes:
// - ClusterServiceVersion is replaced by the resources it describes: Deployment, Cluster/Role/Binding, ServiceAccount, ValidatingWebhookConfiguration, etc.
// - Certificate and Issuer from cert-manager are added since OLMv1 uses cert-manager for webhook service certificate by default
var (
// This will be populated from `phaseGKMap` in an init func!
gkPhaseMap = map[schema.GroupKind]Phase{}
Expand All @@ -59,27 +75,18 @@ var (
},

PhasePolicies: {
{Kind: "ResourceQuota"},
{Kind: "LimitRange"},
{Kind: "PriorityClass", Group: "scheduling.k8s.io"},
{Kind: "NetworkPolicy", Group: "networking.k8s.io"},
{Kind: "HorizontalPodAutoscaler", Group: "autoscaling"},
{Kind: "PodDisruptionBudget", Group: "policy"},
{Kind: "PriorityClass", Group: "scheduling.k8s.io"},
},

PhaseRBAC: {
PhaseIdentity: {
{Kind: "ServiceAccount"},
{Kind: "Role", Group: "rbac.authorization.k8s.io"},
{Kind: "ClusterRole", Group: "rbac.authorization.k8s.io"},
},

PhaseRBACBindings: {
{Kind: "RoleBinding", Group: "rbac.authorization.k8s.io"},
{Kind: "ClusterRoleBinding", Group: "rbac.authorization.k8s.io"},
},

PhaseCRDs: {
{Kind: "CustomResourceDefinition", Group: "apiextensions.k8s.io"},
PhaseConfiguration: {
{Kind: "Secret"},
{Kind: "ConfigMap"},
},

PhaseStorage: {
Expand All @@ -88,25 +95,50 @@ var (
{Kind: "StorageClass", Group: "storage.k8s.io"},
},

PhaseCRDs: {
{Kind: "CustomResourceDefinition", Group: "apiextensions.k8s.io"},
},

PhaseRoles: {
{Kind: "ClusterRole", Group: "rbac.authorization.k8s.io"},
{Kind: "Role", Group: "rbac.authorization.k8s.io"},
},

PhaseBindings: {
{Kind: "ClusterRoleBinding", Group: "rbac.authorization.k8s.io"},
{Kind: "RoleBinding", Group: "rbac.authorization.k8s.io"},
},

PhaseInfrastructure: {
{Kind: "Service"},
{Kind: "Issuer", Group: "cert-manager.io"},
},

PhaseDeploy: {
{Kind: "Certificate", Group: "cert-manager.io"},
{Kind: "Deployment", Group: "apps"},
{Kind: "DaemonSet", Group: "apps"},
{Kind: "StatefulSet", Group: "apps"},
{Kind: "ReplicaSet"},
{Kind: "Pod"}, // probing complicated, may be either Completed or Available.
{Kind: "Job", Group: "batch"},
{Kind: "CronJob", Group: "batch"},
{Kind: "Service"},
{Kind: "Secret"},
{Kind: "ConfigMap"},
},

PhaseScaling: {
{Kind: "VerticalPodAutoscaler", Group: "autoscaling.k8s.io"},
},

PhasePublish: {
{Kind: "PrometheusRule", Group: "monitoring.coreos.com"},
{Kind: "ServiceMonitor", Group: "monitoring.coreos.com"},
{Kind: "PodMonitor", Group: "monitoring.coreos.com"},
{Kind: "Ingress", Group: "networking.k8s.io"},
{Kind: "APIService", Group: "apiregistration.k8s.io"},
{Kind: "Route", Group: "route.openshift.io"},
{Kind: "MutatingWebhookConfiguration", Group: "admissionregistration.k8s.io"},
{Kind: "ConsoleYAMLSample", Group: "console.openshift.io"},
{Kind: "ConsoleQuickStart", Group: "console.openshift.io"},
{Kind: "ConsoleCLIDownload", Group: "console.openshift.io"},
{Kind: "ConsoleLink", Group: "console.openshift.io"},
{Kind: "ConsolePlugin", Group: "console.openshift.io"},
},

PhaseAdmission: {
{Kind: "ValidatingWebhookConfiguration", Group: "admissionregistration.k8s.io"},
{Kind: "MutatingWebhookConfiguration", Group: "admissionregistration.k8s.io"},
},
}
)
Expand Down
Loading