Skip to content

Windows Containers productization design - #5

Merged
openshift-merge-robot merged 1 commit into
openshift:masterfrom
aravindhp:winc-productization
Sep 18, 2019
Merged

Windows Containers productization design#5
openshift-merge-robot merged 1 commit into
openshift:masterfrom
aravindhp:winc-productization

Conversation

@aravindhp

Copy link
Copy Markdown
Contributor

Initial enhancement proposal for productization of Windows Containers that will enable running of Windows workloads on an OpenShift cluster.

@openshift-ci-robot openshift-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Sep 3, 2019
@aravindhp

Copy link
Copy Markdown
Contributor Author

@sdodson sdodson left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm for 4.3, provides flexibility to adapt in the future

Comment thread windows-containers/productization.md Outdated
Comment thread windows-containers/productization.md
Comment thread windows-containers/productization.md Outdated
Comment thread windows-containers/productization.md
@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 6, 2019
@aravindhp
aravindhp force-pushed the winc-productization branch 2 times, most recently from aa75653 to ae78830 Compare September 9, 2019 19:41
Comment thread windows-containers/productization.md Outdated
Comment thread windows-containers/productization.md Outdated
## Summary

The intent of this enhancement is to allow a cluster administrator to add a
Windows worker node with a prescribed configuration to an OpenShift cluster as a

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: s/worker/compute/, e.g. see the old openshift/installer#1330. Overhauling existing wording it hard, but no reason new stuff can't use the new wording :).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I will make that change in all places. So is it compute Ignition or worker Ignition?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Unless the machineconfigpool is changing to compute I think we should leave this as is.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@sdodson is your comment against s/worker/compute/ or just the Ignition case?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

just in relation to Ignition

Comment thread windows-containers/productization.md Outdated
### Goals

As part of this enhancement we plan to do the following:
* Prepare an already provisioned Windows worker node to join the cluster

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Clarify the boundary between things the end-user does (just create a machine running Windows) and things Red Hat (tooling) does (install a kubelet, etc. etc.)? Currently that's all swept into "provision" and "Prepare". Maybe something like:

As part of this enhancement we plan to provide workflows for installing and upgrading OpenShift compute components (kubelet, OVN, and the Windows Machine Config Bootstrapper) on user-provided Windows machines. It will be up to the cluster administrator to initiate both installs and upgrades.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I will go with your suggestion.

Comment thread windows-containers/productization.md Outdated

The inputs that the WMCB requires are:
* kubelet location on the local disk
* Worker ignition location on the local disk

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: s/ignition/Ignition/

We plan to have all the repositories associated with this effort fully
integrated with Prow CI and run e2e tests for every PR that is opened. These
e2e tests will involve bringing up a cluster on all supported cloud providers,
instantiating a Windows node and running workloads on it. We also plan to add

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't cover upgrade/downgrade testing. Probably call that out specifically and say whether or not you plan on covering it in CI.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We are not planning on covering upgrade/downgrade testing using CI in the 4.3 timeframe. I will mention that.

Comment thread windows-containers/productization.md Outdated

### Version Skew Strategy

We plan to maintain kubelet major version parity with the Linux counterpart.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You'll have to have skew during upgrades across the boundary though. Maybe say something about having CI coverage when we get to that point so you can ensure that at least some Windows kubelets will successfully handle lagging by one major version behind the rest of the cluster. Or say that before a major bump folks might have to drain/wipe their Windows compute and re-attach them as fresh compute after the major bump?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We are planning on advising the customer to exactly what is done in the BYO RHEL scenario i.e. drain the Windows compute nodes using the Ansible playbook. I will add a line about that.

Initial enhancement proposal for productization of Windows Containers
that will enable running of Windows workloads on an OpenShift cluster.
@aravindhp

Copy link
Copy Markdown
Contributor Author

@wking I have addressed your comments. Please take a look.

@ravisantoshgudimetla

Copy link
Copy Markdown
Contributor

@crawford - Can you LGTM the PR?

@sdodson

sdodson commented Sep 18, 2019

Copy link
Copy Markdown
Member

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 18, 2019
@openshift-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aravindhp, crawford, sdodson

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

The pull request process is described 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

@openshift-merge-robot
openshift-merge-robot merged commit f796b93 into openshift:master Sep 18, 2019

The actions that the WMCB will perform are:
* Install / upgrade and configure the kubelet
* Parse the worker Ignition and extract the bootstrap kubeconfig and the

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

kubelet configuration varies for linux versus windows hosts, this has to be a separate pool.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's only used for the cluster coordinates and bootstrapping credentials.

openshift-merge-robot pushed a commit that referenced this pull request Oct 18, 2021
English mistake: sums up => adds up
cgwalters pushed a commit to cgwalters/enhancements that referenced this pull request Oct 19, 2021
Updates for master -> main branch renamings
jaypoulz pushed a commit to jaypoulz/enhancements that referenced this pull request Feb 26, 2025
OCPEDGE-1458: Addressing post-architecture review feedback
gcs278 added a commit to gcs278/enhancements that referenced this pull request Feb 6, 2026
- Enhance motivation section and shorten summary
- Remove downgrade from goals, move day 0 installation to non-goals
- Add goal to preserve user-facing Gateway API experience
- Clarify upgrade migration, drift, and image sourcing wording
- Add Hypershift and OKE notes
- Update maintenance/testing burden in drawbacks
- Remove "Loss of OLM Benefits" drawback
- Move Istio CRD management question from openshift#5 to openshift#2
- Update feature gate and downgrade section wording
openshift-merge-bot Bot pushed a commit that referenced this pull request Feb 9, 2026
* NE-2470: Gateway API without OLM

Adds enhancements/ingress/gateway-api-without-olm.md for installing
Gateway API support without OLM dependency.

