Introduce machineconfiguration types
With the introduction of the MCO API to the greater openshift/api, we created the machineconfiguration type which is unused.
This PR serves as a sibling to openshift/api#1596 in that: as that PR tracks upgrade-progression this PR tracks MCO component progression outside of upgrades.
In this PR I will be introducing a ProgressionHistory and ProgressionCondition tracking mechanism that for each CR in the MCO (MachineConfigController, MachineConfigOperator, MachineConfigDaemon) will track the progress of the component and the objects it modifies
MostRecentState is a 1:1 mapping of objects->an event meaning that only one entry for an object can exist at a time per each component of the MCO.
ProgressionHistory tracks the last ~20 events for the given component. An example MachineConfiguration as well as The output of oc get machineconfigurations will look as follows
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfiguration
metadata:
name: machineconfigcontroller
labels:
"component.operator.machineconfiguration.openshift.io/controller": ""
spec:
component: controller
mode: in-cluster
Using this structure allows for ease of understanding both in oc describe as well as oc get where I will add additional printer columns that will outline the operator state like the following:
$ oc get machineconfiguration
NAME HEALTH PROGRESS OBJECT OBJECTTYPE ACTION ERROR
machineconfigcontroller Healthy SyncingMCC worker MachineConfigPool UpdatingStatus
machineconfigdaemon Healthy SyncingMCD ip-10-0-21-151.ec2.internal Node ApplyingAnnotations
machineconfigoperator Healthy OperatorSyncController machine-config-controller ControllerConfig Updating Certs in controller config
Hello @cdoern! Some important instructions when contributing to openshift/api: API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: cdoern Once this PR has been reviewed and has the lgtm label, please assign soltysh for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
PR needs rebase.
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.
@cdoern: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:
| Test name | Commit | Details | Required | Rerun command |
|---|---|---|---|---|
| ci/prow/integration | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test integration |
| ci/prow/e2e-aws-serial | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-serial |
| ci/prow/e2e-upgrade | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-upgrade |
| ci/prow/e2e-aws-ovn | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-ovn |
| ci/prow/e2e-aws-ovn-techpreview | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-ovn-techpreview |
| ci/prow/e2e-aws-serial-techpreview | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-serial-techpreview |
| ci/prow/e2e-upgrade-minor | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-upgrade-minor |
Full PR test history. Your PR dashboard.
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. I understand the commands that are listed here.
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
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
@cdoern: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:
| Test name | Commit | Details | Required | Rerun command |
|---|---|---|---|---|
| ci/prow/integration | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test integration |
| ci/prow/e2e-aws-serial-techpreview | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-serial-techpreview |
| ci/prow/e2e-aws-serial | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-serial |
| ci/prow/e2e-upgrade-minor | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-upgrade-minor |
| ci/prow/e2e-aws-ovn-techpreview | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-ovn-techpreview |
| ci/prow/e2e-upgrade | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-upgrade |
| ci/prow/e2e-aws-ovn-hypershift | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-ovn-hypershift |
| ci/prow/e2e-aws-ovn | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test e2e-aws-ovn |
| ci/prow/minor-e2e-upgrade-minor | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test minor-e2e-upgrade-minor |
| ci/prow/minor-images | dd2e31858ceaf52fe0d78c30427f73fe41909daa | link | true | /test minor-images |
Full PR test history. Your PR dashboard.
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. I understand the commands that are listed here.
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-bot: Closed this PR.
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-sigs/prow repository.