Uploaded image for project: 'Machine Config Operator'
  1. Machine Config Operator
  2. MCO-993

Create CRD and types for MachineOSBuilder in openshift/api


    • Icon: Story Story
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • None
    • None
    • MCO Sprint 250, MCO Sprint 251, MCO Sprint 252
    • 0
    • 0.0

      The current OCB approach is a private MCO only API. making a public API would introduce the following benefits:

      1. Transparent update information linked with the proposed MachineOSUpdater API
      2. Follow the MCO migration to openshift/api. We should not have private APIs anymore in the MCO. Especially if the feature is publicly used.
      3. Consolidate build information into one place that both the MCO and other users can pull from

      the general proposal of changes here are as follows:

      1. Move global build settings to ControllerConfig object or to this object. These include `finalImagePushSecret` and `finalImagePullspec`
      2. create MachineOSBuild CRD which will included Dockerfile field, MachineConfig to build from etc.
      3. Add these fields to MCP as well. Rather than thinking of this as two sources of truth, you can view the MCP fields as triggers to create or modify an existing MachineOSBuild object. This is similar to the mechanism that OpenShift BuildV1 uses with its BuildConfigs and Builds CRDs; the BuildConfig houses all of the necessary configs and a new Build is created with those configs. One does not need a BuildConfig to do a build, but one can use a BuildConfig to launch multiple builds.

      Making these changes will enforce a system for builds rather than the appendage that the build API is currently to the MCO. The aim here is visibility rather than hidden operations.

            cdoern@redhat.com Charles Doern
            cdoern@redhat.com Charles Doern
            0 Vote for this issue
            3 Start watching this issue