Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/openshift-apiserver
/_output
.idea
/openshift-apiserver-tests-ext
/test/extended/tests-extension/bin/
12 changes: 5 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ IMAGE_REGISTRY?=registry.svc.ci.openshift.org
# OpenShift Tests Extension (OpenShift API Server)
# -------------------------------------------------------------------
TESTS_EXT_BINARY := openshift-apiserver-tests-ext
TESTS_EXT_DIR := ./test/extended/tests-extension
TESTS_EXT_OUTPUT := $(TESTS_EXT_DIR)/$(TESTS_EXT_BINARY)
TESTS_EXT_PACKAGE := ./cmd/openshift-apiserver-tests-ext

TESTS_EXT_GIT_COMMIT := $(shell git rev-parse --short HEAD)
Expand Down Expand Up @@ -59,15 +61,11 @@ verify:
# -------------------------------------------------------------------
.PHONY: tests-ext-build
tests-ext-build:
GOOS=$(GOOS) GOARCH=$(GOARCH) GO_COMPLIANCE_POLICY=exempt_all CGO_ENABLED=0 \
go build -o $(TESTS_EXT_BINARY) -ldflags "$(TESTS_EXT_LDFLAGS)" $(TESTS_EXT_PACKAGE)
$(MAKE) -C $(TESTS_EXT_DIR) build

