Skip to content

Bump internal ignition spec version to v3.6.0 and ignition/v2 dependency to 2.26.0#6236

Draft
SpaceFace02 wants to merge 2 commits into
openshift:mainfrom
SpaceFace02:bump-ignition
Draft

Bump internal ignition spec version to v3.6.0 and ignition/v2 dependency to 2.26.0#6236
SpaceFace02 wants to merge 2 commits into
openshift:mainfrom
SpaceFace02:bump-ignition

Conversation

@SpaceFace02

@SpaceFace02 SpaceFace02 commented Jun 26, 2026

Copy link
Copy Markdown

- What I did
Bump MCO's internal Ignition spec version from v3.5 to v3.6 and update the ignition/v2 dependency from v2.20.0 to v2.26.0.

  • Set InternalMCOIgnitionVersion to 3.6.0
  • Add bidirectional v3.5 <-> v3.6 conversion paths in the ignition converter
  • Rename ConvertRawExtIgnitionToV3_5 -> ConvertRawExtIgnitionToV3_6
  • Update ign3types imports from v3_5 to v3_6 across all packages
  • Update tests, bootstrap test fixtures, and server accept header handling for v3.6
    Ignition spec 3.6.0 adds:
  • Special mode bits: the mode field on files and directories now respects setuid, setgid, and sticky bits
  • Arbitrary custom Clevis pins: pin name validation is removed, enabling use of any custom Clevis pin with clevis luks bind
  • I have committed vendor changes and ignition bump changes seperately.

- How to verify it

  • go build ./... compiles successfully
  • All unit tests pass: make test-unit (one pre-existing flaky test in TestOSBuildController is unrelated)
  • New and updated tests cover v3.6 parsing, v3.5 <-> v3.6 conversion, and v3.6 accept headers

- Description for the changelog
Bump internal Ignition spec from v3.5 to v3.6, enabling support for special mode bits and arbitrary custom Clevis pins.

Summary by CodeRabbit

  • New Features

    • Added support for Ignition 3.6 across controllers, daemon logic, APIs, and test coverage.
    • Updated default Ignition version values and sample payloads to 3.6.0.
  • Bug Fixes

    • Improved version detection and conversion behavior so newer Ignition configs are handled correctly.
    • Expanded API and configuration tests to validate 3.6-compatible behavior.
  • Chores

    • Bumped several Go module dependencies to newer releases.

SpaceFace02 and others added 2 commits June 26, 2026 12:07
Update MCO's internal ignition spec from v3.5 to v3.6, add v3.5<->v3.6
conversion paths, and bump the ignition/v2 dependency to v2.26.0.

Signed-off-by: Chirag Rao <crao@redhat.com>
Co-authored-by: Fangge Jin <fjin@redhat.com>
Run go mod tidy && go mod vendor to sync the vendor directory with the
updated go.mod after bumping ignition/v2 to v2.26.0.

Signed-off-by: Chirag Rao <crao@redhat.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@SpaceFace02 SpaceFace02 marked this pull request as draft June 26, 2026 06:53
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 26, 2026
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Walkthrough

The PR updates the codebase to Ignition v3.6/3.6.0 across module pins, constants, converters, server handling, controllers, daemons, and tests.

Changes

Ignition v3.6 rollout

