Skip to content

Introduce MachineStateController, MachineConfigNode, and MachineConfiguration#3970

Closed
cdoern wants to merge 3 commits intoopenshift:masterfrom
cdoern:machineconfiguration
Closed

Introduce MachineStateController, MachineConfigNode, and MachineConfiguration#3970
cdoern wants to merge 3 commits intoopenshift:masterfrom
cdoern:machineconfiguration

Conversation

@cdoern
Copy link
Copy Markdown
Contributor

@cdoern cdoern commented Oct 12, 2023

This PR introduces the MachineStateController, which is the MCO's attempt to centralize state reporting. This controller focuses on reporting upgrade progressions and operator component progressions.

These two things are accomplished thorough the introduction of two new API Types:

  1. MachineConfigNode
  • Deals with Upgrade Progression
  • One object per node
  1. MachineConfiguration
  • Deal with operator component progression (MCC, MCD, MCO)
  • One Object per pod of the installed MCO.

This information is retrievable via oc get machineconfignodes and oc get machineconfiguration respectively.

The way we formulate this data in the MSC is through what I like to call "investigative state reporting". This entails looking at all data that could influence what state we are in, and use that to stitch together an accurate picture of what is going on. This allows the MCO to have it state reporting in a centralized location and also allows us significantly less API load. The other approach is to update these objects throughout the MCO whenever anything happens which ends up increasing API usage by a lot.

This state reporting is meant to provide the MCO team and customers with all possibly important info about the MCO's activities and is designed to have more features plugged into it in the future! The cool thing about centralization and a fairly modular system is that adding a new state is only a couple of extra lines of code/dependencies vs modifying data all over the MCO.

@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 Oct 12, 2023
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Oct 12, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Oct 12, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cdoern

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-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 12, 2023
@cdoern cdoern force-pushed the machineconfiguration branch 3 times, most recently from c12dc85 to 968053c Compare October 17, 2023 18:03
Comment thread pkg/operator/bootstrap.go
Copy link
Copy Markdown
Contributor

@inesqyx inesqyx Oct 17, 2023

Choose a reason for hiding this comment

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

Manifests shall be taken out as we no longer have these yaml files:
mcc.machinestate.yaml
mcd.machinestate.yaml
upgrade.worker.machinestate.yaml
upgrade.master.machinestate.yaml
operator.machinestate.yaml
metrics.machinestate.yaml
bootstrap.machinestate.yaml

@cdoern cdoern changed the title Introduce MachineStateController, MachineConfigState, and MachineConfiguration Introduce MachineStateController, MachineConfigNode and MachineConfiguration Oct 18, 2023
@cdoern cdoern changed the title Introduce MachineStateController, MachineConfigNode and MachineConfiguration Introduce MachineStateController, MachineConfigNodem and MachineConfiguration Oct 18, 2023
@cdoern cdoern changed the title Introduce MachineStateController, MachineConfigNodem and MachineConfiguration Introduce MachineStateController, MachineConfigNode, and MachineConfiguration Oct 18, 2023
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 19, 2023
inesqyx and others added 3 commits October 24, 2023 11:38
Signed-off-by: Charlie Doern <cdoern@redhat.com>
Signed-off-by: Charlie Doern <cdoern@redhat.com>
@cdoern cdoern force-pushed the machineconfiguration branch from 968053c to 5e3c8fb Compare October 24, 2023 17:46
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 24, 2023
@openshift-bot
Copy link
Copy Markdown
Contributor

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci Bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 23, 2024
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 23, 2024
@openshift-merge-robot
Copy link
Copy Markdown
Contributor

PR needs rebase.

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/test-infra repository.

@openshift-bot
Copy link
Copy Markdown
Contributor

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci Bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Feb 23, 2024
@openshift-bot
Copy link
Copy Markdown
Contributor

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci Bot closed this Mar 24, 2024
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 24, 2024

@openshift-bot: Closed this PR.

Details

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

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/test-infra repository.

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. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants