Conversation
- Move cmd/extension to test/e2e/cmd/extension - Remove test/e2e from go.work (make it independent) - Remove test/e2e references from main go.mod - Update Makefile to build extension with GOWORK=off - test/e2e module now operates independently from main module Single-Module Strategy ensures test/e2e is completely self-contained, simplifying dependency management and avoiding workspace mode issues. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove test/e2e module dependencies from main repository vendor directory. With Single-Module Strategy, test/e2e manages its own dependencies independently. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Move the OpenShift Tests Extension (OTE) module back to the e2e directory at repository root, as it was originally located before the Single-Module Strategy conversion. Updated: - Directory: test/e2e → e2e - Makefile: extension and e2e targets - hack/test.sh: path detection logic Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Update the e2e module to use the correct import path after moving from test/e2e to e2e, and configure make targets to use the OTE extension binary for running tests. Changes: - Update module name: test/e2e → e2e in go.mod - Update all import paths in test files - Update cmd/extension/main.go import path - Update Makefile: make e2e now uses extension binary - Keep *_tests.go naming (required for OTE import mechanism) The *_tests.go naming (plural) is required because: - *_test.go files are only compiled during 'go test', cannot be imported - OTE extension needs to import the package to register tests - *_tests.go files are regular Go files that can be imported Both make e2e and make ote-test now use the extension binary, ensuring consistent behavior with the OTE framework. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Update hack/vendor.sh to exclude the e2e module from workspace processing, as it uses Single-Module Strategy with GOWORK=off. Changes: - Remove e2e from module tidy loop - Remove e2e from module verify loop - Remove 'go work use -r .' which auto-discovers all modules - Add comment explaining e2e exclusion This prevents e2e dependencies from being vendored into the main repository's vendor directory. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add -mod=readonly flag to extension build to prevent Go from checking the main repository's vendor directory, which doesn't contain e2e module dependencies. This fixes CI build errors like: "is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt" The -mod=readonly flag ensures: - e2e dependencies are loaded from module cache, not vendor/ - go.mod/go.sum are not modified during build - Build is reproducible in CI environment Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis pull request introduces a new OpenTelemetry E2E test framework for the cluster CAPI operator. The changes add test infrastructure files, update the Makefile to support extension binary building and test execution, modify the Docker build to include the extension binary, adjust the test script to handle E2E test mode separately, update module workspace handling, and provide comprehensive test documentation. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 golangci-lint (2.5.0)Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (5)
hack/vendor.sh (1)
10-10: Avoid duplicating the module list across loops.Line 10 and Line 19 hardcode the same modules twice; this can drift and cause inconsistent tidy/verify behavior.
♻️ Suggested refactor
+modules=(. manifests-gen hack/tools) + # Tidy all modules in the workspace echo "Running go mod tidy for all modules..." # Note: e2e is excluded from workspace (uses Single-Module Strategy with GOWORK=off) -for module in . manifests-gen hack/tools; do +for module in "${modules[@]}"; do if [ -f "$module/go.mod" ]; then echo "Tidying $module" (cd "$module" && go mod tidy) @@ # Verify all modules echo "Verifying all modules..." -for module in . manifests-gen hack/tools; do +for module in "${modules[@]}"; do if [ -f "$module/go.mod" ]; then echo "Verifying $module" (cd "$module" && go mod verify)Also applies to: 19-19
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@hack/vendor.sh` at line 10, The module list is duplicated in the two for-loops (the literal ". manifests-gen hack/tools"); extract that list into a single variable (e.g., MODULES) at the top of the script and replace each "for module in . manifests-gen hack/tools; do" occurrence with "for module in $MODULES; do" so both loops (the one starting at the shown for and the other at the second similar for) iterate the same centralized value; update any comments and ensure MODULES is quoted/space-separated appropriately.RUN_OTE_TESTS.md (1)
211-217: Add language specifier to fenced code blocks.The output format examples lack language specifiers. Adding
textorplaintextsatisfies markdown linting and improves rendering consistency.📝 Suggested fix
### Default output -``` +```text Running Suite: Cluster CAPI Operator E2E SuiteApply similarly to lines 220 and 229.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@RUN_OTE_TESTS.md` around lines 211 - 217, Add a language specifier (e.g., text or plaintext) to the fenced code blocks in RUN_OTE_TESTS.md that show the test output examples (the blocks starting with "Running Suite: Cluster CAPI Operator E2E Suite" and the subsequent output examples) so they read ```text instead of ```; update all three example fences to include the specifier to satisfy markdown linting and improve rendering consistency.e2e/fixtures.go (1)
14-14: Minor: Comment path doesn't match actual structure.The comment says
test/e2e/fixtures/{elem...}but based on the file location (e2e/fixtures.go), the actual path would bee2e/fixtures/{elem...}.📝 Suggested fix
- // Build path: test/e2e/fixtures/{elem...} + // Build path: e2e/fixtures/{elem...}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@e2e/fixtures.go` at line 14, Update the inline comment string "// Build path: test/e2e/fixtures/{elem...}" to match the actual structure by changing "test/e2e/fixtures/{elem...}" to "e2e/fixtures/{elem...}" so the build path comment in e2e/fixtures.go accurately reflects the repository layout.hack/test.sh (1)
48-54: Redundant conditional: both branches produce identical result.The
if/elseblock setsARTIFACT_DIR_ARGto the same value ("${ARTIFACT_DIR}") in both branches. This appears to be scaffolding for future differentiation or leftover from refactoring.♻️ Suggested simplification
- # For e2e mode, artifact dir needs to be relative to e2e or absolute - if [ "$E2E_MODE" = true ]; then - ARTIFACT_DIR_ARG="${ARTIFACT_DIR}" - else - ARTIFACT_DIR_ARG="${ARTIFACT_DIR}" - fi + ARTIFACT_DIR_ARG="${ARTIFACT_DIR}"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@hack/test.sh` around lines 48 - 54, The if/else that sets ARTIFACT_DIR_ARG based on E2E_MODE is redundant because both branches assign ARTIFACT_DIR; remove the conditional and directly set ARTIFACT_DIR_ARG="${ARTIFACT_DIR}" before appending to GINKGO_ARGS, keeping the subsequent GINKGO_ARGS="${GINKGO_ARGS} --cover --coverprofile=test-unit-coverage.out --output-dir=${ARTIFACT_DIR_ARG}" line unchanged; update or remove any comments about e2e-specific behavior if no longer applicable.Makefile (1)
32-32: Consider whetherextensionshould be part of the defaultbuildtarget.The
extensionbinary is a test tool (E2E test runner), but it's now built as part of the mainbuildtarget alongside production binaries. This may increase build times unnecessarily for development workflows that don't need E2E tests.If this is intentional (e.g., for CI image builds), this is fine. Otherwise, consider removing it from
builddependencies.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Makefile` at line 32, The build target currently depends on the test tool binary "extension", which makes the main "build" target compile E2E test code and slows local development; remove "extension" from the dependency list for the "build" target (or replace with a new CI-specific target like "build-ci" that includes "extension") and add a separate phony target (e.g., "build-e2e" or "extension") to build the test runner when needed; update Makefile targets "build", the new CI/extension target, and any CI scripts that expect "extension" to be built so CI still builds it.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@e2e/cmd/extension/main.go`:
- Around line 14-21: The current main() incorrectly calls ginkgo.RunSpecs() with
ginkgo.GinkgoT(); move the suite entry into a proper Go test function instead:
create a Test function (e.g., TestClusterCAPIOperatorE2E(t *testing.T)) that
calls gomega.RegisterFailHandler(ginkgo.Fail) and ginkgo.RunSpecs(t, "Cluster
CAPI Operator E2E Suite"), remove or stop using ginkgo.RunSpecs/ginkgo.GinkgoT
from main(), and ensure main() is not used to drive Ginkgo v2 suites (or remove
main entirely and build/run as a test binary).
In `@RUN_OTE_TESTS.md`:
- Around line 145-148: The comment claiming "Stop after 3 test failures" is
misleading because the flags shown (--ginkgo.fail-on-pending and
--ginkgo.flake-attempts=3) do not implement that behavior; update the
documentation to either (a) correct the description to explain that
--ginkgo.flake-attempts=3 retries failures up to 3 times and
--ginkgo.fail-on-pending fails on pending specs, or (b) replace the example with
the correct flag (--ginkgo.fail-fast) if you intend to stop on the first
failure; mention the exact flags (--ginkgo.fail-on-pending,
--ginkgo.flake-attempts, --ginkgo.fail-fast) so the maintainer can locate and
edit the example accordingly.
---
Nitpick comments:
In `@e2e/fixtures.go`:
- Line 14: Update the inline comment string "// Build path:
test/e2e/fixtures/{elem...}" to match the actual structure by changing
"test/e2e/fixtures/{elem...}" to "e2e/fixtures/{elem...}" so the build path
comment in e2e/fixtures.go accurately reflects the repository layout.
In `@hack/test.sh`:
- Around line 48-54: The if/else that sets ARTIFACT_DIR_ARG based on E2E_MODE is
redundant because both branches assign ARTIFACT_DIR; remove the conditional and
directly set ARTIFACT_DIR_ARG="${ARTIFACT_DIR}" before appending to GINKGO_ARGS,
keeping the subsequent GINKGO_ARGS="${GINKGO_ARGS} --cover
--coverprofile=test-unit-coverage.out --output-dir=${ARTIFACT_DIR_ARG}" line
unchanged; update or remove any comments about e2e-specific behavior if no
longer applicable.
In `@hack/vendor.sh`:
- Line 10: The module list is duplicated in the two for-loops (the literal ".
manifests-gen hack/tools"); extract that list into a single variable (e.g.,
MODULES) at the top of the script and replace each "for module in .
manifests-gen hack/tools; do" occurrence with "for module in $MODULES; do" so
both loops (the one starting at the shown for and the other at the second
similar for) iterate the same centralized value; update any comments and ensure
MODULES is quoted/space-separated appropriately.
In `@Makefile`:
- Line 32: The build target currently depends on the test tool binary
"extension", which makes the main "build" target compile E2E test code and slows
local development; remove "extension" from the dependency list for the "build"
target (or replace with a new CI-specific target like "build-ci" that includes
"extension") and add a separate phony target (e.g., "build-e2e" or "extension")
to build the test runner when needed; update Makefile targets "build", the new
CI/extension target, and any CI scripts that expect "extension" to be built so
CI still builds it.
In `@RUN_OTE_TESTS.md`:
- Around line 211-217: Add a language specifier (e.g., text or plaintext) to the
fenced code blocks in RUN_OTE_TESTS.md that show the test output examples (the
blocks starting with "Running Suite: Cluster CAPI Operator E2E Suite" and the
subsequent output examples) so they read ```text instead of ```; update all
three example fences to include the specifier to satisfy markdown linting and
improve rendering consistency.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: fa4575fd-16d5-4e06-8f13-3675238cfb0b
⛔ Files ignored due to path filters (279)
go.sumis excluded by!**/*.sumgo.workis excluded by!**/*.workgo.work.sumis excluded by!**/*.sumvendor/github.com/aws/aws-sdk-go/LICENSE.txtis excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/NOTICE.txtis excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/auth/bearer/token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awserr/error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awserr/types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/client/client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/client/logger.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/context_1_5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/context_1_9.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/context_sleep.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/convert_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/corehandlers/awsinternal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/example.iniis excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/sso_cached_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/token_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/enable.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/metric.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/logger.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/handlers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/http_request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request_context.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/retryer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/validation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/request/waiter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/credentials.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/env_config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/session.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/url.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/url_1_7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/aws/version.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/ast.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/expression.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/ini.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/statement.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/walker.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config_resolve_home_go1.12.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/strings/strings.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/build.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/host.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/payload.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/customizations.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ec2/waiters.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/kms/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/kms/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/kms/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/kms/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sso/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sso/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sso/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sso/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ssooidc/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ssooidc/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ssooidc/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/ssooidc/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/customizations.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/service.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/go-cmp/cmp/cmpopts/equate.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/go-cmp/cmp/cmpopts/sort.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/go-cmp/cmp/cmpopts/xform.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/NOTICEis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/astnodetype_string.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/functions.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/interpreter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/lexer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/parser.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/toktype_string.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/jmespath/go-jmespath/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/baremetalhost_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/baremetalhost_validation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/baremetalhost_webhook.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/bmceventsubscription_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/bmceventsubscription_validation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/bmceventsubscription_webhook.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/firmwareschema_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/groupversion_info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/hardwaredata_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/hostfirmwaresettings_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/preprovisioningimage_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1/zz_generated.deepcopy.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/access.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/credentials.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/ibmc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/idrac.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/idrac_virtualmedia.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/ilo4.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/ilo5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/ipmi.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/irmc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/redfish.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/metal3-io/baremetal-operator/pkg/hardwareutils/bmc/redfish_virtualmedia.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/aws_client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/capi_machines.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/capi_machinesets.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/cluster.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/clusterautoscalers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/daemonset.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/deployment.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/framework.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/gatherer/data-gatherer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/gatherer/oc-cli.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/gcp_client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/ginkgo-labels.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/jobs.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/machinehealthcheck.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/machines.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/machinesets.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/nodes.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/pods.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/proxies.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/services.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/pkg/framework/webhooks.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/testutils/resourcebuilder/apps/v1/daemonset.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/testutils/resourcebuilder/cluster-api/core/v1beta1/cluster.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/testutils/resourcebuilder/cluster-api/core/v1beta1/machine.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-actuator-pkg/testutils/resourcebuilder/cluster-api/core/v1beta1/machineset.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/pkg/apis/baremetal/v1alpha1/baremetalmachineproviderspec_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/pkg/apis/baremetal/v1alpha1/baremetalmachineproviderstatus_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/pkg/apis/baremetal/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/pkg/apis/baremetal/v1alpha1/register.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-api-provider-baremetal/pkg/apis/baremetal/v1alpha1/zz_generated.deepcopy.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/cluster-autoscaler-operator/LICENSEis excluded by!**/vendor/**,!vendor/**
📒 Files selected for processing (21)
Dockerfile.rhelMakefileRUN_OTE_TESTS.mde2e/aws_tests.goe2e/azure_tests.goe2e/baremetal_tests.goe2e/cmd/extension/main.goe2e/doc.goe2e/e2e_tests.goe2e/fixtures.goe2e/gcp_tests.goe2e/machine_migration_capi_authoritative_tests.goe2e/machine_migration_mapi_authoritative_tests.goe2e/machineset_migration_capi_authoritative_tests.goe2e/machineset_migration_mapi_authoritative_tests.goe2e/openstack_tests.goe2e/powervs_tests.goe2e/vsphere_tests.gogo.modhack/test.shhack/vendor.sh
💤 Files with no reviewable changes (1)
- go.mod
| func main() { | ||
| flag.Parse() | ||
| gomega.RegisterFailHandler(ginkgo.Fail) | ||
|
|
||
| success := ginkgo.RunSpecs(ginkgo.GinkgoT(), "Cluster CAPI Operator E2E Suite") | ||
| if !success { | ||
| os.Exit(1) | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Ginkgo v2 RunSpecs standalone binary GinkgoT usage pattern
💡 Result:
RunSpecs + “standalone binary” (precompiled suite) pattern (Ginkgo v2)
- Keep the normal suite entrypoint (still required):
func TestMySuite(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "My Suite")
}RunSpecs is the Ginkgo spec-runner entrypoint and is intended to be called from a TestX(t *testing.T) function. [2]
- Build a standalone
*.testbinary and run it:
ginkgo build ./path/to/suite
# produces: package-name.test
./package-name.test # run directly
# or
ginkgo package-name.test # run via ginkgoFor parallel execution of a precompiled suite, invoke it via the CLI:
ginkgo -p ./path/to/suite.test[1]
GinkgoT() usage pattern (why/when/how)
Use GinkgoT() inside your specs when a third-party library wants something *testing.T-like (or accepts it via an interface), e.g. gomock/testify:
var _ = Describe("Consumer", func() {
var ctrl *gomock.Controller
BeforeEach(func() {
ctrl = gomock.NewController(GinkgoT())
})
It("does stuff", func() {
// ...
})
})Ginkgo documents GinkgoT() specifically for plugging Ginkgo specs into libraries that expect *testing.T behavior; it also supports Cleanup() semantics (so gomock can auto-register Finish()), and for testing.TB you should use GinkgoTB(). [3]
🏁 Script executed:
find . -name "go.mod" -type f | head -5Repository: openshift/cluster-capi-operator
Length of output: 139
🏁 Script executed:
cat ./e2e/go.mod | grep -i ginkgoRepository: openshift/cluster-capi-operator
Length of output: 109
🏁 Script executed:
cat ./go.mod | grep -i ginkgoRepository: openshift/cluster-capi-operator
Length of output: 197
🏁 Script executed:
head -20 e2e/cmd/extension/main.goRepository: openshift/cluster-capi-operator
Length of output: 445
Incorrect usage of ginkgo.RunSpecs() and ginkgo.GinkgoT() in standalone binary.
According to Ginkgo v2 documentation, RunSpecs() must be called from a TestX(t *testing.T) function, not from main(). Additionally, GinkgoT() is intended exclusively for use inside test specs to pass to libraries that expect *testing.T (e.g., gomock), not as an argument to RunSpecs().
For a standalone test binary entry point, either:
- Create a proper test function:
func TestMySuite(t *testing.T) { RegisterFailHandler(Fail); RunSpecs(t, "...") } - Use
ginkgo build ./path/to/suiteto produce a.testbinary and run it directly or via the Ginkgo CLI
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@e2e/cmd/extension/main.go` around lines 14 - 21, The current main()
incorrectly calls ginkgo.RunSpecs() with ginkgo.GinkgoT(); move the suite entry
into a proper Go test function instead: create a Test function (e.g.,
TestClusterCAPIOperatorE2E(t *testing.T)) that calls
gomega.RegisterFailHandler(ginkgo.Fail) and ginkgo.RunSpecs(t, "Cluster CAPI
Operator E2E Suite"), remove or stop using ginkgo.RunSpecs/ginkgo.GinkgoT from
main(), and ensure main() is not used to drive Ginkgo v2 suites (or remove main
entirely and build/run as a test binary).
|
|
||
| # Stop after 3 test failures | ||
| ./bin/extension --ginkgo.fail-on-pending --ginkgo.flake-attempts=3 | ||
| ``` |
There was a problem hiding this comment.
Misleading description: options don't match the stated behavior.
The comment says "Stop after 3 test failures" but:
--ginkgo.fail-on-pendingcauses the suite to fail if there are pending specs, not after N failures--ginkgo.flake-attempts=3retries failed tests up to 3 times before marking them as failed
To stop after the first failure, --ginkgo.fail-fast (shown above) is correct. Consider revising or removing this example.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@RUN_OTE_TESTS.md` around lines 145 - 148, The comment claiming "Stop after 3
test failures" is misleading because the flags shown (--ginkgo.fail-on-pending
and --ginkgo.flake-attempts=3) do not implement that behavior; update the
documentation to either (a) correct the description to explain that
--ginkgo.flake-attempts=3 retries failures up to 3 times and
--ginkgo.fail-on-pending fails on pending specs, or (b) replace the example with
the correct flag (--ginkgo.fail-fast) if you intend to stop on the first
failure; mention the exact flags (--ginkgo.fail-on-pending,
--ginkgo.flake-attempts, --ginkgo.fail-fast) so the maintainer can locate and
edit the example accordingly.
|
/test e2e-aws-capi-techpreview |
|
@huali9: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary by CodeRabbit
New Features
extension,ote-test,ote-test-dry-run).Documentation
Chores