This enhancement transitions cluster-ingress-operator from creating an
OLM Subscription to installing istiod directly using Helm charts and
sail-operator libraries. This eliminates the OLM dependency, avoids
conflicts with existing OSSM subscriptions, enables Gateway API on
clusters without OLM/Marketplace capabilities, and allows faster
Gateway API releases independent of OLM release cycles.

* NE-2470: Gateway API without OLM

Address code review feedback and update enhancement for consistency.

- Add platform feature language and layered product user story
- Add goals for simplified testing/releases and lifecycle management
- Add Component Versioning section and upgrade workflows
- Add CRD mapping/reasoning for layered products
- Add Resource Drift risk and webhook questions
- Update test scenarios for upgrade validation
- Fix wording inconsistencies throughout document

* NE-2470: Gateway API without OLM

Add pre-release testing details and custom image sources non-goal.

- Add subsection on testing pre-releases of OSSM
- Clarify custom image sources and mirroring are out of scope

* NE-2470: Gateway API without OLM

- Clarify workflow titles to be trigger-based on Gateway API installation state
- Add Alternative 3: CIO manages sail-operator deployment directly
- Update Open Questions with answers for CRD handling and webhook management
- Add risk for future sail-operator feature requirements
- Add drawback for pre-release testing workflow complexity
- Update migration detection to only check for Istio CR
- Add migration timeline note

* NE-2470: Gateway API without OLM

- Add PeerAuthentication to managed Istio CRDs for Kuadrant mTLS
- Update CRD descriptions with RHOAI requirements
- Add goals: reduce resource overhead and enable OKE support
- Add alternative for using existing sail libraries without enhancements
- Add risk about sail-operator library dependency coordination

* NE-2470: Gateway API without OLM

- Clarify CRDs are for north/south ingress use cases that work without service mesh
- Remove PeerAuthentication (requires service mesh)
- Add note that OSSM team will provide library functions for CRD management

* NE-2470: Gateway API without OLM

- Move CRD Management to Open Questions
- Add Tech Preview feature gate graduation path for 4.22

* NE-2470: Gateway API without OLM

- Add support procedures to satisfy markdownlint job
- Replace vague "lifecycle management" with "reduce component dependencies"
- Add note explaining "Helm-based" vs "OLM-based" terminology

* Address Miciah's review comments

- Enhance motivation section and shorten summary
- Remove downgrade from goals, move day 0 installation to non-goals
- Add goal to preserve user-facing Gateway API experience
- Clarify upgrade migration, drift, and image sourcing wording
- Add Hypershift and OKE notes
- Update maintenance/testing burden in drawbacks
- Remove "Loss of OLM Benefits" drawback
- Move Istio CRD management question from #5 to #2
- Update feature gate and downgrade section wording
openshift-merge-bot Bot pushed a commit that referenced this pull request Mar 17, 2026
devguyio added a commit to devguyio/enhancements that referenced this pull request Jul 14, 2026
Per Alberto's direction, KMS key validation should live in the storage
stack, not in HCCO. The aws-ebs-csi-driver-operator in openshift/csi-operator
already uses the AWS SDK v2 for volume tagging with IRSA credentials —
a new EBSKMSKeyValidationController follows the same pattern.

Changes:
- Validation probe moves from HCCO to csi-operator's EBS driver package
- Probe runs continuously (not day-1-only), resolving stale-condition concern
- Condition chain: ClusterCSIDriver.status -> HCCO reads -> HCP -> HC
- IAM permissions updated: add kms:Encrypt for validation (4 total)
- Cross-repo dependency documented (openshift/csi-operator + openshift/hypershift)
- Remove StorageClassState conflation (adversarial review finding openshift#2)
- Fix stale condition issue (adversarial review finding openshift#5)
devguyio-agent-smith Bot pushed a commit to devguyio-agentic/enhancements that referenced this pull request Jul 14, 2026
Per Alberto's direction, KMS key validation should live in the storage
stack, not in HCCO. The aws-ebs-csi-driver-operator in openshift/csi-operator
already uses the AWS SDK v2 for volume tagging with IRSA credentials —
a new EBSKMSKeyValidationController follows the same pattern.

Changes:
- Validation probe moves from HCCO to csi-operator's EBS driver package
- Probe runs continuously (not day-1-only), resolving stale-condition concern
- Condition chain: ClusterCSIDriver.status -> HCCO reads -> HCP -> HC
- IAM permissions updated: add kms:Encrypt for validation (4 total)
- Cross-repo dependency documented (openshift/csi-operator + openshift/hypershift)
- Remove StorageClassState conflation (adversarial review finding openshift#2)
- Fix stale condition issue (adversarial review finding openshift#5)
Neilhamza added a commit to Neilhamza/enhancements that referenced this pull request Sep 3, 2026
- Replace simple root-ownership check with full trusted-path rule: resolve
  symlinks, check every ancestor, final object, and directory contents for
  root ownership and no group/other write permission
- Add Non-Goal openshift#5: protection against root users is out of scope
- Add Non-Goal openshift#3 clarification: MicroShift validates ownership/permissions
  but not semantic contents
- Extend validation section with symlink resolution rationale (ostree/bootc
  layouts depend on symlinks)
- Add risk entry for TOCTOU with mitigation (root-only can modify root-owned)
- Add Alternatives: "checking only final directory" and "rejecting symlinks"
- Expand unit tests: ancestor checks, contents checks, symlink cases, injected
  stat function note
- Expand integration tests: unsafe binary, unsafe config file, unsafe ancestor
- Update Drawbacks to reference trusted-path rule instead of permissions check
- Upgrade/Downgrade: explain why lenient fallback is safe for all pre-feature
  versions and add Y-1 upgrade test reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants