apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: brupop-bottlerocket-aws/root-certificate name: bottlerocketshadows.brupop.bottlerocket.aws spec: conversion: strategy: Webhook webhook: clientConfig: service: name: brupop-apiserver namespace: brupop-bottlerocket-aws path: /crdconvert port: 443 conversionReviewVersions: - v2 - v1 group: brupop.bottlerocket.aws names: kind: BottlerocketShadow plural: bottlerocketshadows shortNames: - brs singular: bottlerocketshadow scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.current_state name: State type: string - jsonPath: .status.current_version name: Version type: string - jsonPath: .spec.state name: Target State type: string - jsonPath: .spec.version name: Target Version type: string - jsonPath: .status.crash_count name: Crash Count type: string name: v2 schema: openAPIV3Schema: description: Auto-generated derived type for BottlerocketShadowSpec via `CustomResource` properties: spec: description: The `BottlerocketShadowSpec` can be used to drive a node through the update state machine. A node linearly drives towards the desired state. The brupop controller updates the spec to specify a node's desired state, and the host agent drives state changes forward and updates the `BottlerocketShadowStatus`. properties: state: description: Records the desired state of the `BottlerocketShadow` enum: - Idle - StagedAndPerformedUpdate - RebootedIntoUpdate - MonitoringUpdate - ErrorReset type: string state_transition_timestamp: description: The time at which the most recent state was set as the desired state. nullable: true type: string version: description: The desired update version, if any. nullable: true pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string required: - state type: object status: description: '`BottlerocketShadowStatus` surfaces the current state of a bottlerocket node. The status is updated by the host agent, while the spec is updated by the brupop controller.' nullable: true properties: crash_count: format: uint32 minimum: 0.0 type: integer current_state: description: BottlerocketShadowState represents a node's state in the update state machine. enum: - Idle - StagedAndPerformedUpdate - RebootedIntoUpdate - MonitoringUpdate - ErrorReset type: string current_version: pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string state_transition_failure_timestamp: nullable: true type: string target_version: pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string required: - crash_count - current_state - current_version - target_version type: object required: - spec title: BottlerocketShadow type: object served: true storage: true subresources: status: {} - additionalPrinterColumns: - jsonPath: .status.current_state name: State type: string - jsonPath: .status.current_version name: Version type: string - jsonPath: .spec.state name: Target State type: string - jsonPath: .spec.version name: Target Version type: string name: v1 schema: openAPIV3Schema: description: Auto-generated derived type for BottlerocketShadowSpec via `CustomResource` properties: spec: description: The `BottlerocketShadowSpec` can be used to drive a node through the update state machine. A node linearly drives towards the desired state. The brupop controller updates the spec to specify a node's desired state, and the host agent drives state changes forward and updates the `BottlerocketShadowStatus`. properties: state: description: Records the desired state of the `BottlerocketShadow` enum: - Idle - StagedUpdate - PerformedUpdate - RebootedIntoUpdate - MonitoringUpdate type: string state_transition_timestamp: description: The time at which the most recent state was set as the desired state. nullable: true type: string version: description: The desired update version, if any. nullable: true pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string required: - state type: object status: description: '`BottlerocketShadowStatus` surfaces the current state of a bottlerocket node. The status is updated by the host agent, while the spec is updated by the brupop controller.' nullable: true properties: current_state: description: BottlerocketShadowState represents a node's state in the update state machine. enum: - Idle - StagedUpdate - PerformedUpdate - RebootedIntoUpdate - MonitoringUpdate type: string current_version: pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string target_version: pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ type: string required: - current_state - current_version - target_version type: object required: - spec title: BottlerocketShadow type: object served: true storage: false subresources: status: {}