OCPBUGS-114375: azure: skip AppendVarPartition when DiskSetup provides a user-defined /var mount - #10818
Conversation
…/var On Azure, the installer unconditionally creates a /var partition on the boot disk to avoid the CoreOS growfs step (OCPBUGS-43625). When a user configures a UserDefined DiskSetup with mountPath=/var, this collides with the auto-generated partition, causing ignition to fail with conflicting partition/filesystem/unit definitions. Skip AppendVarPartition when the control plane DiskSetup already has a UserDefined entry claiming /var. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@mfbonfigli: This pull request references Jira Issue OCPBUGS-114375, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughAzure master ignition generation now avoids adding a duplicate ChangesAzure /var partition handling
Estimated code review effort: 2 (Simple) | ~15 minutes Merge Risk: ⚪ Minimal · up to This localized change prevents an automatically generated /var partition from conflicting with a user-defined /var mount while preserving existing behavior for other configurations; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 14 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (14 passed)
Full details: Stable And Deterministic Test NamesExplanation PASS: The changed tests use Go Full details: Test Structure And QualityExplanation PASS: The changed tests use Go's Full details: Microshift Test CompatibilityExplanation PASS: The pull request adds a standard Go unit test, Full details: Single Node Openshift (Sno) Test CompatibilityExplanation PASS: The pull request adds a standard Go unit test, Full details: Topology-Aware Scheduling CompatibilityExplanation PASS: The pull request changes only Azure master Ignition partition generation and its tests. The diff adds no deployment manifests, operators, controllers, replica logic, affinity, topology spread constraints, node selectors, tolerations, or PDBs. It introduces no topology scheduling constraint covered by this check. Full details: Ote Binary Stdout ContractExplanation PASS: The pull request changes only Full details: Ipv6 And Disconnected Network Test CompatibilityExplanation PASS: The pull request adds a standard Go Full details: No-Weak-CryptoExplanation PASS. The pull request adds only Azure Full details: Container-PrivilegesExplanation PASS: The pull request changes only Go source and tests for Azure Ignition Full details: No-Sensitive-Data-In-LogsExplanation PASS: The pull request adds only a static
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 golangci-lint (2.12.2)Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions Comment |
|
/lgtm |
|
Scheduling tests matching the |
|
/jira refresh |
|
@mfbonfigli: This pull request references Jira Issue OCPBUGS-114375, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
/test verify-vendor |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: tthvo The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/test e2e-azure-ovn |
|
/test okd-scos-images |
|
@mfbonfigli: The following test failed, say
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
On Azure, the installer unconditionally creates a
/varpartition on the boot disk. When a user configures aUserDefinedDiskSetup entry withmountPath: /var, this collides with the auto-generated partition, causing ignition to fail with conflicting partition.This PR adds a guard in
Master.Generate()that checks whether any control planeDiskSetupentry of typeUserDefinedalready claims/varas its mount path. If so,AppendVarPartitionis skipped.Changes
pkg/asset/ignition/machine/master.go: CheckControlPlane.DiskSetupfor aUserDefinedentry withMountPath == "/var"before callingAppendVarPartitionpkg/asset/ignition/machine/master_test.go: Add 3 test cases covering: Azure without DiskSetup (appends/var), Azure with/varUserDefined DiskSetup (skips), Azure with non-/varDiskSetup like etcd (still appends). Also migrated deprecatedk8s.io/utils/pointer→k8s.io/utils/ptrSummary by CodeRabbit
/varmounts./varpartition when no user-managed/vardisk is configured./varsetup when only other disks, such as an etcd disk, are defined.