Skip to content

OPRUN-4017: Synchronize From Upstream Repositories #408

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 50 commits into from
Jul 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ebc7986
Performance Alerting (#2081)
dtfranz Jul 16, 2025
a0717aa
Remove use of namespace in kustomize (#2095)
tmshort Jul 16, 2025
b25356d
Update codecov.yaml to be valid (#2101)
tmshort Jul 16, 2025
6e5c186
(chore): remove unused utils method (#2104)
camilamacedo86 Jul 16, 2025
0491775
:seedling: Bump github.com/containers/image/v5 from 5.35.0 to 5.36.0 …
dependabot[bot] Jul 16, 2025
7c12644
:seedling: OPRUN-4016: Split rbac generation into experimental/standa…
perdasilva Jul 16, 2025
850e4a1
Metrics Follow-Ups (#2105)
dtfranz Jul 17, 2025
21290ff
Merge branch 'main' into synchronize
tmshort Jul 17, 2025
e997d67
UPSTREAM: <carry>: Add OpenShift specific files
dtfranz Oct 26, 2023
5c494ab
UPSTREAM: <carry>: Fix catalogd.Dockerfile to use new paths
tmshort Feb 26, 2025
45d130d
UPSTREAM: <carry>: Update DOWNSTREAM_OWNERS_ALIASES
tmshort Mar 6, 2025
3f4b02b
UPSTREAM: <carry>: Add openshift node selector annotation
oceanc80 Mar 26, 2025
5232a5c
UPSTREAM: <carry>: Add caalogd-cas-dir option to op-con
tmshort Apr 15, 2025
c9f9d92
UPSTREAM: <carry>: set the SElinux type
jianzhangbjz Apr 27, 2025
e3e60bd
UPSTREAM: <carry>: Add initial stack to run tests to validate the cat…
camilamacedo86 Apr 17, 2025
ceac742
UPSTREAM: <carry>: Add vendor files for the catalog-sync tests
camilamacedo86 Apr 17, 2025
e51e360
UPSTREAM: <carry>: Bump catalog versions to 4.19
tmshort Apr 24, 2025
10e86a9
UPSTREAM: <carry>: revert "Bump catalog versions to 4.19"
tmshort May 15, 2025
4b0ce5f
UPSTREAM: <carry>: Update HOWTO-origin-tests
tmshort May 14, 2025
47b261a
UPSTREAM: <carry>: [DefaultCatalogTests]: Allow to pass auth path for…
camilamacedo86 May 16, 2025
7c195e0
UPSTREAM: <carry>: fix: set NoLchown=true to allow image unpack on OCPci
camilamacedo86 May 19, 2025
b314cbd
UPSTREAM: <carry>: [DefaultCatalogTests]: Moving parse of ENVVAR to t…
camilamacedo86 May 17, 2025
2f575f6
UPSTREAM: <carry>: [Default Catalog]: Create tmp dir to extract layer…
camilamacedo86 May 20, 2025
ab411a8
UPSTREAM: <carry>: [Default Catalog](cleanp) Remove hack directory wh…
camilamacedo86 May 19, 2025
c07102c
UPSTREAM: <carry>: Change code implementation to extract layers in OC…
camilamacedo86 May 21, 2025
e35ab23
UPSTREAM: <carry>: Add vendor files for change in the extract code im…
camilamacedo86 May 21, 2025
4dfa079
UPSTREAM: <carry>: [Default Catalog Tests]: Final cleanups and enhanc…
camilamacedo86 May 22, 2025
84c0f07
UPSTREAM: <carry>: SELinux type for operator-controller
jianzhangbjz May 22, 2025
35ed59d
UPSTREAM: <carry>: Bump catalog versions to 4.19
tmshort Apr 24, 2025
4efe6ef
UPSTREAM: <carry>: [Default Catalog Consistency Test] (feat) add chec…
camilamacedo86 May 28, 2025
539a5d8
UPSTREAM: <carry>: [Default Catalog Consistency Test]: fix junit outp…
camilamacedo86 Jun 2, 2025
c56647d
UPSTREAM: <carry>: [Default Catalog Consistency Test] (feat) add chec…
camilamacedo86 May 29, 2025
ce4c139
UPSTREAM: <carry>: [Default Catalog Consistency Test]: Enable Catalog…
camilamacedo86 Jun 4, 2025
ae4346e
UPSTREAM: <carry>: [Default Catalog Consistency Test]: Rename Tests s…
camilamacedo86 Jun 4, 2025
5b5aac6
UPSTREAM: <carry>: Updating ose-olm-operator-controller-container ima…
Jun 18, 2025
4dbd1b1
UPSTREAM: <carry>: Updating ose-olm-catalogd-container image to be co…
Jun 18, 2025
fb289c6
UPSTREAM: <carry>: Update e2e registry to use 1.24/4.20
tmshort Jun 30, 2025
f2bfbfe
UPSTREAM: <carry>: [Catalog Default Tests]: Upgrade go version to 1.2…
camilamacedo86 Jul 1, 2025
5f21501
UPSTREAM: <carry>: Add structure to allow move the orgin tests using OTE
camilamacedo86 Jun 13, 2025
d231f33
UPSTREAM: <carry>: Add support for experimental manifests
tmshort Jul 2, 2025
3918e1b
UPSTREAM: <carry>: [OTE] - chore: follow up #383 – remove unreachable…
camilamacedo86 Jul 10, 2025
f258b85
UPSTREAM: <carry>: Remove build of test image registry
tmshort Jul 9, 2025
afb068e
UPSTREAM: <carry>: Add test-experimental-e2e target to openshift Make…
tmshort Jul 15, 2025
5921bf1
UPSTREAM: <carry>: [OTE]: Add binary in the operator controller image…
camilamacedo86 Jul 11, 2025
4258194
UPSTREAM: <carry>: Fix experimental manifest copying
tmshort Jul 17, 2025
65bffbb
UPSTREAM: <drop>: go mod vendor
tmshort Jul 17, 2025
53bc227
UPSTREAM: <drop>: remove upstream GitHub configuration
tmshort Jul 17, 2025
585ff89
UPSTREAM: <drop>: configure the commit-checker
tmshort Jul 17, 2025
bf7aedd
UPSTREAM: <carry>: Update manifest generation for upstream rbac/webhooks
tmshort Jul 17, 2025
6531aa0
UPSTREAM: <drop>: make manifests
tmshort Jul 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 15 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -142,18 +142,23 @@ tidy:

.PHONY: manifests
KUSTOMIZE_CATD_RBAC_DIR := config/base/catalogd/rbac
KUSTOMIZE_CATD_WEBHOOKS_DIR := config/base/catalogd/manager/webhook
KUSTOMIZE_CATD_WEBHOOKS_DIR := config/base/catalogd/webhook
KUSTOMIZE_OPCON_RBAC_DIR := config/base/operator-controller/rbac
# Due to https://github.com/kubernetes-sigs/controller-tools/issues/837 we can't specify individual files
# So we have to generate them together and then move them into place
manifests: $(CONTROLLER_GEN) $(KUSTOMIZE) #EXHELP Generate WebhookConfiguration, ClusterRole, and CustomResourceDefinition objects.
# Generate CRDs via our own generator
hack/tools/update-crds.sh
# Generate the remaining operator-controller manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)
# Generate the remaining catalogd manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) webhook paths="./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR)
# Generate the remaining operator-controller standard manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/standard
# Generate the remaining operator-controller experimental manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/experimental
# Generate the remaining catalogd standard manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/standard
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard webhook paths="./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR)/standard
# Generate the remaining catalogd experimental manifests
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/experimental
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) webhook paths="./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR)/experimental
# Generate manifests stored in source-control
mkdir -p $(MANIFEST_HOME)
$(KUSTOMIZE) build $(KUSTOMIZE_STANDARD_OVERLAY) > $(STANDARD_MANIFEST)
Expand Down Expand Up @@ -278,18 +283,13 @@ test-experimental-e2e: run image-registry prometheus experimental-e2e e2e e2e-me
prometheus: PROMETHEUS_NAMESPACE := olmv1-system
prometheus: PROMETHEUS_VERSION := v0.83.0
prometheus: #EXHELP Deploy Prometheus into specified namespace
./hack/test/setup-monitoring.sh $(PROMETHEUS_NAMESPACE) $(PROMETHEUS_VERSION) $(KUSTOMIZE)
./hack/test/install-prometheus.sh $(PROMETHEUS_NAMESPACE) $(PROMETHEUS_VERSION) $(KUSTOMIZE) $(VERSION)

# The metrics.out file contains raw json data of the metrics collected during a test run.
# In an upcoming PR, this query will be replaced with one that checks for alerts from
# prometheus. Prometheus will gather metrics we currently query for over the test run,
# and provide alerts from the metrics based on the rules that we set.
# The output alerts.out file contains any alerts, pending or firing, collected during a test run in json format.
.PHONY: e2e-metrics
e2e-metrics: ALERTS_FILE_PATH := $(if $(ARTIFACT_PATH),$(ARTIFACT_PATH),.)/alerts.out
e2e-metrics: #EXHELP Request metrics from prometheus; place in ARTIFACT_PATH if set
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
--data 'query={pod=~"operator-controller-controller-manager-.*|catalogd-controller-manager-.*"}' \
http://localhost:30900/api/v1/query > $(if $(ARTIFACT_PATH),$(ARTIFACT_PATH),.)/metrics.out
curl -X GET http://localhost:30900/api/v1/alerts | jq 'if (.data.alerts | length) > 0 then .data.alerts.[] else empty end' > $(ALERTS_FILE_PATH)

.PHONY: extension-developer-e2e
extension-developer-e2e: KIND_CLUSTER_NAME := operator-controller-ext-dev-e2e
Expand Down
12 changes: 8 additions & 4 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@ coverage:
default:
target: auto
threshold: 2%
paths:
- "api/"
- "cmd/"
- "internal/"
patch:
default:
target: auto
threshold: 1%
paths:
- "api/"
- "cmd/"
- "internal/"
paths:
- "api/"
- "cmd/"
- "internal/"

2 changes: 1 addition & 1 deletion commitchecker.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
expectedMergeBase: 36809b312a523019c98655a9fda396e0f1588318
expectedMergeBase: 850e4a128012f99f95fea9b521be5c6edf1d0d86
upstreamBranch: main
upstreamOrg: operator-framework
upstreamRepo: operator-controller
8 changes: 8 additions & 0 deletions config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ This provides additional configuration support for end-to-end testing, including

This configuration is used to generate `manifests/standard-e2e.yaml`.

## config/overlays/prometheus

Overlay containing manifest files which enable prometheus scraping of the catalogd and operator-controller pods. Used during e2e runs to measure performance over the lifetime of the test.

These manifests will not end up in the `manifests/` folder, as they must be applied in two distinct steps to avoid issues with applying prometheus CRDs and CRs simultaneously.

Performance alert settings can be found in: `config/overlays/prometheus/prometheus_rule.yaml`

## config/overlays/experimental

This provides additional configuration used to support experimental features, including CRDs. This configuration requires cert-manager.
Expand Down
2 changes: 0 additions & 2 deletions config/base/catalogd/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Does not include the CRD, which must be added separately (it's non-namespaced)
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: olmv1-system
namePrefix: catalogd-
resources:
- rbac
- manager
8 changes: 0 additions & 8 deletions config/base/catalogd/manager/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,9 @@ resources:
- manager.yaml
- service.yaml
- network_policy.yaml
- webhook/manifests.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: controller
newName: quay.io/operator-framework/catalogd
newTag: devel
patches:
- path: webhook/patch.yaml
target:
group: admissionregistration.k8s.io
kind: MutatingWebhookConfiguration
name: mutating-webhook-configuration
version: v1
2 changes: 1 addition & 1 deletion config/base/catalogd/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: controller-manager
namespace: system
namespace: olmv1-system
annotations:
kubectl.kubernetes.io/default-logs-container: manager
labels:
Expand Down
2 changes: 1 addition & 1 deletion config/base/catalogd/manager/network_policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: controller-manager
namespace: system
namespace: olmv1-system
spec:
podSelector:
matchLabels:
Expand Down
2 changes: 1 addition & 1 deletion config/base/catalogd/manager/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
app.kubernetes.io/part-of: olm
app.kubernetes.io/name: catalogd
name: service
namespace: system
namespace: olmv1-system
spec:
selector:
control-plane: catalogd-controller-manager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ roleRef:
subjects:
- kind: ServiceAccount
name: controller-manager
namespace: system
namespace: olmv1-system
19 changes: 19 additions & 0 deletions config/base/catalogd/rbac/common/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
resources:
# All RBAC will be applied under this service account in
# the deployment namespace. You may comment out this resource
# if your manager will use a service account that exists at
# runtime. Be sure to update RoleBinding and ClusterRoleBinding
# subjects if changing service account names.
- service_account.yaml
- role_binding.yaml
- leader_election_role.yaml
- leader_election_role_binding.yaml
# The following RBAC configurations are used to protect
# the metrics endpoint with authn/authz. These configurations
# ensure that only authorized users and service accounts
# can access the metrics endpoint. Comment the following
# permissions if you want to disable this protection.
# More info: https://book.kubebuilder.io/reference/metrics.html
- auth_proxy_role.yaml
- auth_proxy_role_binding.yaml
- auth_proxy_client_clusterrole.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ metadata:
app.kubernetes.io/part-of: olm
app.kubernetes.io/name: catalogd
name: leader-election-role
namespace: olmv1-system
rules:
- apiGroups:
- ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ metadata:
app.kubernetes.io/part-of: olm
app.kubernetes.io/name: catalogd
name: leader-election-rolebinding
namespace: olmv1-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: leader-election-role
subjects:
- kind: ServiceAccount
name: controller-manager
namespace: system
namespace: olmv1-system
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ roleRef:
subjects:
- kind: ServiceAccount
name: controller-manager
namespace: system
namespace: olmv1-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
Expand All @@ -21,12 +21,12 @@ metadata:
app.kubernetes.io/part-of: olm
app.kubernetes.io/name: catalogd
name: manager-rolebinding
namespace: system
namespace: olmv1-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: manager-role
subjects:
- kind: ServiceAccount
name: controller-manager
namespace: system
namespace: olmv1-system
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ metadata:
app.kubernetes.io/part-of: olm
app.kubernetes.io/name: catalogd
name: controller-manager
namespace: system
namespace: olmv1-system
7 changes: 7 additions & 0 deletions config/base/catalogd/rbac/experimental/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: olmv1-system
namePrefix: catalogd-
resources:
- ../common
- role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manager-role
namespace: system
namespace: olmv1-system
rules:
- apiGroups:
- ""
Expand Down
22 changes: 3 additions & 19 deletions config/base/catalogd/rbac/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,4 @@
# This kustomization picks the standard rbac by default
# If the experimental rbac is desired, select that directory explicitly
resources:
# All RBAC will be applied under this service account in
# the deployment namespace. You may comment out this resource
# if your manager will use a service account that exists at
# runtime. Be sure to update RoleBinding and ClusterRoleBinding
# subjects if changing service account names.
- service_account.yaml
- role.yaml
- role_binding.yaml
- leader_election_role.yaml
- leader_election_role_binding.yaml
# The following RBAC configurations are used to protect
# the metrics endpoint with authn/authz. These configurations
# ensure that only authorized users and service accounts
# can access the metrics endpoint. Comment the following
# permissions if you want to disable this protection.
# More info: https://book.kubebuilder.io/reference/metrics.html
- auth_proxy_role.yaml
- auth_proxy_role_binding.yaml
- auth_proxy_client_clusterrole.yaml
- standard
7 changes: 7 additions & 0 deletions config/base/catalogd/rbac/standard/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: olmv1-system
namePrefix: catalogd-
resources:
- ../common
- role.yaml
48 changes: 48 additions & 0 deletions config/base/catalogd/rbac/standard/role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: manager-role
rules:
- apiGroups:
- olm.operatorframework.io
resources:
- clustercatalogs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- olm.operatorframework.io
resources:
- clustercatalogs/finalizers
verbs:
- update
- apiGroups:
- olm.operatorframework.io
resources:
- clustercatalogs/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manager-role
namespace: olmv1-system
rules:
- apiGroups:
- ""
resources:
- secrets
- serviceaccounts
verbs:
- get
- list
- watch
13 changes: 13 additions & 0 deletions config/base/catalogd/webhook/experimental/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
resources:
- manifests.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: olmv1-system
namePrefix: catalogd-
patches:
- path: patch.yaml
target:
group: admissionregistration.k8s.io
kind: MutatingWebhookConfiguration
name: mutating-webhook-configuration
version: v1
4 changes: 4 additions & 0 deletions config/base/catalogd/webhook/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# This kustomization picks the standard webhook by default
# If the experimental webhook is desired, select that directory explicitly
resources:
- standard
13 changes: 13 additions & 0 deletions config/base/catalogd/webhook/standard/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
resources:
- manifests.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: olmv1-system
namePrefix: catalogd-
patches:
- path: patch.yaml
target:
group: admissionregistration.k8s.io
kind: MutatingWebhookConfiguration
name: mutating-webhook-configuration
version: v1
27 changes: 27 additions & 0 deletions config/base/catalogd/webhook/standard/manifests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
name: mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
service:
name: webhook-service
namespace: system
path: /mutate-olm-operatorframework-io-v1-clustercatalog
failurePolicy: Fail
name: inject-metadata-name.olm.operatorframework.io
rules:
- apiGroups:
- olm.operatorframework.io
apiVersions:
- v1
operations:
- CREATE
- UPDATE
resources:
- clustercatalogs
sideEffects: None
timeoutSeconds: 10
Loading