-
Notifications
You must be signed in to change notification settings - Fork 57
OCPBUGS-95281: Synchronize From Upstream Repositories #762
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
Changes from all commits
d0252d4
6a28728
8013292
6655994
395bb86
7461774
a918ca8
60f2706
b7926dc
abd8c4a
dd78f2f
be16a0a
dbc9b4a
e5bac06
c63b183
e5877d7
8877ba0
ca2945a
507310b
61c439f
7909550
07e6312
74d27b2
4562584
1bbe788
a7e2fcd
36631f6
a701c11
a0e38b7
441ed2b
06e81f0
2196694
bd0f55f
14472eb
52c4259
0ccc077
60ede30
ee96dc1
80d97f8
071e814
f80b47a
7d03123
ea677ef
4922ed2
aa62f33
2f0f531
36d61ea
70bfc13
ed7b8d8
423ec6f
5d0888e
116d217
04b0d8b
ba7f06b
feaf9a0
4ac2b13
e22dafd
f97eae3
c3019f6
8351259
a923158
744f8e5
9473412
82649eb
bf38ba1
04a1f5f
42205b5
6a979e3
d052148
c0ee6fc
292fae2
1f586af
12b2772
a6c611c
d5db55a
e358b4e
e18c52a
0864627
b00b068
3a55c99
087501a
e986a41
ca0dcd1
a586b05
8786c05
a3425e1
773f3c8
6e5861e
bfb77b7
2d55879
5bd7e11
043cb16
da8d953
9c9b3be
0848e4b
a64c39b
ebf5161
432f3ec
0c5f694
f1f76ff
7a69da8
3255e88
f1ed515
7ba000a
6a5426f
f39c7f3
eb46fc6
787c756
da5086b
df307bd
4a7d4cb
07bef4a
b65aea9
a62aede
6630947
122da91
987c006
db6d868
8520c56
accbb54
3f1a411
c10ddc8
f65f042
f6be51a
93b2980
a611da3
8446a63
5bee1bf
88dae49
998bb3f
c186aae
4351db2
7202e02
0fd70a8
a41da40
0f0952e
fa0c653
2094c48
1111c6f
2bc35a8
2a7510c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -145,10 +145,6 @@ lint-custom: custom-linter-build #EXHELP Call custom linter for the project | |||||||||||||||||||||||||||||||||||||||||||||||||
| lint-api-diff: $(GOLANGCI_LINT) #HELP Validate API changes using kube-api-linter with diff-aware analysis | ||||||||||||||||||||||||||||||||||||||||||||||||||
| hack/api-lint-diff/run.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: k8s-pin | ||||||||||||||||||||||||||||||||||||||||||||||||||
| k8s-pin: #EXHELP Pin k8s staging modules based on k8s.io/kubernetes version (in go.mod or from K8S_IO_K8S_VERSION env var) and run go mod tidy. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| K8S_IO_K8S_VERSION='$(K8S_IO_K8S_VERSION)' go run hack/tools/k8smaintainer/main.go | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: tidy #HELP Run go mod tidy. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| tidy: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go mod tidy | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -210,7 +206,7 @@ generate: $(CONTROLLER_GEN) generate-mocks #EXHELP Generate code containing Deep | |||||||||||||||||||||||||||||||||||||||||||||||||
| done | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: verify | ||||||||||||||||||||||||||||||||||||||||||||||||||
| verify: k8s-pin kind-verify-versions fmt generate manifests update-tls-profiles crd-ref-docs update-registryv1-bundle-schema verify-bingo #HELP Verify all generated code is up-to-date. Runs k8s-pin instead of just tidy. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| verify: tidy kind-verify-versions fmt generate manifests update-tls-profiles crd-ref-docs update-registryv1-bundle-schema verify-bingo #HELP Verify all generated code is up-to-date. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| git diff --exit-code | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: verify-bingo | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -404,7 +400,6 @@ else | |||||||||||||||||||||||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: e2e-run-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: E2E_TIMEOUT ?= 20m | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: GODOG_ARGS ?= | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: prometheus-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ifeq ($(strip $(GODOG_ARGS)),) | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -414,11 +409,11 @@ ifeq ($(strip $(GODOG_ARGS)),) | |||||||||||||||||||||||||||||||||||||||||||||||||
| set +e; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(E2E_TIMEOUT) -args --godog.tags="~@Serial" --godog.concurrency=100; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(or $(E2E_TIMEOUT),20m) -args --godog.tags="~@Serial && ~@demo" --godog.concurrency=100; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| parallelExit=$$?; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(E2E_TIMEOUT) -args --godog.tags="@Serial" --godog.concurrency=1; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(or $(E2E_TIMEOUT),20m) -args --godog.tags="@Serial && ~@demo" --godog.concurrency=1; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| serialExit=$$?; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| if [[ $$parallelExit -ne 0 ]] || [[ $$serialExit -ne 0 ]]; then \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "e2e tests failed: parallel=$$parallelExit serial=$$serialExit"; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -429,7 +424,7 @@ else | |||||||||||||||||||||||||||||||||||||||||||||||||
| if [[ -z "$$E2E_PROMETHEUS_PORT" ]]; then echo "error: failed to extract prometheus hostPort from $(KIND_CONFIG)" >&2; exit 1; fi; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout=$(E2E_TIMEOUT) -args $(GODOG_ARGS) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout=$(or $(E2E_TIMEOUT),20m) -args $(GODOG_ARGS) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: e2e-coverage-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -697,13 +692,33 @@ deploy-docs: venv | |||||||||||||||||||||||||||||||||||||||||||||||||
| . $(VENV)/activate; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| mkdocs gh-deploy --force --strict | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| # The demo script requires to install asciinema with: brew install asciinema to run on mac os envs. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| # Please ensure that all demos are named with the demo name and the suffix -demo-script.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: update-demos #EXHELP Validate demo recordings. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @for script in hack/demo/*-demo-script.sh; do \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| nm=$$(basename $$script -script.sh); \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ./hack/demo/generate-asciidemo.sh -n $$nm $$(basename $$script); \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| DEMO_OUTPUT_DIR ?= $(ROOT_DIR)/docs/demos | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: update-demos | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: SOURCE_MANIFEST := $(EXPERIMENTAL_E2E_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export MANIFEST := $(EXPERIMENTAL_RELEASE_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export DEFAULT_CATALOG := $(CATALOGS_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export INSTALL_DEFAULT_CATALOGS := true | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export CATALOG_WAIT_TIMEOUT := 5m | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: wait-operator-controller-experimental-e2e demo-e2e demo-svg experimental-e2e-teardown #EXHELP Record demo scenarios as asciicast and SVG files. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: demo-e2e | ||||||||||||||||||||||||||||||||||||||||||||||||||
| demo-e2e: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v curl >/dev/null 2>&1 || { echo "Error: curl not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v jq >/dev/null 2>&1 || { echo "Error: jq not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @mkdir -p $(DEMO_OUTPUT_DIR) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(KUBECONFIG_DIR)/operator-controller-experimental-e2e.kubeconfig \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| DEMO_OUTPUT_DIR=$(DEMO_OUTPUT_DIR) go test -count=1 -v ./test/e2e/features_test.go -timeout 30m \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| -args --godog.tags="@demo" --godog.concurrency=1 | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: demo-svg | ||||||||||||||||||||||||||||||||||||||||||||||||||
| demo-svg: #EXHELP Convert asciicast recordings to SVG. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v docker >/dev/null 2>&1 || { echo "Error: docker not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @for cast in $(DEMO_OUTPUT_DIR)/*.cast; do \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| svg=$${cast%.cast}.svg; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Converting $$(basename $$cast) -> $$(basename $$svg)"; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| docker run --rm -v $(DEMO_OUTPUT_DIR):/data node:alpine \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| npx --yes svg-term-cli --in /data/$$(basename $$cast) --out /data/$$(basename $$svg) --window; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| done | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+714
to
722
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win Unquoted glob can fail when no If 🐛 Proposed fix using nullglob guard demo-svg: `#EXHELP` Convert asciicast recordings to SVG.
`@command` -v docker >/dev/null 2>&1 || { echo "Error: docker not found in PATH."; exit 1; }
- `@for` cast in $(DEMO_OUTPUT_DIR)/*.cast; do \
+ `@shopt` -s nullglob; \
+ casts=($(DEMO_OUTPUT_DIR)/*.cast); \
+ if [ $${`#casts`[@]} -eq 0 ]; then \
+ echo "No .cast files found in $(DEMO_OUTPUT_DIR)"; \
+ exit 0; \
+ fi; \
+ for cast in "$${casts[@]}"; do \
svg=$${cast%.cast}.svg; \
echo "Converting $$(basename $$cast) -> $$(basename $$svg)"; \
docker run --rm -v $(DEMO_OUTPUT_DIR):/data node:alpine \
npx --yes svg-term-cli --in /data/$$(basename $$cast) --out /data/$$(basename $$svg) --window; \
doneRequires bash as the recipe shell (for 📝 Committable suggestion
Suggested change
🧰 Tools🪛 checkmake (0.3.2)[warning] 719-719: Target body for "demo-svg" exceeds allowed length of 5 lines (7). (maxbodylength) [warning] 719-719: Required target "all" is missing from the Makefile. (minphony) [warning] 719-719: Required target "clean" is missing from the Makefile. (minphony) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| include Makefile.venv | ||||||||||||||||||||||||||||||||||||||||||||||||||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: openshift/operator-framework-operator-controller
Length of output: 4445
🏁 Script executed:
Repository: openshift/operator-framework-operator-controller
Length of output: 277
Make
update-demosrun sequentiallyupdate-demoslists independent prerequisites, somake -jcan startdemo-svgorexperimental-e2e-teardownbeforedemo-e2efinishes writing the.castfiles. Convert this to a recipe, or mark the target.NOTPARALLEL, so recording, conversion, and teardown happen in order.🧰 Tools
🪛 checkmake (0.3.2)
[warning] 703-703: Target "update-demos" defined multiple times (lines 702 and 703).
(uniquetargets)
[warning] 704-704: Target "update-demos" defined multiple times (lines 702 and 704).
(uniquetargets)
[warning] 705-705: Target "update-demos" defined multiple times (lines 702 and 705).
(uniquetargets)
[warning] 706-706: Target "update-demos" defined multiple times (lines 702 and 706).
(uniquetargets)
[warning] 707-707: Target "update-demos" defined multiple times (lines 702 and 707).
(uniquetargets)
🤖 Prompt for AI Agents