Layer / File(s) Summary
Module dependency pins
go.mod
Ignition-related module versions and supporting Go dependencies are updated.
Ignition default version and fixtures
pkg/controller/common/constants.go, test/extended-priv/const.go, pkg/controller/bootstrap/testdata/bootstrap/*.yaml, test/extended-priv/mco_storage.go
The default Ignition version constants and bootstrap/extended-priv fixture data now use 3.6.0.
Conversion helpers
pkg/controller/common/helpers.go, pkg/controller/common/ignition_converter.go, pkg/controller/common/helpers_test.go
RawExtension normalization, converter registration, and helper tests add Ignition v3.6 support.
Server version handling
pkg/server/api.go, pkg/server/api_test.go, pkg/server/server.go, pkg/server/cluster_server.go, pkg/server/server_test.go
Server Accept-header handling and parser tests now include Ignition 3.6.0 and fall back to v3.6.
Controller type imports
devex/cmd/mcdiff/diff.go, devex/cmd/onclustertesting/internal/legacycmds/machineconfig.go, lib/resourceapply/machineconfig_test.go, pkg/controller/bootstrap/bootstrap_test.go, pkg/controller/build/fixtures/objects.go, pkg/controller/common/reconcile.go, pkg/controller/common/reconcile_test.go, pkg/controller/container-runtime-config/*, pkg/controller/internalreleaseimage/internalreleaseimage_helpers_test.go, pkg/controller/kubelet-config/*, pkg/controller/render/render_controller_test.go, pkg/controller/template/render_test.go
Controller and tooling packages switch their Ignition imports to v3.6.
Daemon type imports
pkg/daemon/*, pkg/daemon/runtimeassets/*
Daemon code, runtime assets, and daemon tests now use v3.6 Ignition types.
E2E type imports
test/e2e-*/*, test/e2e-ocl-*/*, test/e2e-shared-tests/*, test/e2e-single-node/*, test/e2e-techpreview/*, test/helpers/*
E2E suites and shared helpers compile against v3.6 Ignition types.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested labels

jira/valid-reference

Suggested reviewers

  • djoshy
  • RishabhSaini

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 3 warnings)

Check name Status Explanation Resolution
Stable And Deterministic Test Names ❌ Error test/extended-priv/mco_storage.go has a Ginkgo title with the literal Default 3.6.0, making the name version-specific and likely to need renaming on the next bump. Rename the title to a version-agnostic description; keep any version checks inside the test body/assertions.
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ⚠️ Warning The disruptive MCO Storage Ginkgo test still hard-codes defaultIgnitionVersion="3.5.0" while the codebase now defaults to 3.6.0, so it asserts stale behavior. Change it to IgnitionDefaultVersion (or 3.6.0) so the test matches the new default and the review comment.
Microshift Test Compatibility ⚠️ Warning FAIL: the new Ginkgo suite in test/extended-priv/mco_storage.go uses openshift-machine-api MachineSet scaling and lacks any MicroShift skip/guard. Add [Skipped:MicroShift] or an exutil.IsMicroShiftCluster() guard for the suite, since MachineSet/node-scaling assumptions are unsupported on MicroShift.
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping internal Ignition to v3.6.0 and updating ignition/v2 to 2.26.0.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were introduced; the touched test files only bump Ignition versions, and SNO-focused tests remain single-node aware.
Topology-Aware Scheduling Compatibility ✅ Passed PR only bumps Ignition v3.5→v3.6 types/constants and tests; no replica, affinity, nodeSelector, toleration, or topology-spread changes.
Ote Binary Stdout Contract ✅ Passed No touched process-level entrypoints write to stdout; the only startup hooks just register flags or parse flags.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: the touched e2e tests only update Ignition versions/imports; I found no new IPv4-only parsing, localhost, or public-network assumptions in added test logic.
No-Weak-Crypto ✅ Passed Scanned the touched files: no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB or custom crypto code; the only bytes.Equal calls are plain file/test buffer comparisons, not secrets.
Container-Privileges ✅ Passed Touched files only change Ignition versions/imports; no added privileged:true, hostPID/network/IPC, CAP_SYS_ADMIN, root, or allowPrivilegeEscalation settings were found.
No-Sensitive-Data-In-Logs ✅ Passed Touched files are Ignition version bumps/imports/constants and test fixtures; I found no added or modified log statements exposing passwords/tokens/PII.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@openshift-ci openshift-ci Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jun 26, 2026
@openshift-ci

openshift-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Hi @SpaceFace02. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions 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.

@openshift-ci

openshift-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: SpaceFace02
Once this PR has been reviewed and has the lgtm label, please assign proietfb for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@SpaceFace02

Copy link
Copy Markdown
Author

/test all

@openshift-ci

openshift-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

@SpaceFace02: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

Details

In response to this:

/test all

Instructions 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.

@SpaceFace02

Copy link
Copy Markdown
Author

Pre-requisite for openshift/installer#10392

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
pkg/server/api_test.go (1)

446-447: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Keep the v3.5 handler scenario alongside the new v3.6 case.

Replacing the old v3.5 request with v3.6 drops end-to-end coverage for the still-supported compatibility path that now relies on the new v3.6 -> 3.5 conversion. Please add the v3.6 scenario without removing the existing v3.5 one.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/server/api_test.go` around lines 446 - 447, The API test case currently
replaces the existing v3.5 request with a v3.6 request, which removes coverage
for the supported compatibility path. Update the table-driven test in
api_test.go so the existing v3.5 handler scenario remains in place and add a
separate v3.6 case alongside it, using the relevant request setup helpers such
as setV3_5AcceptHeaderOnReq and setV3_6AcceptHeaderOnReq to keep both paths
covered.
pkg/controller/common/helpers_test.go (1)

200-210: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add coverage for the new 3.5 -> 3.6 conversion edge.

This table only exercises the new downgrade path (3.6 -> 3.5). A broken or missing 3.5 -> 3.6 registration in buildConverterList() would still pass here. Please add a direct 3.5 -> 3.6 case, or change one transitive case to target 3.6.0, so both new directions are covered.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/controller/common/helpers_test.go` around lines 200 - 210, The conversion
tests in helpers_test should also cover the new upgrade edge from 3.5 to 3.6,
not just the existing 3.6 to 3.5 downgrade. Add a direct table case using the
relevant input config and version pair in the conversion matrix, or retarget one
existing transitive case to 3.6.0 so buildConverterList() is validated in both
directions.
pkg/daemon/daemon_test.go (1)

13-13: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Add a v3.6-specific mode-bit test here.

TestValidateFiles still derives modes with fi.Mode().Perm(), so this upgrade only exercises the low permission bits and won't catch regressions in the new v3.6 setuid/setgid/sticky-bit support called out in the PR. Please add a case that passes one of those special bits through checkV3Files.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/daemon/daemon_test.go` at line 13, `TestValidateFiles` currently only
checks permission bits via `fi.Mode().Perm()`, so it does not cover the new v3.6
special mode bits. Add a v3.6-specific test case in `daemon_test.go` that
exercises `checkV3Files` with a mode containing one of the special bits such as
setuid, setgid, or sticky bit, using the existing `ign3types` v3.6 types to
locate the right path and validate the new behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/extended-priv/mco_storage.go`:
- Around line 284-289: Update the hard-coded default Ignition version in the OTP
deployment test to match the new default used elsewhere. In the test that
declares allVersions and defaultIgnitionVersion, change the expected value from
the old 3.5.0 default to the new default so the rendered MachineConfig assertion
in this scenario aligns with pkg/controller/common/constants.go and
test/extended-priv/const.go. Use the existing symbols allVersions and
defaultIgnitionVersion in that test to locate the change.

---

Nitpick comments:
In `@pkg/controller/common/helpers_test.go`:
- Around line 200-210: The conversion tests in helpers_test should also cover
the new upgrade edge from 3.5 to 3.6, not just the existing 3.6 to 3.5
downgrade. Add a direct table case using the relevant input config and version
pair in the conversion matrix, or retarget one existing transitive case to 3.6.0
so buildConverterList() is validated in both directions.

In `@pkg/daemon/daemon_test.go`:
- Line 13: `TestValidateFiles` currently only checks permission bits via
`fi.Mode().Perm()`, so it does not cover the new v3.6 special mode bits. Add a
v3.6-specific test case in `daemon_test.go` that exercises `checkV3Files` with a
mode containing one of the special bits such as setuid, setgid, or sticky bit,
using the existing `ign3types` v3.6 types to locate the right path and validate
the new behavior.

In `@pkg/server/api_test.go`:
- Around line 446-447: The API test case currently replaces the existing v3.5
request with a v3.6 request, which removes coverage for the supported
compatibility path. Update the table-driven test in api_test.go so the existing
v3.5 handler scenario remains in place and add a separate v3.6 case alongside
it, using the relevant request setup helpers such as setV3_5AcceptHeaderOnReq
and setV3_6AcceptHeaderOnReq to keep both paths covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d5e4b072-3679-41b9-bda1-27cd771cba25

📥 Commits

Reviewing files that changed from the base of the PR and between c3ce5f2 and d003db4.

⛔ Files ignored due to path filters (122)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/aws/aws-sdk-go-v2/LICENSE.txt is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/aws/aws-sdk-go-v2/aws/arn/arn.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/dbus/dbus.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/dbus/methods.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/dbus/subscription.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/dbus/subscription_set.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/journal/journal.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/unit/deserialize.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/unit/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/unit/option.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/go-systemd/v22/unit/serialize.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v23tov30/v23tov30.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v32tov22/v32tov22.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v32tov31/v32tov31.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v33tov32/v33tov32.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v34tov33/v34tov33.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v35tov34/v35tov34.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/translate/v36tov35/v36tov35.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ign-converter/util/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/shared/errors/errors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_4/translate/translate.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_4/types/directory.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_4/types/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_4/types/mode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_4/types/url.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_5/types/directory.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_5/types/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_5/types/mode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_5/types/url.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/config.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/translate/translate.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/cex.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/clevis.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/config.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/device.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/directory.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/disk.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/filesystem.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/headers.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/ignition.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/kargs.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/luks.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/mode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/node.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/partition.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/passwd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/proxy.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/raid.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/resource.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/schema.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/storage.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/systemd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/tang.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/tls.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/unit.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/url.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/v3_6/types/verification.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/coreos/ignition/v2/config/validate/validate.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/config.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/interceptor.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal/parse.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/metadata_supplier.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/semconv.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/stats_handler.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.37.0/rpcconv/metric.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/modfile/print.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/modfile/read.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/modfile/rule.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/module/module.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/websocket/hybi.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/term/terminal.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/time/rate/rate.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/time/rate/sometimes.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/analysis/passes/ctrlflow/ctrlflow.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/analysis/passes/printf/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/analysis/passes/printf/printf.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/analysis/passes/printf/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/astutil/imports.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/packages/packages.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ssa/create.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/typeutil/callee.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/astutil/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/core/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/label/label.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/imports/sortimports.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/modindex/lookup.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/moreiters/iters.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/refactor/delete.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/refactor/edit.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/refactor/imports.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/refactor/refactor.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/deps.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/manifest.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/stdlib.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/classify_call.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/versions/features.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/refactor/satisfy/find.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/text/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/filedesc/desc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/validate.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/version/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/proto/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/editions.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/modules.txt is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (57)
  • devex/cmd/mcdiff/diff.go
  • devex/cmd/onclustertesting/internal/legacycmds/machineconfig.go
  • go.mod
  • lib/resourceapply/machineconfig_test.go
  • pkg/controller/bootstrap/bootstrap_test.go
  • pkg/controller/bootstrap/testdata/bootstrap/99_openshift-machineconfig_master.yaml
  • pkg/controller/bootstrap/testdata/bootstrap/99_openshift-machineconfig_worker.yaml
  • pkg/controller/build/fixtures/objects.go
  • pkg/controller/common/constants.go
  • pkg/controller/common/helpers.go
  • pkg/controller/common/helpers_test.go
  • pkg/controller/common/ignition_converter.go
  • pkg/controller/common/reconcile.go
  • pkg/controller/common/reconcile_test.go
  • pkg/controller/container-runtime-config/container_runtime_config_controller.go
  • pkg/controller/container-runtime-config/container_runtime_config_controller_test.go
  • pkg/controller/container-runtime-config/helpers.go
  • pkg/controller/internalreleaseimage/internalreleaseimage_helpers_test.go
  • pkg/controller/kubelet-config/helpers.go
  • pkg/controller/kubelet-config/kubelet_config_controller.go
  • pkg/controller/kubelet-config/kubelet_config_controller_test.go
  • pkg/controller/kubelet-config/kubelet_config_features_test.go
  • pkg/controller/kubelet-config/kubelet_config_nodes_test.go
  • pkg/controller/render/render_controller_test.go
  • pkg/controller/template/render_test.go
  • pkg/daemon/config_drift_monitor.go
  • pkg/daemon/config_drift_monitor_test.go
  • pkg/daemon/daemon.go
  • pkg/daemon/daemon_test.go
  • pkg/daemon/drain.go
  • pkg/daemon/drain_test.go
  • pkg/daemon/file_writers.go
  • pkg/daemon/on_disk_validation.go
  • pkg/daemon/pinned_image_set.go
  • pkg/daemon/runtimeassets/revertservice.go
  • pkg/daemon/runtimeassets/revertservice_test.go
  • pkg/daemon/runtimeassets/runtimeassets.go
  • pkg/daemon/update.go
  • pkg/daemon/update_test.go
  • pkg/server/api.go
  • pkg/server/api_test.go
  • pkg/server/cluster_server.go
  • pkg/server/server.go
  • pkg/server/server_test.go
  • test/e2e-1of2/mcd_test.go
  • test/e2e-2of2/mcc_test.go
  • test/e2e-2of2/nodedisrupt_test.go
  • test/e2e-2of2/osimageurl_override_test.go
  • test/e2e-ocl-2of2/onclusterlayering_test.go
  • test/e2e-ocl-shared/helpers.go
  • test/e2e-shared-tests/mcd_config_drift.go
  • test/e2e-single-node/sno_mcd_test.go
  • test/e2e-techpreview/osimagestreamrender_test.go
  • test/extended-priv/const.go
  • test/extended-priv/mco_storage.go
  • test/helpers/helpers.go
  • test/helpers/utils.go

Comment on lines +284 to 289
g.It("[PolarionID:63477][OTP] Deploy files using all available ignition configs. Default 3.6.0[Disruptive]", func() {
var (
wMcp = NewMachineConfigPool(oc.AsAdmin(), MachineConfigPoolWorker)
mcNames = "mc-tc-63477"
allVersions = []string{"2.2.0", "3.0.0", "3.1.0", "3.2.0", "3.3.0", "3.4.0", "3.5.0"}
allVersions = []string{"2.2.0", "3.0.0", "3.1.0", "3.2.0", "3.3.0", "3.4.0", "3.5.0", "3.6.0"}
defaultIgnitionVersion = "3.5.0" // default version is 3.5.0 for OCP > 4.19

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update the expected default Ignition version here too.

Line 289 still hard-codes "3.5.0", so this test now contradicts both its own title and the new defaults in pkg/controller/common/constants.go and test/extended-priv/const.go. That leaves the rendered-MC assertion checking the pre-upgrade value.

Suggested fix
-		defaultIgnitionVersion = "3.5.0" // default version is 3.5.0 for OCP > 4.19
+		defaultIgnitionVersion = IgnitionDefaultVersion
📝 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
g.It("[PolarionID:63477][OTP] Deploy files using all available ignition configs. Default 3.6.0[Disruptive]", func() {
var (
wMcp = NewMachineConfigPool(oc.AsAdmin(), MachineConfigPoolWorker)
mcNames = "mc-tc-63477"
allVersions = []string{"2.2.0", "3.0.0", "3.1.0", "3.2.0", "3.3.0", "3.4.0", "3.5.0"}
allVersions = []string{"2.2.0", "3.0.0", "3.1.0", "3.2.0", "3.3.0", "3.4.0", "3.5.0", "3.6.0"}
defaultIgnitionVersion = "3.5.0" // default version is 3.5.0 for OCP > 4.19
g.It("[PolarionID:63477][OTP] Deploy files using all available ignition configs. Default 3.6.0[Disruptive]", func() {
var (
wMcp = NewMachineConfigPool(oc.AsAdmin(), MachineConfigPoolWorker)
mcNames = "mc-tc-63477"
allVersions = []string{"2.2.0", "3.0.0", "3.1.0", "3.2.0", "3.3.0", "3.4.0", "3.5.0", "3.6.0"}
defaultIgnitionVersion = IgnitionDefaultVersion
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/extended-priv/mco_storage.go` around lines 284 - 289, Update the
hard-coded default Ignition version in the OTP deployment test to match the new
default used elsewhere. In the test that declares allVersions and
defaultIgnitionVersion, change the expected value from the old 3.5.0 default to
the new default so the rendered MachineConfig assertion in this scenario aligns
with pkg/controller/common/constants.go and test/extended-priv/const.go. Use the
existing symbols allVersions and defaultIgnitionVersion in that test to locate
the change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant