MCCUpgrade resource

This section describes the MCCUpgrade resource used in Mirantis Container Cloud API to configure a schedule for the Container Cloud update.

The Container Cloud MCCUpgrade CR contains the following fields:

  • apiVersion

    API version of the object that is kaas.mirantis.com/v1alpha1.

  • kind

    Object type that is MCCUpgrade.

  • metadata

    The metadata object field of the MCCUpgrade resource contains the following fields:

    • name

      The name of MCCUpgrade object, must be mcc-upgrade.

  • spec

    The spec object field of the MCCUpgrade resource contains the schedule when Container Cloud update is allowed or blocked. This field contains the following fields:

    • blockUntil

      Deprecated since Container Cloud 2.28.0 (Cluster release 16.3.0). Use autoDelay instead.

      Time stamp in the ISO 8601 format, for example, 2021-12-31T12:30:00-05:00. Updates will be disabled until this time. You cannot set this field to more than 7 days in the future and more than 30 days after the latest Container Cloud release.

    • autoDelay

      Available since Container Cloud 2.28.0 (Cluster release 16.3.0).

      Flag that enables delay of the management cluster auto-update to a new Container Cloud release and ensures that auto-update is not started immediately on the release date. Boolean, false by default.

      The delay period is minimum 20 days for each newly discovered release and depends on specifics of each release cycle and on optional configuration of week days and hours selected for update. You can verify the exact date of a scheduled auto-update in the status section of the MCCUpgrade object.

      Note

      Modifying the delay period is not supported.

    • timeZone

      Name of a time zone in the IANA Time Zone Database. This time zone will be used for all schedule calculations. For example: Europe/Samara, CET, America/Los_Angeles.

    • schedule

      List of schedule items that allow an update at specific hours or weekdays. The update process can proceed if at least one of these items allows it. Schedule items allow update when both hours and weekdays conditions are met. When this list is empty or absent, update is allowed at any hour of any day. Every schedule item contains the following fields:

      • hours

        Object with 2 fields: from and to. Both must be non-negative integers not greater than 24. The to field must be greater than the from one. Update is allowed if the current hour in the time zone specified by timeZone is greater or equals to from and is less than to. If hours is absent, update is allowed at any hour.

      • weekdays

        Object with boolean fields with these names:

        • monday

        • tuesday

        • wednesday

        • thursday

        • friday

        • saturday

        • sunday

        Update is allowed only on weekdays that have the corresponding field set to true. If all fields are false or absent, or weekdays is empty or absent, update is allowed on all weekdays.

    Full spec example:

    spec:
      autoDelay: true
      timeZone: CET
      schedule:
      - hours:
          from: 10
          to: 17
        weekdays:
          monday: true
          tuesday: true
      - hours:
          from: 7
          to: 10
        weekdays:
          monday: true
          friday: true
    

    In this example, all schedule calculations are done in the CET timezone and upgrades are allowed only:

    • From 7:00 to 17:00 on Mondays

    • From 10:00 to 17:00 on Tuesdays

    • From 7:00 to 10:00 on Fridays

  • status

    The status object field of the MCCUpgrade resource contains information about the next planned Container Cloud update, if available. This field contains the following fields:

    • nextAttempt Deprecated since 2.28.0 (Cluster release 16.3.0)

      Time stamp in the ISO 8601 format indicating the time when the Release Controller will attempt to discover and install a new Container Cloud release. Set to the next allowed time according to the schedule configured in spec or one minute in the future if the schedule currently allows update.

    • message Deprecated since 2.28.0 (Cluster release 16.3.0)

      Message from the last update step or attempt.

    • nextRelease

      Object describing the next release that Container Cloud will be updated to. Absent if no new releases have been discovered. Contains the following fields:

      • version

        Semver-compatible version of the next Container Cloud release, for example, 2.22.0.

      • date

        Time stamp in the ISO 8601 format of the Container Cloud release defined in version:

        • Since 2.28.0 (Cluster release 16.3.0), the field indicates the publish time stamp of a new release.

        • Before 2.28.0 (Cluster release 16.2.x or earlier), the field indicates the discovery time stamp of a new release.

      • scheduled

        Available since Container Cloud 2.28.0 (Cluster release 16.3.0). Time window that the pending Container Cloud release update is scheduled for:

        • startTime

          Time stamp in the ISO 8601 format indicating the start time of the update for the pending Container Cloud release.

        • endTime

          Time stamp in the ISO 8601 format indicating the end time of the update for the pending Container Cloud release.

    • lastUpgrade

      Time stamps of the latest Container Cloud update:

      • startedAt

        Time stamp in the ISO 8601 format indicating the time when the last Container Cloud update started.

      • finishedAt

        Time stamp in the ISO 8601 format indicating the time when the last Container Cloud update finished.

    • conditions

      Available since Container Cloud 2.28.0 (Cluster release 16.3.0). List of status conditions describing the status of the MCCUpgrade resource. Each condition has the following format:

      • type

        Condition type representing a particular aspect of the MCCUpgrade object. Currently, the only supported condition type is Ready that defines readiness to process a new release.

        If the status field of the Ready condition type is False, the Release Controller blocks the start of update operations.

      • status

        Condition status. Possible values: True, False, Unknown.

      • reason

        Machine-readable explanation of the condition.

      • lastTransitionTime

        Time of the latest condition transition.

      • message

        Human-readable description of the condition.

Example of MCCUpgrade status:

status:
  conditions:
  - lastTransitionTime: "2024-09-16T13:22:27Z"
    message: New release scheduled for upgrade
    reason: ReleaseScheduled
    status: "True"
    type: Ready
  lastUpgrade: {}
  message: ''
  nextAttempt: "2024-09-16T13:23:27Z"
  nextRelease:
    date: "2024-08-25T21:05:46Z"
    scheduled:
      endTime: "2024-09-17T00:00:00Z"
      startTime: "2024-09-16T00:00:00Z"
    version: 2.28.0