# -------------------------------------------------------------------
# Run "update" and strip env-specific metadata
# -------------------------------------------------------------------
.PHONY: tests-ext-update
tests-ext-update: tests-ext-build
./$(TESTS_EXT_BINARY) update
for f in .openshift-tests-extension/*.json; do \
jq 'map(del(.codeLocations))' "$f" > tmpp && mv tmpp "$f"; \
done
tests-ext-update:
$(MAKE) -C $(TESTS_EXT_DIR) build-update
5 changes: 0 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,8 @@ require (
github.com/google/gofuzz v1.2.0
github.com/hashicorp/golang-lru v0.5.4
github.com/jteeuwen/go-bindata v3.0.8-0.20151023091102-a0ff2567cfb7+incompatible
github.com/onsi/ginkgo/v2 v2.23.4
github.com/onsi/gomega v1.38.0
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.1
github.com/openshift-eng/openshift-tests-extension v0.0.0-20250804142706-7b3ab438a292
github.com/openshift/api v0.0.0-20250820105013-6282350d0c39
github.com/openshift/apiserver-library-go v0.0.0-20250710132015-f0d44ef6e53b
github.com/openshift/build-machinery-go v0.0.0-20250806130835-622c0378eb0d
Expand Down Expand Up @@ -81,7 +78,6 @@ require (
github.com/go-openapi/jsonpointer v0.21.1 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.1 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
Expand Down Expand Up @@ -194,7 +190,6 @@ require (
replace (
github.com/distribution/distribution/v3 => github.com/openshift/docker-distribution/v3 v3.0.0-20240215131201-6b2f5d2f1f43
github.com/docker/docker => github.com/openshift/moby-moby v0.0.0-20190308215630-da810a85109d
github.com/onsi/ginkgo/v2 => github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20241205171354-8006f302fd12 // This replace is required for we use the OCP fork of Ginkgo
k8s.io/api => k8s.io/api v0.33.3
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.3
k8s.io/apimachinery => k8s.io/apimachinery v0.33.3
Expand Down
10 changes: 4 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,10 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/onsi/gomega v1.38.0 h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
github.com/onsi/gomega v1.38.0/go.mod h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
Expand All @@ -250,8 +252,6 @@ github.com/opencontainers/runc v1.2.1 h1:mQkmeFSUxqFaVmvIn1VQPeQIKpHFya5R07aJw0D
github.com/opencontainers/runc v1.2.1/go.mod h1:/PXzF0h531HTMsYQnmxXkBD7YaGShm/2zcRB79dksUc=
github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/openshift-eng/openshift-tests-extension v0.0.0-20250804142706-7b3ab438a292 h1:3athg6KQ+TaNfW4BWZDlGFt1ImSZEJWgzXtPC1VPITI=
github.com/openshift-eng/openshift-tests-extension v0.0.0-20250804142706-7b3ab438a292/go.mod h1:6gkP5f2HL0meusT0Aim8icAspcD1cG055xxBZ9yC68M=
github.com/openshift/api v0.0.0-20250820105013-6282350d0c39 h1:X42iTyo3AAHS36BkiBkU8FvxfK8NEDmnBi3QrnaCIlA=
github.com/openshift/api v0.0.0-20250820105013-6282350d0c39/go.mod h1:SPLf21TYPipzCO67BURkCfK6dcIIxx0oNRVWaOyRcXM=
github.com/openshift/apiserver-library-go v0.0.0-20250710132015-f0d44ef6e53b h1:rIfs2f1zo9GLyxk6tak2bHzX01VTz6Xheay2NECfZpg=
Expand All @@ -268,8 +268,6 @@ github.com/openshift/library-go v0.0.0-20250818065802-cf8518058622 h1:IUs2XpDgkC
github.com/openshift/library-go v0.0.0-20250818065802-cf8518058622/go.mod h1:tptKNust9MdRI0p90DoBSPHIrBa9oh+Rok59tF0vT8c=
github.com/openshift/moby-moby v0.0.0-20190308215630-da810a85109d h1:fLITXDjxMSvUDjnXs/zljIWktbST9+Om8XbrmmM7T4I=
github.com/openshift/moby-moby v0.0.0-20190308215630-da810a85109d/go.mod h1:LJM49W8fBVSj+rvcopJZu9mgH5Tx6HwLHySIYeGeu4k=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20241205171354-8006f302fd12 h1:AKx/w1qpS8We43bsRgf8Nll3CGlDHpr/WAXvuedTNZI=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20241205171354-8006f302fd12/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b h1:oXzC1N6E9gw76/WH2gEA8GEHvuq09wuVQ9GoCuR8GF4=
github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b/go.mod h1:l9/qeKZuAmYUMl0yicJlbkPGDsIycGhwxOvOAWyaP0E=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
Expand Down
4 changes: 2 additions & 2 deletions images/Dockerfile.rhel
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ WORKDIR /go/src/github.com/openshift/openshift-apiserver
COPY . .
RUN make build --warn-undefined-variables \
&& make tests-ext-build \
&& gzip openshift-apiserver-tests-ext
&& gzip test/extended/tests-extension/bin/openshift-apiserver-tests-ext

FROM registry.ci.openshift.org/ocp/4.21:base-rhel9
COPY --from=builder /go/src/github.com/openshift/openshift-apiserver/openshift-apiserver /usr/bin/
COPY --from=builder /go/src/github.com/openshift/openshift-apiserver/openshift-apiserver-tests-ext.gz /usr/bin/
COPY --from=builder /go/src/github.com/openshift/openshift-apiserver/test/extended/tests-extension/bin/openshift-apiserver-tests-ext.gz /usr/bin/
ENTRYPOINT ["/usr/bin/openshift-apiserver"]
LABEL io.k8s.display-name="OpenShift API Server Command" \
io.k8s.description="OpenShift is a platform for developing, building, and deploying containerized applications." \
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"name": "[Jira:openshift-apiserver][sig-api-machinery] sanity test should always pass [Suite:openshift/openshift-apiserver/conformance/parallel]",
"labels": {},
"resources": {
"isolation": {}
},
"source": "openshift:payload:openshift-apiserver",
"lifecycle": "blocking",
"environmentSelector": {}
},
{
"name": "[Jira:openshift-apiserver][sig-api-machinery][openshift-apiserver][encryption] Force encryption key rotation for etcd datastore should rotate keys and update encryption prefixes [Slow][Serial][Disruptive][Suite:openshift/openshift-apiserver/conformance/serial]",
"labels": {},
"resources": {
"isolation": {}
},
"source": "openshift:payload:openshift-apiserver",
"lifecycle": "blocking",
"environmentSelector": {}
}
]
75 changes: 75 additions & 0 deletions test/extended/tests-extension/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Get the directory where this Makefile is, so we can use it below for including
DIR := $(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))))

# Definitions for the extended tests
GO_PKG_NAME := github.com/openshift-eng/openshift-tests-extension

GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo 'unknown')
BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
GIT_TREE_STATE := $(shell if git rev-parse --git-dir > /dev/null 2>&1; then if git diff --quiet; then echo clean; else echo dirty; fi; else echo unknown; fi)

LDFLAGS := -X '$(GO_PKG_NAME)/pkg/version.CommitFromGit=$(GIT_COMMIT)' \
-X '$(GO_PKG_NAME)/pkg/version.BuildDate=$(BUILD_DATE)' \
-X '$(GO_PKG_NAME)/pkg/version.GitTreeState=$(GIT_TREE_STATE)'

METADATA := $(shell pwd)/.openshift-tests-extension

TOOLS_BIN_DIR := $(CURDIR)/bin
BINARY_NAME := openshift-apiserver-tests-ext

.PHONY: help
help: #HELP Display essential help.
@awk 'BEGIN {FS = ":[^#]*#HELP"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\n"} /^[a-zA-Z_0-9-]+:.*#HELP / { printf " \033[36m%-17s\033[0m %s\n", $$1, $$2 } ' $(MAKEFILE_LIST)

#SECTION Development
.PHONY: verify #HELP To verify the code
verify: tidy fmt vet

.PHONY: tidy #HELP Run go mod tidy.
tidy:
go mod tidy

.PHONY: fmt
fmt: #HELP Run go fmt against code.
go fmt ./...

.PHONY: vet
vet: #HELP Run go vet against code.
go vet ./...

.PHONY: build
build: #HELP Build the extended tests binary
@mkdir -p $(TOOLS_BIN_DIR)
GO_COMPLIANCE_POLICY="exempt_all" CGO_ENABLED=0 go build -mod=mod -ldflags "$(LDFLAGS)" -o $(TOOLS_BIN_DIR)/$(BINARY_NAME) ./cmd/...

.PHONY: update-metadata
update-metadata: build #HELP Build and run 'update-metadata' to generate test metadata
$(TOOLS_BIN_DIR)/$(BINARY_NAME) update
$(MAKE) clean-metadata

.PHONY: build-update
build-update: build update-metadata #HELP Build and update metadata and sanitize output

.PHONY: clean
clean: #HELP Remove build artifacts
rm -rf $(TOOLS_BIN_DIR)

#SECTION Metadata

.PHONY: list-test-names
list-test-names: build #HELP Show current full test names
@$(TOOLS_BIN_DIR)/$(BINARY_NAME) list -o names

.PHONY: clean-metadata
clean-metadata: #HELP Remove 'codeLocations' from metadata JSON
@echo "Cleaning metadata (removing codeLocations)..."
@for f in $(METADATA)/*.json; do \
jq 'map(del(.codeLocations))' "$$f" > "$$f.tmp" && mv "$$f.tmp" "$$f"; \
done
Comment on lines +63 to +68
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Handle empty metadata glob to avoid jq errors.

The loop over $(METADATA)/*.json will fail if no JSON files exist—the glob expands to a literal string when there are no matches, causing jq to fail. Add a guard to skip non-existent files.

Apply this diff to handle the empty glob case:

 .PHONY: clean-metadata
 clean-metadata: #HELP Remove 'codeLocations' from metadata JSON
 	@echo "Cleaning metadata (removing codeLocations)..."
-	@for f in $(METADATA)/*.json; do \
+	@for f in $(METADATA)/*.json; do \
+		[ -e "$$f" ] || continue; \
 		jq 'map(del(.codeLocations))' "$$f" > "$$f.tmp" && mv "$$f.tmp" "$$f"; \
 	done
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.PHONY: clean-metadata
clean-metadata: #HELP Remove 'codeLocations' from metadata JSON
@echo "Cleaning metadata (removing codeLocations)..."
@for f in $(METADATA)/*.json; do \
jq 'map(del(.codeLocations))' "$$f" > "$$f.tmp" && mv "$$f.tmp" "$$f"; \
done
.PHONY: clean-metadata
clean-metadata: #HELP Remove 'codeLocations' from metadata JSON
@echo "Cleaning metadata (removing codeLocations)..."
@for f in $(METADATA)/*.json; do \
[ -e "$$f" ] || continue; \
jq 'map(del(.codeLocations))' "$$f" > "$$f.tmp" && mv "$$f.tmp" "$$f"; \
done
🤖 Prompt for AI Agents
In test/extended/tests-extension/Makefile around lines 63 to 68, the for-loop
over $(METADATA)/*.json fails when the glob matches nothing because the literal
pattern is processed by jq; fix by adding a guard inside the loop to skip
non-existent files (e.g. test -f "$$f" || continue) before invoking jq so the
loop silently ignores the pattern when there are no JSON files.


.PHONY: verify-metadata #HELP To verify that the metadata was properly updated
verify-metadata: update-metadata
@if ! git diff --exit-code $(METADATA); then \
echo "ERROR: Metadata is out of date. Please run 'make build-update' and commit the result."; \
exit 1; \
fi
Comment on lines +70 to +75
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix absolute path in git diff check.

The verify-metadata target uses $(METADATA) in the git diff command, but METADATA is defined as $(shell pwd)/.openshift-tests-extension (line 15), which produces an absolute path. Git diff expects a relative path from the repository root, so this check will likely fail.

Apply this diff to use a relative path:

 .PHONY: verify-metadata #HELP To verify that the metadata was properly updated
 verify-metadata: update-metadata
-	@if ! git diff --exit-code $(METADATA); then \
+	@if ! git diff --exit-code .openshift-tests-extension; then \
 		echo "ERROR: Metadata is out of date. Please run 'make build-update' and commit the result."; \
 		exit 1; \
 	fi

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 checkmake (0.2.2)

[warning] 70-70: Missing required phony target "all"

(minphony)


[warning] 70-70: Missing required phony target "test"

(minphony)

🤖 Prompt for AI Agents
In test/extended/tests-extension/Makefile around lines 70 to 75, the git diff in
the verify-metadata target uses the absolute $(METADATA) (defined as $(shell
pwd)/.openshift-tests-extension), which makes git diff fail; change the check to
use a repository-relative path by replacing $(METADATA) with the relative
filename (.openshift-tests-extension) or use a Make variable that strips the
absolute prefix such as REL_METADATA := $(notdir $(METADATA)) and then call git
diff --exit-code $(REL_METADATA) so the diff is run against a path relative to
the repo root.

57 changes: 41 additions & 16 deletions test/extended/README.md → test/extended/tests-extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ They use the framework: https://github.com/openshift-eng/openshift-tests-extensi
| Command | Description |
|----------------------------------------------------------------------------|--------------------------------------------------------------------------|
| `make tests-ext-build` | Builds the test extension binary. |
| `./openshift-apiserver-tests-ext list` | Lists all available test cases. |
| `./openshift-apiserver-tests-ext run-suite <suite-name>` | Runs a test suite. e.g., `openshift/openshift-apiserver/conformance/parallel` |
| `./openshift-apiserver-tests-ext run <test-name>` | Runs one specific test. |
| `test/extended/tests-extension/bin/openshift-apiserver-tests-ext list` | Lists all available test cases. |
| `test/extended/tests-extension/bin/openshift-apiserver-tests-ext run-suite <suite-name>` | Runs a test suite. e.g., `openshift/openshift-apiserver/conformance/parallel` |
| `test/extended/tests-extension/bin/openshift-apiserver-tests-ext run <test-name>` | Runs one specific test. |


## How to Run the Tests Locally
Expand All @@ -22,7 +22,7 @@ Use the environment variable `KUBECONFIG` to point to your cluster configuration

```shell
export KUBECONFIG=path/to/kubeconfig
./openshift-apiserver-tests-ext run <test-name>
test/extended/tests-extension/bin/openshift-apiserver-tests-ext run <test-name>
```

### Local Test using OCP
Expand All @@ -48,25 +48,50 @@ export KUBECONFIG=~/.kube/cluster-bot.kubeconfig

**Example:**
```shell
./openshift-apiserver-tests-ext run-suite openshift/openshift-apiserver/all
test/extended/tests-extension/bin/openshift-apiserver-tests-ext run-suite openshift/openshift-apiserver/all
```

## Writing Tests

You can write tests in the `test/extended/` directory.
You can write tests in the `test/extended/tests-extension/` directory.

### Test Module Structure

This test extension uses a **separate Go module** to isolate test dependencies from the production operator code:

```
test/extended/tests-extension/
├── go.mod # Separate module with test dependencies
├── go.sum
├── Makefile # Build targets for test binary
├── bin/ # Built test binaries (gitignored)
│ └── openshift-apiserver-tests-ext
├── cmd/openshift-apiserver-tests-ext/
│ └── main.go # Test binary entry point
├── apiserver/ # Test packages
│ ├── encryption.go
│ └── util.go
└── main.go # Additional test suites
```

**Key Benefits:**
- Production `go.mod` remains clean (no ginkgo, gomega, test framework dependencies)
- Test dependencies are isolated in `test/extended/tests-extension/go.mod`
- Prevents dependency version conflicts between operator and test framework

## Development Workflow

- Add or update tests in: `test/extended/`
- Run `make build` to build the operator binary and `make tests-ext-build` for the test binary.
- You can run the full suite or one test using the commands in the table above.
- Add or update tests in: `test/extended/tests-extension/`
- When adding new test dependencies, run `go mod tidy` from within `test/extended/tests-extension/`
- Run `make build` to build the operator binary and `make tests-ext-build` for the test binary
- You can run the full suite or one test using the commands in the table above
- Before committing your changes:
- Run `make tests-ext-update`
- Run `make tests-ext-update` to update test metadata
- Run `make verify` to check formatting, linting, and validation

## How to Rename a Test

1. Run `./openshift-apiserver-tests-ext list` to see the current test names
1. Run `test/extended/tests-extension/bin/openshift-apiserver-tests-ext list` to see the current test names
2. Find the name of the test you want to rename
3. Add a Ginkgo label with the original name, like this:

Expand All @@ -84,16 +109,16 @@ It("should pass a renamed sanity check",

## How to Delete a Test

1. Run `./openshift-apiserver-tests-ext list` to find the test name
2. Add the test name to the `IgnoreObsoleteTests` block in `cmd/openshift-apiserver-tests-ext/main.go`, like this:
1. Run `test/extended/tests-extension/bin/openshift-apiserver-tests-ext list` to find the test name
2. Add the test name to the `IgnoreObsoleteTests` block in `test/extended/tests-extension/cmd/openshift-apiserver-tests-ext/main.go`, like this:

```go
ext.IgnoreObsoleteTests(
"[sig-openshift-apiserver] My removed test name",
)
```

3. Delete the test code from your suite.
3. Delete the test code from your suite
4. Run `make tests-ext-update` to clean the metadata

**WARNING**: Deleting a test may cause issues with Sippy https://sippy.dptools.openshift.org/sippy-ng/
Expand Down Expand Up @@ -136,11 +161,11 @@ More info: https://docs.ci.openshift.org/docs/architecture/ci-operator/#testing-
| Target | Description |
|--------------------------|------------------------------------------------------------------------------|
| `make build` | Builds the operator binary. |
| `make tests-ext-build` | Builds the test extension binary. |
| `make tests-ext-build` | Builds the test extension binary into `test/extended/tests-extension/bin/`. |
| `make tests-ext-update` | Updates the metadata JSON file and cleans machine-specific codeLocations. |
| `make verify` | Runs formatting, vet, and linter. |

**Note:** Metadata is stored in: `.openshift-tests-extension/openshift_payload_openshift-apiserver.json`
**Note:** Metadata is stored in: `test/extended/tests-extension/.openshift-tests-extension/openshift_payload_openshift-apiserver.json`

## FAQ

Expand Down
Loading