diff --git a/imageregistry/v1/00_imageregistry.crd.yaml b/imageregistry/v1/00_imageregistry.crd.yaml index dd8f53abede..ce7c09b8dd3 100644 --- a/imageregistry/v1/00_imageregistry.crd.yaml +++ b/imageregistry/v1/00_imageregistry.crd.yaml @@ -1892,8 +1892,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -1926,6 +1931,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/imageregistry/v1/01_imagepruner.crd.yaml b/imageregistry/v1/01_imagepruner.crd.yaml index ac1fdafda8f..d4d3603b001 100644 --- a/imageregistry/v1/01_imagepruner.crd.yaml +++ b/imageregistry/v1/01_imagepruner.crd.yaml @@ -1192,6 +1192,8 @@ spec: type: string type: type: string + required: + - type type: object type: array observedGeneration: diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index 03beb150163..de7ec167b68 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -963,6 +963,9 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/openshift/api/operator/v1.MachineConfigurationList": schema_openshift_api_operator_v1_MachineConfigurationList(ref), "github.com/openshift/api/operator/v1.MachineConfigurationSpec": schema_openshift_api_operator_v1_MachineConfigurationSpec(ref), "github.com/openshift/api/operator/v1.MachineConfigurationStatus": schema_openshift_api_operator_v1_MachineConfigurationStatus(ref), + "github.com/openshift/api/operator/v1.MachineManager": schema_openshift_api_operator_v1_MachineManager(ref), + "github.com/openshift/api/operator/v1.MachineManagerSelector": schema_openshift_api_operator_v1_MachineManagerSelector(ref), + "github.com/openshift/api/operator/v1.ManagedBootImages": schema_openshift_api_operator_v1_ManagedBootImages(ref), "github.com/openshift/api/operator/v1.MyOperatorResource": schema_openshift_api_operator_v1_MyOperatorResource(ref), "github.com/openshift/api/operator/v1.MyOperatorResourceSpec": schema_openshift_api_operator_v1_MyOperatorResourceSpec(ref), "github.com/openshift/api/operator/v1.MyOperatorResourceStatus": schema_openshift_api_operator_v1_MyOperatorResourceStatus(ref), @@ -989,6 +992,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/openshift/api/operator/v1.OperatorCondition": schema_openshift_api_operator_v1_OperatorCondition(ref), "github.com/openshift/api/operator/v1.OperatorSpec": schema_openshift_api_operator_v1_OperatorSpec(ref), "github.com/openshift/api/operator/v1.OperatorStatus": schema_openshift_api_operator_v1_OperatorStatus(ref), + "github.com/openshift/api/operator/v1.PartialSelector": schema_openshift_api_operator_v1_PartialSelector(ref), "github.com/openshift/api/operator/v1.Perspective": schema_openshift_api_operator_v1_Perspective(ref), "github.com/openshift/api/operator/v1.PerspectiveVisibility": schema_openshift_api_operator_v1_PerspectiveVisibility(ref), "github.com/openshift/api/operator/v1.PinnedResourceReference": schema_openshift_api_operator_v1_PinnedResourceReference(ref), @@ -43243,6 +43247,14 @@ func schema_openshift_api_operator_v1_AuthenticationStatus(ref common.ReferenceC }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -43272,6 +43284,11 @@ func schema_openshift_api_operator_v1_AuthenticationStatus(ref common.ReferenceC }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -43591,6 +43608,14 @@ func schema_openshift_api_operator_v1_CSISnapshotControllerStatus(ref common.Ref }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -43620,6 +43645,11 @@ func schema_openshift_api_operator_v1_CSISnapshotControllerStatus(ref common.Ref }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -43866,6 +43896,14 @@ func schema_openshift_api_operator_v1_CloudCredentialStatus(ref common.Reference }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -43895,6 +43933,11 @@ func schema_openshift_api_operator_v1_CloudCredentialStatus(ref common.Reference }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -44099,6 +44142,14 @@ func schema_openshift_api_operator_v1_ClusterCSIDriverStatus(ref common.Referenc }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -44128,6 +44179,11 @@ func schema_openshift_api_operator_v1_ClusterCSIDriverStatus(ref common.Referenc }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -44344,6 +44400,14 @@ func schema_openshift_api_operator_v1_ConfigStatus(ref common.ReferenceCallback) }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -44373,6 +44437,11 @@ func schema_openshift_api_operator_v1_ConfigStatus(ref common.ReferenceCallback) }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -44741,6 +44810,14 @@ func schema_openshift_api_operator_v1_ConsoleStatus(ref common.ReferenceCallback }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -44770,6 +44847,11 @@ func schema_openshift_api_operator_v1_ConsoleStatus(ref common.ReferenceCallback }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -45709,6 +45791,14 @@ func schema_openshift_api_operator_v1_EtcdStatus(ref common.ReferenceCallback) c }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -45738,6 +45828,11 @@ func schema_openshift_api_operator_v1_EtcdStatus(ref common.ReferenceCallback) c }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -45766,6 +45861,14 @@ func schema_openshift_api_operator_v1_EtcdStatus(ref common.ReferenceCallback) c }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -47517,6 +47620,14 @@ func schema_openshift_api_operator_v1_InsightsOperatorStatus(ref common.Referenc }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -47546,6 +47657,11 @@ func schema_openshift_api_operator_v1_InsightsOperatorStatus(ref common.Referenc }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -47812,6 +47928,14 @@ func schema_openshift_api_operator_v1_KubeAPIServerStatus(ref common.ReferenceCa }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -47841,6 +47965,11 @@ func schema_openshift_api_operator_v1_KubeAPIServerStatus(ref common.ReferenceCa }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -47869,6 +47998,14 @@ func schema_openshift_api_operator_v1_KubeAPIServerStatus(ref common.ReferenceCa }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -48102,6 +48239,14 @@ func schema_openshift_api_operator_v1_KubeControllerManagerStatus(ref common.Ref }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -48131,6 +48276,11 @@ func schema_openshift_api_operator_v1_KubeControllerManagerStatus(ref common.Ref }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -48159,6 +48309,14 @@ func schema_openshift_api_operator_v1_KubeControllerManagerStatus(ref common.Ref }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -48370,6 +48528,14 @@ func schema_openshift_api_operator_v1_KubeSchedulerStatus(ref common.ReferenceCa }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -48399,6 +48565,11 @@ func schema_openshift_api_operator_v1_KubeSchedulerStatus(ref common.ReferenceCa }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -48427,6 +48598,14 @@ func schema_openshift_api_operator_v1_KubeSchedulerStatus(ref common.ReferenceCa }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -48614,6 +48793,14 @@ func schema_openshift_api_operator_v1_KubeStorageVersionMigratorStatus(ref commo }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -48643,6 +48830,11 @@ func schema_openshift_api_operator_v1_KubeStorageVersionMigratorStatus(ref commo }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -48988,12 +49180,19 @@ func schema_openshift_api_operator_v1_MachineConfigurationSpec(ref common.Refere Format: "int32", }, }, + "managedBootImages": { + SchemaProps: spec.SchemaProps{ + Description: "managedBootImages allows configuration for the management of boot images for machine resources within the cluster. This configuration allows users to select resources that should be updated to the latest boot images during cluster upgrades, ensuring that new machines always boot with the current cluster version's boot image. When omitted, no boot images will be updated.", + Default: map[string]interface{}{}, + Ref: ref("github.com/openshift/api/operator/v1.ManagedBootImages"), + }, + }, }, Required: []string{"managementState", "forceRedeploymentReason"}, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + "github.com/openshift/api/operator/v1.ManagedBootImages", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, } } @@ -49011,6 +49210,14 @@ func schema_openshift_api_operator_v1_MachineConfigurationStatus(ref common.Refe }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -49040,6 +49247,11 @@ func schema_openshift_api_operator_v1_MachineConfigurationStatus(ref common.Refe }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -49068,6 +49280,14 @@ func schema_openshift_api_operator_v1_MachineConfigurationStatus(ref common.Refe }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -49090,6 +49310,123 @@ func schema_openshift_api_operator_v1_MachineConfigurationStatus(ref common.Refe } } +func schema_openshift_api_operator_v1_MachineManager(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information such as the resource type and the API Group of the resource. It also provides granular control via the selection field.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource is the machine management resource's type. The only current valid value is machinesets. machinesets means that the machine manager will only register resources of the kind MachineSet.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "apiGroup": { + SchemaProps: spec.SchemaProps{ + Description: "apiGroup is name of the APIGroup that the machine management resource belongs to. The only current valid value is machine.openshift.io. machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "selection": { + SchemaProps: spec.SchemaProps{ + Description: "selection allows granular control of the machine management resources that will be registered for boot image updates.", + Default: map[string]interface{}{}, + Ref: ref("github.com/openshift/api/operator/v1.MachineManagerSelector"), + }, + }, + }, + Required: []string{"resource", "apiGroup", "selection"}, + }, + }, + Dependencies: []string{ + "github.com/openshift/api/operator/v1.MachineManagerSelector"}, + } +} + +func schema_openshift_api_operator_v1_MachineManagerSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "mode": { + SchemaProps: spec.SchemaProps{ + Description: "mode determines how machine managers will be selected for updates. Valid values are All and Partial. All means that every resource matched by the machine manager will be updated. Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "partial": { + SchemaProps: spec.SchemaProps{ + Description: "partial provides label selector(s) that can be used to match machine management resources. Only permitted when mode is set to \"Partial\".", + Ref: ref("github.com/openshift/api/operator/v1.PartialSelector"), + }, + }, + }, + Required: []string{"mode"}, + }, + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-unions": []interface{}{ + map[string]interface{}{ + "discriminator": "mode", + "fields-to-discriminateBy": map[string]interface{}{ + "partial": "Partial", + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/openshift/api/operator/v1.PartialSelector"}, + } +} + +func schema_openshift_api_operator_v1_ManagedBootImages(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "machineManagers": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "resource", + "apiGroup", + }, + "x-kubernetes-list-type": "map", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator will watch for changes to this list. Only one entry is permitted per type of machine management resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/openshift/api/operator/v1.MachineManager"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/openshift/api/operator/v1.MachineManager"}, + } +} + func schema_openshift_api_operator_v1_MyOperatorResource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -49204,6 +49541,14 @@ func schema_openshift_api_operator_v1_MyOperatorResourceStatus(ref common.Refere }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -49233,6 +49578,11 @@ func schema_openshift_api_operator_v1_MyOperatorResourceStatus(ref common.Refere }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -49586,6 +49936,14 @@ func schema_openshift_api_operator_v1_NetworkStatus(ref common.ReferenceCallback }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -49615,6 +49973,11 @@ func schema_openshift_api_operator_v1_NetworkStatus(ref common.ReferenceCallback }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -49757,6 +50120,11 @@ func schema_openshift_api_operator_v1_NodeStatus(ref common.ReferenceCallback) c }, }, "lastFailedRevisionErrors": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "lastFailedRevisionErrors is a list of human readable errors during the failed deployment referenced in lastFailedRevision.", Type: []string{"array"}, @@ -50041,6 +50409,14 @@ func schema_openshift_api_operator_v1_OpenShiftAPIServerStatus(ref common.Refere }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -50070,6 +50446,11 @@ func schema_openshift_api_operator_v1_OpenShiftAPIServerStatus(ref common.Refere }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -50264,6 +50645,14 @@ func schema_openshift_api_operator_v1_OpenShiftControllerManagerStatus(ref commo }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -50293,6 +50682,11 @@ func schema_openshift_api_operator_v1_OpenShiftControllerManagerStatus(ref commo }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -50479,6 +50873,14 @@ func schema_openshift_api_operator_v1_OperatorStatus(ref common.ReferenceCallbac }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -50508,6 +50910,11 @@ func schema_openshift_api_operator_v1_OperatorStatus(ref common.ReferenceCallbac }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -50530,6 +50937,27 @@ func schema_openshift_api_operator_v1_OperatorStatus(ref common.ReferenceCallbac } } +func schema_openshift_api_operator_v1_PartialSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "PartialSelector provides label selector(s) that can be used to match machine management resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "machineResourceSelector": { + SchemaProps: spec.SchemaProps{ + Description: "machineResourceSelector is a label selector that can be used to select machine resources like MachineSets.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + func schema_openshift_api_operator_v1_Perspective(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -51223,6 +51651,14 @@ func schema_openshift_api_operator_v1_ServiceCAStatus(ref common.ReferenceCallba }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -51252,6 +51688,11 @@ func schema_openshift_api_operator_v1_ServiceCAStatus(ref common.ReferenceCallba }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -51439,6 +51880,14 @@ func schema_openshift_api_operator_v1_ServiceCatalogAPIServerStatus(ref common.R }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -51468,6 +51917,11 @@ func schema_openshift_api_operator_v1_ServiceCatalogAPIServerStatus(ref common.R }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -51655,6 +52109,14 @@ func schema_openshift_api_operator_v1_ServiceCatalogControllerManagerStatus(ref }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -51684,6 +52146,11 @@ func schema_openshift_api_operator_v1_ServiceCatalogControllerManagerStatus(ref }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -51993,6 +52460,14 @@ func schema_openshift_api_operator_v1_StaticPodOperatorStatus(ref common.Referen }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -52022,6 +52497,11 @@ func schema_openshift_api_operator_v1_StaticPodOperatorStatus(ref common.Referen }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -52050,6 +52530,14 @@ func schema_openshift_api_operator_v1_StaticPodOperatorStatus(ref common.Referen }, }, "nodeStatuses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "nodeName", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "nodeStatuses track the deployment values and errors across individual nodes", Type: []string{"array"}, @@ -52270,6 +52758,14 @@ func schema_openshift_api_operator_v1_StorageStatus(ref common.ReferenceCallback }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -52299,6 +52795,11 @@ func schema_openshift_api_operator_v1_StorageStatus(ref common.ReferenceCallback }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -53206,6 +53707,14 @@ func schema_openshift_api_operator_v1alpha1_OLMStatus(ref common.ReferenceCallba }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -53235,6 +53744,11 @@ func schema_openshift_api_operator_v1alpha1_OLMStatus(ref common.ReferenceCallba }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, @@ -58777,6 +59291,14 @@ func schema_openshift_api_servicecertsigner_v1alpha1_ServiceCertSignerOperatorCo }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "conditions is a list of conditions and their status", Type: []string{"array"}, @@ -58806,6 +59328,11 @@ func schema_openshift_api_servicecertsigner_v1alpha1_ServiceCertSignerOperatorCo }, }, "generations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ Description: "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", Type: []string{"array"}, diff --git a/openapi/openapi.json b/openapi/openapi.json index a946257599a..11452ca3837 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -25185,7 +25185,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -25193,7 +25197,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "oauthAPIServer": { "description": "OAuthAPIServer holds status specific only to oauth-apiserver", @@ -25405,7 +25410,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -25413,7 +25422,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -25570,7 +25580,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -25578,7 +25592,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -25712,7 +25727,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -25720,7 +25739,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -25863,7 +25883,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -25871,7 +25895,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -26100,7 +26125,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -26108,7 +26137,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -26670,7 +26700,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "controlPlaneHardwareSpeed": { "description": "Possible enum values:\n - `\"Slower\"` provides more tolerance for slower hardware and/or higher latency networks. Sets (values subject to change): ETCD_HEARTBEAT_INTERVAL: 5x Standard ETCD_LEADER_ELECTION_TIMEOUT: 2.5x Standard\n - `\"Standard\"` provides the normal tolerances for hardware speed and latency. Currently sets (values subject to change at any time): ETCD_HEARTBEAT_INTERVAL: 100ms ETCD_LEADER_ELECTION_TIMEOUT: 1000ms", @@ -26687,7 +26721,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -26704,7 +26739,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -27749,7 +27788,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "gatherStatus": { "description": "gatherStatus provides basic information about the last Insights data gathering. When omitted, this means no data gathering has taken place yet.", @@ -27762,7 +27805,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "insightsReport": { "description": "insightsReport provides general Insights analysis results. When omitted, this means no data gathering has taken place yet.", @@ -27929,7 +27973,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -27937,7 +27985,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -27954,7 +28003,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -28110,7 +28163,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -28118,7 +28175,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -28135,7 +28193,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -28277,7 +28339,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -28285,7 +28351,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -28302,7 +28369,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -28426,7 +28497,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -28434,7 +28509,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -28633,6 +28709,11 @@ "description": "logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a simple way to manage coarse grained logging choices that operators have to interpret for their operands.\n\nValid values are: \"Normal\", \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\".", "type": "string" }, + "managedBootImages": { + "description": "managedBootImages allows configuration for the management of boot images for machine resources within the cluster. This configuration allows users to select resources that should be updated to the latest boot images during cluster upgrades, ensuring that new machines always boot with the current cluster version's boot image. When omitted, no boot images will be updated.", + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1.ManagedBootImages" + }, "managementState": { "description": "managementState indicates whether and how the operator should manage the component", "type": "string", @@ -28671,7 +28752,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -28679,7 +28764,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -28696,7 +28782,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -28715,6 +28805,75 @@ } } }, + "com.github.openshift.api.operator.v1.MachineManager": { + "description": "MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information such as the resource type and the API Group of the resource. It also provides granular control via the selection field.", + "type": "object", + "required": [ + "resource", + "apiGroup", + "selection" + ], + "properties": { + "apiGroup": { + "description": "apiGroup is name of the APIGroup that the machine management resource belongs to. The only current valid value is machine.openshift.io. machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group.", + "type": "string", + "default": "" + }, + "resource": { + "description": "resource is the machine management resource's type. The only current valid value is machinesets. machinesets means that the machine manager will only register resources of the kind MachineSet.", + "type": "string", + "default": "" + }, + "selection": { + "description": "selection allows granular control of the machine management resources that will be registered for boot image updates.", + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1.MachineManagerSelector" + } + } + }, + "com.github.openshift.api.operator.v1.MachineManagerSelector": { + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "description": "mode determines how machine managers will be selected for updates. Valid values are All and Partial. All means that every resource matched by the machine manager will be updated. Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated.", + "type": "string", + "default": "" + }, + "partial": { + "description": "partial provides label selector(s) that can be used to match machine management resources. Only permitted when mode is set to \"Partial\".", + "$ref": "#/definitions/com.github.openshift.api.operator.v1.PartialSelector" + } + }, + "x-kubernetes-unions": [ + { + "discriminator": "mode", + "fields-to-discriminateBy": { + "partial": "Partial" + } + } + ] + }, + "com.github.openshift.api.operator.v1.ManagedBootImages": { + "type": "object", + "properties": { + "machineManagers": { + "description": "machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator will watch for changes to this list. Only one entry is permitted per type of machine management resource.", + "type": "array", + "items": { + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.operator.v1.MachineManager" + }, + "x-kubernetes-list-map-keys": [ + "resource", + "apiGroup" + ], + "x-kubernetes-list-type": "map" + } + } + }, "com.github.openshift.api.operator.v1.MyOperatorResource": { "description": "MyOperatorResource is an example operator configuration type\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", "type": "object", @@ -28790,7 +28949,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -28798,7 +28961,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -29015,7 +29179,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -29023,7 +29191,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -29104,7 +29273,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "atomic" }, "lastFailedTime": { "description": "lastFailedTime is the time the last failed revision failed the last time.", @@ -29292,7 +29462,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -29300,7 +29474,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the latest revision used as suffix of revisioned secrets like encryption-config. A new revision causes a new deployment of pods.", @@ -29429,7 +29604,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -29437,7 +29616,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -29560,7 +29740,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -29568,7 +29752,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -29587,6 +29772,16 @@ } } }, + "com.github.openshift.api.operator.v1.PartialSelector": { + "description": "PartialSelector provides label selector(s) that can be used to match machine management resources.", + "type": "object", + "properties": { + "machineResourceSelector": { + "description": "machineResourceSelector is a label selector that can be used to select machine resources like MachineSets.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + } + }, "com.github.openshift.api.operator.v1.Perspective": { "description": "Perspective defines a perspective that cluster admins want to show/hide in the perspective switcher dropdown", "type": "object", @@ -29996,7 +30191,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -30004,7 +30203,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -30127,7 +30327,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -30135,7 +30339,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -30259,7 +30464,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -30267,7 +30476,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -30455,7 +30665,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -30463,7 +30677,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "latestAvailableRevision": { "description": "latestAvailableRevision is the deploymentID of the most recent deployment", @@ -30480,7 +30695,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.NodeStatus" - } + }, + "x-kubernetes-list-map-keys": [ + "nodeName" + ], + "x-kubernetes-list-type": "map" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -30624,7 +30843,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -30632,7 +30855,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -31198,7 +31422,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -31206,7 +31434,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", @@ -34577,7 +34806,11 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.OperatorCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" }, "generations": { "description": "generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.", @@ -34585,7 +34818,8 @@ "items": { "default": {}, "$ref": "#/definitions/com.github.openshift.api.operator.v1.GenerationStatus" - } + }, + "x-kubernetes-list-type": "atomic" }, "observedGeneration": { "description": "observedGeneration is the last generation change you've dealt with", diff --git a/operator/v1/0000_10_config-operator_01_config.crd.yaml b/operator/v1/0000_10_config-operator_01_config.crd.yaml index 4f514f9034f..09584dbddbf 100644 --- a/operator/v1/0000_10_config-operator_01_config.crd.yaml +++ b/operator/v1/0000_10_config-operator_01_config.crd.yaml @@ -114,8 +114,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -148,6 +153,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_12_etcd-operator_01_config-TechPreviewNoUpgrade.crd.yaml b/operator/v1/0000_12_etcd-operator_01_config-TechPreviewNoUpgrade.crd.yaml index 3d3edffc287..aa0f763d438 100644 --- a/operator/v1/0000_12_etcd-operator_01_config-TechPreviewNoUpgrade.crd.yaml +++ b/operator/v1/0000_12_etcd-operator_01_config-TechPreviewNoUpgrade.crd.yaml @@ -140,8 +140,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map controlPlaneHardwareSpeed: description: ControlPlaneHardwareSpeed declares valid hardware speed tolerance levels @@ -182,6 +187,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -222,6 +228,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -239,8 +246,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_12_etcd-operator_01_config.crd.yaml b/operator/v1/0000_12_etcd-operator_01_config.crd.yaml index 899ddcc0ae3..10b510cbcb3 100644 --- a/operator/v1/0000_12_etcd-operator_01_config.crd.yaml +++ b/operator/v1/0000_12_etcd-operator_01_config.crd.yaml @@ -128,8 +128,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map controlPlaneHardwareSpeed: description: ControlPlaneHardwareSpeed declares valid hardware speed tolerance levels @@ -170,6 +175,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -210,6 +216,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -227,8 +234,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml b/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml index f8824e90f8d..fc95eccfd2d 100644 --- a/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml +++ b/operator/v1/0000_20_kube-apiserver-operator_01_config.crd.yaml @@ -129,8 +129,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -163,6 +168,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -203,6 +209,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -220,8 +227,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml b/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml index ffcd76e3f61..3706ec85d56 100644 --- a/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml +++ b/operator/v1/0000_25_kube-controller-manager-operator_01_config.crd.yaml @@ -141,8 +141,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -175,6 +180,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -215,6 +221,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -232,8 +239,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml b/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml index 9d209dcf8b0..77e99b32484 100644 --- a/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml +++ b/operator/v1/0000_25_kube-scheduler-operator_01_config.crd.yaml @@ -131,8 +131,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -165,6 +170,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -205,6 +211,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -222,8 +229,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_30_openshift-apiserver-operator_01_config.crd.yaml b/operator/v1/0000_30_openshift-apiserver-operator_01_config.crd.yaml index 13675f8d111..9ca71df0d1f 100644 --- a/operator/v1/0000_30_openshift-apiserver-operator_01_config.crd.yaml +++ b/operator/v1/0000_30_openshift-apiserver-operator_01_config.crd.yaml @@ -112,8 +112,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -146,6 +151,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the latest revision used as suffix of revisioned secrets like encryption-config. A new revision diff --git a/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml b/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml index aa6fda11ba0..a8aab913441 100644 --- a/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml +++ b/operator/v1/0000_40_cloud-credential-operator_00_config.crd.yaml @@ -128,8 +128,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -162,6 +167,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml b/operator/v1/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml index 26aa2c516dc..8adac226547 100644 --- a/operator/v1/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml +++ b/operator/v1/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml @@ -108,8 +108,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -142,6 +147,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml b/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml index d40670a0599..a7accb80a53 100644 --- a/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml +++ b/operator/v1/0000_50_cluster-authentication-operator_01_config.crd.yaml @@ -105,8 +105,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -139,6 +144,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic oauthAPIServer: description: OAuthAPIServer holds status specific only to oauth-apiserver properties: diff --git a/operator/v1/0000_50_cluster-openshift-controller-manager-operator_02_config.crd.yaml b/operator/v1/0000_50_cluster-openshift-controller-manager-operator_02_config.crd.yaml index 08c53a233da..f2be2753beb 100644 --- a/operator/v1/0000_50_cluster-openshift-controller-manager-operator_02_config.crd.yaml +++ b/operator/v1/0000_50_cluster-openshift-controller-manager-operator_02_config.crd.yaml @@ -109,8 +109,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -143,6 +148,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_50_cluster_storage_operator_01_crd.yaml b/operator/v1/0000_50_cluster_storage_operator_01_crd.yaml index 608409b6886..b2a234affc0 100644 --- a/operator/v1/0000_50_cluster_storage_operator_01_crd.yaml +++ b/operator/v1/0000_50_cluster_storage_operator_01_crd.yaml @@ -125,8 +125,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -159,6 +164,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml b/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml index a6e45867dc8..93d62f5949f 100644 --- a/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml +++ b/operator/v1/0000_50_ingress-operator_00-ingresscontroller.crd.yaml @@ -1753,6 +1753,8 @@ spec: type: string type: type: string + required: + - type type: object type: array domain: diff --git a/operator/v1/0000_50_insights-operator_00-insightsoperator.crd.yaml b/operator/v1/0000_50_insights-operator_00-insightsoperator.crd.yaml index aa6612045f6..b91c384ab37 100644 --- a/operator/v1/0000_50_insights-operator_00-insightsoperator.crd.yaml +++ b/operator/v1/0000_50_insights-operator_00-insightsoperator.crd.yaml @@ -111,8 +111,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map gatherStatus: description: gatherStatus provides basic information about the last Insights data gathering. When omitted, this means no data gathering @@ -266,6 +271,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic insightsReport: description: insightsReport provides general Insights analysis results. When omitted, this means no data gathering has taken place yet. diff --git a/operator/v1/0000_50_service-ca-operator_02_crd.yaml b/operator/v1/0000_50_service-ca-operator_02_crd.yaml index 32f24d23aa8..57a33771c51 100644 --- a/operator/v1/0000_50_service-ca-operator_02_crd.yaml +++ b/operator/v1/0000_50_service-ca-operator_02_crd.yaml @@ -110,8 +110,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -144,6 +149,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_70_cluster-network-operator_01-CustomNoUpgrade.crd.yaml b/operator/v1/0000_70_cluster-network-operator_01-CustomNoUpgrade.crd.yaml index e28e1ba16b1..e0dba1d96ef 100644 --- a/operator/v1/0000_70_cluster-network-operator_01-CustomNoUpgrade.crd.yaml +++ b/operator/v1/0000_70_cluster-network-operator_01-CustomNoUpgrade.crd.yaml @@ -848,8 +848,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -882,6 +887,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_70_cluster-network-operator_01-Default.crd.yaml b/operator/v1/0000_70_cluster-network-operator_01-Default.crd.yaml index 7cbd6516c36..f6c9ef607e7 100644 --- a/operator/v1/0000_70_cluster-network-operator_01-Default.crd.yaml +++ b/operator/v1/0000_70_cluster-network-operator_01-Default.crd.yaml @@ -843,8 +843,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -877,6 +882,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_70_cluster-network-operator_01-TechPreviewNoUpgrade.crd.yaml b/operator/v1/0000_70_cluster-network-operator_01-TechPreviewNoUpgrade.crd.yaml index b9b8df3f194..8a27eade086 100644 --- a/operator/v1/0000_70_cluster-network-operator_01-TechPreviewNoUpgrade.crd.yaml +++ b/operator/v1/0000_70_cluster-network-operator_01-TechPreviewNoUpgrade.crd.yaml @@ -848,8 +848,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -882,6 +887,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_70_dns-operator_00.crd.yaml b/operator/v1/0000_70_dns-operator_00.crd.yaml index 94797ad1656..ba944cc6217 100644 --- a/operator/v1/0000_70_dns-operator_00.crd.yaml +++ b/operator/v1/0000_70_dns-operator_00.crd.yaml @@ -562,6 +562,8 @@ spec: type: string type: type: string + required: + - type type: object type: array required: diff --git a/operator/v1/0000_80_csi_snapshot_controller_operator_01_crd.yaml b/operator/v1/0000_80_csi_snapshot_controller_operator_01_crd.yaml index b6d9a9003b1..574d3487686 100644 --- a/operator/v1/0000_80_csi_snapshot_controller_operator_01_crd.yaml +++ b/operator/v1/0000_80_csi_snapshot_controller_operator_01_crd.yaml @@ -110,8 +110,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -144,6 +149,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_80_machine-config-operator_01_config.CustomNoUpgrade.crd.yaml b/operator/v1/0000_80_machine-config-operator_01_config.CustomNoUpgrade.crd.yaml new file mode 100644 index 00000000000..3b8b7f366da --- /dev/null +++ b/operator/v1/0000_80_machine-config-operator_01_config.CustomNoUpgrade.crd.yaml @@ -0,0 +1,393 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1453 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" + release.openshift.io/feature-set: CustomNoUpgrade + name: machineconfigurations.operator.openshift.io +spec: + group: operator.openshift.io + names: + kind: MachineConfiguration + plural: machineconfigurations + singular: machineconfiguration + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: "MachineConfiguration provides information to configure an operator + to manage Machine Configuration. \n Compatibility level 1: Stable within + a major release for a minimum of 12 months or 3 minor releases (whichever + is longer)." + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: spec is the specification of the desired behavior of the + Machine Config Operator + properties: + failedRevisionLimit: + description: failedRevisionLimit is the number of failed static pod + installer revisions to keep on disk and in the api -1 = unlimited, + 0 or unset = 5 (default) + format: int32 + type: integer + forceRedeploymentReason: + description: forceRedeploymentReason can be used to force the redeployment + of the operand by providing a unique string. This provides a mechanism + to kick a previously failed deployment and provide a reason why + you think it will work this time instead of failing again on the + same config. + type: string + logLevel: + default: Normal + description: "logLevel is an intent based logging for an overall component. + \ It does not give fine grained control, but it is a simple way + to manage coarse grained logging choices that operators have to + interpret for their operands. \n Valid values are: \"Normal\", \"Debug\", + \"Trace\", \"TraceAll\". Defaults to \"Normal\"." + enum: + - "" + - Normal + - Debug + - Trace + - TraceAll + type: string + managedBootImages: + description: managedBootImages allows configuration for the management + of boot images for machine resources within the cluster. This configuration + allows users to select resources that should be updated to the latest + boot images during cluster upgrades, ensuring that new machines + always boot with the current cluster version's boot image. When + omitted, no boot images will be updated. + properties: + machineManagers: + description: machineManagers can be used to register machine management + resources for boot image updates. The Machine Config Operator + will watch for changes to this list. Only one entry is permitted + per type of machine management resource. + items: + description: MachineManager describes a target machine resource + that is registered for boot image updates. It stores identifying + information such as the resource type and the API Group of + the resource. It also provides granular control via the selection + field. + properties: + apiGroup: + description: apiGroup is name of the APIGroup that the machine + management resource belongs to. The only current valid + value is machine.openshift.io. machine.openshift.io means + that the machine manager will only register resources + that belong to OpenShift machine API group. + enum: + - machine.openshift.io + type: string + resource: + description: resource is the machine management resource's + type. The only current valid value is machinesets. machinesets + means that the machine manager will only register resources + of the kind MachineSet. + enum: + - machinesets + type: string + selection: + description: selection allows granular control of the machine + management resources that will be registered for boot + image updates. + properties: + mode: + description: mode determines how machine managers will + be selected for updates. Valid values are All and + Partial. All means that every resource matched by + the machine manager will be updated. Partial requires + specified selector(s) and allows customisation of + which resources matched by the machine manager will + be updated. + enum: + - All + - Partial + type: string + partial: + description: partial provides label selector(s) that + can be used to match machine management resources. + Only permitted when mode is set to "Partial". + properties: + machineResourceSelector: + description: machineResourceSelector is a label + selector that can be used to select machine resources + like MachineSets. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + required: + - machineResourceSelector + type: object + required: + - mode + type: object + x-kubernetes-validations: + - message: Partial is required when type is partial, and + forbidden otherwise + rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) + : !has(self.partial)' + required: + - apiGroup + - resource + - selection + type: object + type: array + x-kubernetes-list-map-keys: + - resource + - apiGroup + x-kubernetes-list-type: map + type: object + managementState: + description: managementState indicates whether and how the operator + should manage the component + pattern: ^(Managed|Unmanaged|Force|Removed)$ + type: string + observedConfig: + description: observedConfig holds a sparse config that controller + has observed from the cluster state. It exists in spec because + it is an input to the level for the operator + nullable: true + type: object + x-kubernetes-preserve-unknown-fields: true + operatorLogLevel: + default: Normal + description: "operatorLogLevel is an intent based logging for the + operator itself. It does not give fine grained control, but it + is a simple way to manage coarse grained logging choices that operators + have to interpret for themselves. \n Valid values are: \"Normal\", + \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"." + enum: + - "" + - Normal + - Debug + - Trace + - TraceAll + type: string + succeededRevisionLimit: + description: succeededRevisionLimit is the number of successful static + pod installer revisions to keep on disk and in the api -1 = unlimited, + 0 or unset = 5 (default) + format: int32 + type: integer + unsupportedConfigOverrides: + description: unsupportedConfigOverrides overrides the final configuration + that was computed by the operator. Red Hat does not support the + use of this field. Misuse of this field could lead to unexpected + behavior or conflict with other configuration options. Seek guidance + from the Red Hat support before using this field. Use of this property + blocks cluster upgrades, it must be removed before upgrading your + cluster. + nullable: true + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + status: + description: status is the most recently observed status of the Machine + Config Operator + properties: + conditions: + description: conditions is a list of conditions and their status + items: + description: OperatorCondition is just the standard condition fields. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + generations: + description: generations are used to determine when an item needs + to be reconciled or has changed in a way that needs a reaction. + items: + description: GenerationStatus keeps track of the generation for + a given resource so that decisions about forced updates can be + made. + properties: + group: + description: group is the group of the thing you're tracking + type: string + hash: + description: hash is an optional field set for resources without + generation that are content sensitive like secrets and configmaps + type: string + lastGeneration: + description: lastGeneration is the last generation of the workload + controller involved + format: int64 + type: integer + name: + description: name is the name of the thing you're tracking + type: string + namespace: + description: namespace is where the thing you're tracking is + type: string + resource: + description: resource is the resource type of the thing you're + tracking + type: string + type: object + type: array + x-kubernetes-list-type: atomic + latestAvailableRevision: + description: latestAvailableRevision is the deploymentID of the most + recent deployment + format: int32 + type: integer + latestAvailableRevisionReason: + description: latestAvailableRevisionReason describe the detailed reason + for the most recent deployment + type: string + nodeStatuses: + description: nodeStatuses track the deployment values and errors across + individual nodes + items: + description: NodeStatus provides information about the current state + of a particular node managed by this operator. + properties: + currentRevision: + description: currentRevision is the generation of the most recently + successful deployment + format: int32 + type: integer + lastFailedCount: + description: lastFailedCount is how often the installer pod + of the last failed revision failed. + type: integer + lastFailedReason: + description: lastFailedReason is a machine readable failure + reason string. + type: string + lastFailedRevision: + description: lastFailedRevision is the generation of the deployment + we tried and failed to deploy. + format: int32 + type: integer + lastFailedRevisionErrors: + description: lastFailedRevisionErrors is a list of human readable + errors during the failed deployment referenced in lastFailedRevision. + items: + type: string + type: array + x-kubernetes-list-type: atomic + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + format: date-time + type: string + lastFallbackCount: + description: lastFallbackCount is how often a fallback to a + previous revision happened. + type: integer + nodeName: + description: nodeName is the name of the node + type: string + targetRevision: + description: targetRevision is the generation of the deployment + we're trying to apply + format: int32 + type: integer + required: + - nodeName + type: object + type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map + observedGeneration: + description: observedGeneration is the last generation change you've + dealt with + format: int64 + type: integer + readyReplicas: + description: readyReplicas indicates how many replicas are ready and + at the desired state + format: int32 + type: integer + version: + description: version is the level this availability applies to + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/operator/v1/0000_80_machine-config-operator_01_config.TechPreviewNoUpgrade.crd.yaml b/operator/v1/0000_80_machine-config-operator_01_config.TechPreviewNoUpgrade.crd.yaml new file mode 100644 index 00000000000..77ae9ba5127 --- /dev/null +++ b/operator/v1/0000_80_machine-config-operator_01_config.TechPreviewNoUpgrade.crd.yaml @@ -0,0 +1,393 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1453 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" + release.openshift.io/feature-set: TechPreviewNoUpgrade + name: machineconfigurations.operator.openshift.io +spec: + group: operator.openshift.io + names: + kind: MachineConfiguration + plural: machineconfigurations + singular: machineconfiguration + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: "MachineConfiguration provides information to configure an operator + to manage Machine Configuration. \n Compatibility level 1: Stable within + a major release for a minimum of 12 months or 3 minor releases (whichever + is longer)." + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: spec is the specification of the desired behavior of the + Machine Config Operator + properties: + failedRevisionLimit: + description: failedRevisionLimit is the number of failed static pod + installer revisions to keep on disk and in the api -1 = unlimited, + 0 or unset = 5 (default) + format: int32 + type: integer + forceRedeploymentReason: + description: forceRedeploymentReason can be used to force the redeployment + of the operand by providing a unique string. This provides a mechanism + to kick a previously failed deployment and provide a reason why + you think it will work this time instead of failing again on the + same config. + type: string + logLevel: + default: Normal + description: "logLevel is an intent based logging for an overall component. + \ It does not give fine grained control, but it is a simple way + to manage coarse grained logging choices that operators have to + interpret for their operands. \n Valid values are: \"Normal\", \"Debug\", + \"Trace\", \"TraceAll\". Defaults to \"Normal\"." + enum: + - "" + - Normal + - Debug + - Trace + - TraceAll + type: string + managedBootImages: + description: managedBootImages allows configuration for the management + of boot images for machine resources within the cluster. This configuration + allows users to select resources that should be updated to the latest + boot images during cluster upgrades, ensuring that new machines + always boot with the current cluster version's boot image. When + omitted, no boot images will be updated. + properties: + machineManagers: + description: machineManagers can be used to register machine management + resources for boot image updates. The Machine Config Operator + will watch for changes to this list. Only one entry is permitted + per type of machine management resource. + items: + description: MachineManager describes a target machine resource + that is registered for boot image updates. It stores identifying + information such as the resource type and the API Group of + the resource. It also provides granular control via the selection + field. + properties: + apiGroup: + description: apiGroup is name of the APIGroup that the machine + management resource belongs to. The only current valid + value is machine.openshift.io. machine.openshift.io means + that the machine manager will only register resources + that belong to OpenShift machine API group. + enum: + - machine.openshift.io + type: string + resource: + description: resource is the machine management resource's + type. The only current valid value is machinesets. machinesets + means that the machine manager will only register resources + of the kind MachineSet. + enum: + - machinesets + type: string + selection: + description: selection allows granular control of the machine + management resources that will be registered for boot + image updates. + properties: + mode: + description: mode determines how machine managers will + be selected for updates. Valid values are All and + Partial. All means that every resource matched by + the machine manager will be updated. Partial requires + specified selector(s) and allows customisation of + which resources matched by the machine manager will + be updated. + enum: + - All + - Partial + type: string + partial: + description: partial provides label selector(s) that + can be used to match machine management resources. + Only permitted when mode is set to "Partial". + properties: + machineResourceSelector: + description: machineResourceSelector is a label + selector that can be used to select machine resources + like MachineSets. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + required: + - machineResourceSelector + type: object + required: + - mode + type: object + x-kubernetes-validations: + - message: Partial is required when type is partial, and + forbidden otherwise + rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) + : !has(self.partial)' + required: + - apiGroup + - resource + - selection + type: object + type: array + x-kubernetes-list-map-keys: + - resource + - apiGroup + x-kubernetes-list-type: map + type: object + managementState: + description: managementState indicates whether and how the operator + should manage the component + pattern: ^(Managed|Unmanaged|Force|Removed)$ + type: string + observedConfig: + description: observedConfig holds a sparse config that controller + has observed from the cluster state. It exists in spec because + it is an input to the level for the operator + nullable: true + type: object + x-kubernetes-preserve-unknown-fields: true + operatorLogLevel: + default: Normal + description: "operatorLogLevel is an intent based logging for the + operator itself. It does not give fine grained control, but it + is a simple way to manage coarse grained logging choices that operators + have to interpret for themselves. \n Valid values are: \"Normal\", + \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"." + enum: + - "" + - Normal + - Debug + - Trace + - TraceAll + type: string + succeededRevisionLimit: + description: succeededRevisionLimit is the number of successful static + pod installer revisions to keep on disk and in the api -1 = unlimited, + 0 or unset = 5 (default) + format: int32 + type: integer + unsupportedConfigOverrides: + description: unsupportedConfigOverrides overrides the final configuration + that was computed by the operator. Red Hat does not support the + use of this field. Misuse of this field could lead to unexpected + behavior or conflict with other configuration options. Seek guidance + from the Red Hat support before using this field. Use of this property + blocks cluster upgrades, it must be removed before upgrading your + cluster. + nullable: true + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + status: + description: status is the most recently observed status of the Machine + Config Operator + properties: + conditions: + description: conditions is a list of conditions and their status + items: + description: OperatorCondition is just the standard condition fields. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + generations: + description: generations are used to determine when an item needs + to be reconciled or has changed in a way that needs a reaction. + items: + description: GenerationStatus keeps track of the generation for + a given resource so that decisions about forced updates can be + made. + properties: + group: + description: group is the group of the thing you're tracking + type: string + hash: + description: hash is an optional field set for resources without + generation that are content sensitive like secrets and configmaps + type: string + lastGeneration: + description: lastGeneration is the last generation of the workload + controller involved + format: int64 + type: integer + name: + description: name is the name of the thing you're tracking + type: string + namespace: + description: namespace is where the thing you're tracking is + type: string + resource: + description: resource is the resource type of the thing you're + tracking + type: string + type: object + type: array + x-kubernetes-list-type: atomic + latestAvailableRevision: + description: latestAvailableRevision is the deploymentID of the most + recent deployment + format: int32 + type: integer + latestAvailableRevisionReason: + description: latestAvailableRevisionReason describe the detailed reason + for the most recent deployment + type: string + nodeStatuses: + description: nodeStatuses track the deployment values and errors across + individual nodes + items: + description: NodeStatus provides information about the current state + of a particular node managed by this operator. + properties: + currentRevision: + description: currentRevision is the generation of the most recently + successful deployment + format: int32 + type: integer + lastFailedCount: + description: lastFailedCount is how often the installer pod + of the last failed revision failed. + type: integer + lastFailedReason: + description: lastFailedReason is a machine readable failure + reason string. + type: string + lastFailedRevision: + description: lastFailedRevision is the generation of the deployment + we tried and failed to deploy. + format: int32 + type: integer + lastFailedRevisionErrors: + description: lastFailedRevisionErrors is a list of human readable + errors during the failed deployment referenced in lastFailedRevision. + items: + type: string + type: array + x-kubernetes-list-type: atomic + lastFailedTime: + description: lastFailedTime is the time the last failed revision + failed the last time. + format: date-time + type: string + lastFallbackCount: + description: lastFallbackCount is how often a fallback to a + previous revision happened. + type: integer + nodeName: + description: nodeName is the name of the node + type: string + targetRevision: + description: targetRevision is the generation of the deployment + we're trying to apply + format: int32 + type: integer + required: + - nodeName + type: object + type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map + observedGeneration: + description: observedGeneration is the last generation change you've + dealt with + format: int64 + type: integer + readyReplicas: + description: readyReplicas indicates how many replicas are ready and + at the desired state + format: int32 + type: integer + version: + description: version is the level this availability applies to + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/operator/v1/0000_80_machine-config-operator_01_config.crd.yaml b/operator/v1/0000_80_machine-config-operator_01_config.crd.yaml index 299c776d8dc..05d7b9e5c4f 100644 --- a/operator/v1/0000_80_machine-config-operator_01_config.crd.yaml +++ b/operator/v1/0000_80_machine-config-operator_01_config.crd.yaml @@ -130,8 +130,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -164,6 +169,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic latestAvailableRevision: description: latestAvailableRevision is the deploymentID of the most recent deployment @@ -204,6 +210,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic lastFailedTime: description: lastFailedTime is the time the last failed revision failed the last time. @@ -221,8 +228,13 @@ spec: we're trying to apply format: int32 type: integer + required: + - nodeName type: object type: array + x-kubernetes-list-map-keys: + - nodeName + x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml b/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml index 6822e4b83e5..dc4313bdfdc 100644 --- a/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml +++ b/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml @@ -310,8 +310,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -344,6 +349,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/00_console-operator.crd.yaml b/operator/v1/00_console-operator.crd.yaml index b61baf16e14..b3a88498b5f 100644 --- a/operator/v1/00_console-operator.crd.yaml +++ b/operator/v1/00_console-operator.crd.yaml @@ -579,8 +579,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -613,6 +618,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1/custom.machineconfiguration.testsuite.yaml b/operator/v1/custom.machineconfiguration.testsuite.yaml new file mode 100644 index 00000000000..223f913595a --- /dev/null +++ b/operator/v1/custom.machineconfiguration.testsuite.yaml @@ -0,0 +1,117 @@ +apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this +name: "[CustomNoUpgrade] MachineConfiguration" +crd: 0000_80_machine-config-operator_01_config.CustomNoUpgrade.crd.yaml +tests: + onCreate: + - name: Should be able to create a minimal MachineConfiguration + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: {} # No spec is required for a MachineConfiguration + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + - name: Should be able to create an empty ManagedBootImages configuration knob + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: [] + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: [] + - name: Should be able to create a ManagedBootImages configuration knob that opts in all MachineSets + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + - name: Should be able to create a ManagedBootImages configuration knob that opts in MachineSets in partial mode + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + - name: Should not be able to add partial field if machineManager.selection.mode is not set to Partial + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + partial: + machineResourceSelector: + matchLabels: {} + expectedError: "Partial is required when type is partial, and forbidden otherwise" + - name: Only one unique pair of resource/apigroup is allowed in machineManagers + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + expectedError: "spec.managedBootImages.machineManagers[1]: Duplicate value: map[string]interface {}{\"apiGroup\":\"machine.openshift.io\", \"resource\":\"machinesets\"}" diff --git a/operator/v1/techpreview.machineconfiguration.testsuite.yaml b/operator/v1/techpreview.machineconfiguration.testsuite.yaml new file mode 100644 index 00000000000..cd711b59b6e --- /dev/null +++ b/operator/v1/techpreview.machineconfiguration.testsuite.yaml @@ -0,0 +1,117 @@ +apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this +name: "[TechPreviewNoUpgrade] MachineConfiguration" +crd: 0000_80_machine-config-operator_01_config.TechPreviewNoUpgrade.crd.yaml +tests: + onCreate: + - name: Should be able to create a minimal MachineConfiguration + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: {} # No spec is required for a MachineConfiguration + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + - name: Should be able to create an empty ManagedBootImages configuration knob + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: [] + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: [] + - name: Should be able to create a ManagedBootImages configuration knob that opts in all MachineSets + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + - name: Should be able to create a ManagedBootImages configuration knob that opts in MachineSets in partial mode + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + expected: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + logLevel: Normal + operatorLogLevel: Normal + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + - name: Should not be able to add partial field if machineManager.selection.mode is not set to Partial + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + partial: + machineResourceSelector: + matchLabels: {} + expectedError: "Partial is required when type is partial, and forbidden otherwise" + - name: Only one unique pair of resource/apigroup is allowed in machineManagers + initial: | + apiVersion: operator.openshift.io/v1 + kind: MachineConfiguration + spec: + managedBootImages: + machineManagers: + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: Partial + partial: + machineResourceSelector: + matchLabels: {} + - resource: machinesets + apiGroup: machine.openshift.io + selection: + mode: All + expectedError: "spec.managedBootImages.machineManagers[1]: Duplicate value: map[string]interface {}{\"apiGroup\":\"machine.openshift.io\", \"resource\":\"machinesets\"}" diff --git a/operator/v1/types.go b/operator/v1/types.go index 40037e1fe91..19bc5a359b9 100644 --- a/operator/v1/types.go +++ b/operator/v1/types.go @@ -115,6 +115,8 @@ type OperatorStatus struct { ObservedGeneration int64 `json:"observedGeneration,omitempty"` // conditions is a list of conditions and their status + // +listType=map + // +listMapKey=type // +optional Conditions []OperatorCondition `json:"conditions,omitempty"` @@ -126,6 +128,7 @@ type OperatorStatus struct { ReadyReplicas int32 `json:"readyReplicas"` // generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. + // +listType=atomic // +optional Generations []GenerationStatus `json:"generations,omitempty"` } @@ -162,6 +165,7 @@ var ( // OperatorCondition is just the standard condition fields. type OperatorCondition struct { + // +kubebuilder:validation:Required Type string `json:"type"` Status ConditionStatus `json:"status"` LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` @@ -208,6 +212,8 @@ type StaticPodOperatorStatus struct { LatestAvailableRevisionReason string `json:"latestAvailableRevisionReason,omitempty"` // nodeStatuses track the deployment values and errors across individual nodes + // +listType=map + // +listMapKey=nodeName // +optional NodeStatuses []NodeStatus `json:"nodeStatuses,omitempty"` } @@ -215,6 +221,7 @@ type StaticPodOperatorStatus struct { // NodeStatus provides information about the current state of a particular node managed by this operator. type NodeStatus struct { // nodeName is the name of the node + // +kubebuilder:validation:Required NodeName string `json:"nodeName"` // currentRevision is the generation of the most recently successful deployment @@ -233,5 +240,6 @@ type NodeStatus struct { // lastFallbackCount is how often a fallback to a previous revision happened. LastFallbackCount int `json:"lastFallbackCount,omitempty"` // lastFailedRevisionErrors is a list of human readable errors during the failed deployment referenced in lastFailedRevision. + // +listType=atomic LastFailedRevisionErrors []string `json:"lastFailedRevisionErrors,omitempty"` } diff --git a/operator/v1/types_machineconfiguration.go b/operator/v1/types_machineconfiguration.go index 8651e89a725..39543cc34fe 100644 --- a/operator/v1/types_machineconfiguration.go +++ b/operator/v1/types_machineconfiguration.go @@ -32,6 +32,15 @@ type MachineConfigurationSpec struct { StaticPodOperatorSpec `json:",inline"` // TODO(jkyros): This is where we put our knobs and dials + + // managedBootImages allows configuration for the management of boot images for machine + // resources within the cluster. This configuration allows users to select resources that should + // be updated to the latest boot images during cluster upgrades, ensuring that new machines + // always boot with the current cluster version's boot image. When omitted, no boot images + // will be updated. + // +openshift:enable:FeatureSets=CustomNoUpgrade;TechPreviewNoUpgrade + // +optional + ManagedBootImages ManagedBootImages `json:"managedBootImages"` } type MachineConfigurationStatus struct { @@ -56,3 +65,91 @@ type MachineConfigurationList struct { // Items contains the items Items []MachineConfiguration `json:"items"` } + +type ManagedBootImages struct { + // machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator + // will watch for changes to this list. Only one entry is permitted per type of machine management resource. + // +optional + // +listType=map + // +listMapKey=resource + // +listMapKey=apiGroup + MachineManagers []MachineManager `json:"machineManagers"` +} + +// MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information +// such as the resource type and the API Group of the resource. It also provides granular control via the selection field. +type MachineManager struct { + // resource is the machine management resource's type. + // The only current valid value is machinesets. + // machinesets means that the machine manager will only register resources of the kind MachineSet. + // +kubebuilder:validation:Required + Resource MachineManagerMachineSetsResourceType `json:"resource"` + + // apiGroup is name of the APIGroup that the machine management resource belongs to. + // The only current valid value is machine.openshift.io. + // machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. + // +kubebuilder:validation:Required + APIGroup MachineManagerMachineSetsAPIGroupType `json:"apiGroup"` + + // selection allows granular control of the machine management resources that will be registered for boot image updates. + // +kubebuilder:validation:Required + Selection MachineManagerSelector `json:"selection"` +} + +// +kubebuilder:validation:XValidation:rule="has(self.mode) && self.mode == 'Partial' ? has(self.partial) : !has(self.partial)",message="Partial is required when type is partial, and forbidden otherwise" +// +union +type MachineManagerSelector struct { + // mode determines how machine managers will be selected for updates. + // Valid values are All and Partial. + // All means that every resource matched by the machine manager will be updated. + // Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. + // +unionDiscriminator + // +kubebuilder:validation:Required + Mode MachineManagerSelectorMode `json:"mode"` + + // partial provides label selector(s) that can be used to match machine management resources. + // Only permitted when mode is set to "Partial". + // +optional + Partial *PartialSelector `json:"partial,omitempty"` +} + +// PartialSelector provides label selector(s) that can be used to match machine management resources. +type PartialSelector struct { + // machineResourceSelector is a label selector that can be used to select machine resources like MachineSets. + // +kubebuilder:validation:Required + MachineResourceSelector *metav1.LabelSelector `json:"machineResourceSelector,omitempty"` +} + +// MachineManagerSelectorMode is a string enum used in the MachineManagerSelector union discriminator. +// +kubebuilder:validation:Enum:="All";"Partial" +type MachineManagerSelectorMode string + +const ( + // All represents a configuration mode that registers all resources specified by the parent MachineManager for boot image updates. + All MachineManagerSelectorMode = "All" + + // Partial represents a configuration mode that will register resources specified by the parent MachineManager only + // if they match with the label selector. + Partial MachineManagerSelectorMode = "Partial" +) + +// MachineManagerManagedResourceType is a string enum used in the MachineManager type to describe the resource +// type to be registered. +// +kubebuilder:validation:Enum:="machinesets" +type MachineManagerMachineSetsResourceType string + +const ( + // MachineSets represent the MachineSet resource type, which manage a group of machines and belong to the Openshift machine API group. + MachineSets MachineManagerMachineSetsResourceType = "machinesets" +) + +// MachineManagerManagedAPIGroupType is a string enum used in in the MachineManager type to describe the APIGroup +// of the resource type being registered. +// +kubebuilder:validation:Enum:="machine.openshift.io" +type MachineManagerMachineSetsAPIGroupType string + +const ( + // MachineAPI represent the traditional MAPI Group that a machineset may belong to. + // This feature only supports MAPI machinesets at this time. + MachineAPI MachineManagerMachineSetsAPIGroupType = "machine.openshift.io" +) diff --git a/operator/v1/zz_generated.deepcopy.go b/operator/v1/zz_generated.deepcopy.go index 7823bb40cc0..aa05f328d62 100644 --- a/operator/v1/zz_generated.deepcopy.go +++ b/operator/v1/zz_generated.deepcopy.go @@ -2935,6 +2935,7 @@ func (in *MachineConfigurationList) DeepCopyObject() runtime.Object { func (in *MachineConfigurationSpec) DeepCopyInto(out *MachineConfigurationSpec) { *out = *in in.StaticPodOperatorSpec.DeepCopyInto(&out.StaticPodOperatorSpec) + in.ManagedBootImages.DeepCopyInto(&out.ManagedBootImages) return } @@ -2965,6 +2966,67 @@ func (in *MachineConfigurationStatus) DeepCopy() *MachineConfigurationStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineManager) DeepCopyInto(out *MachineManager) { + *out = *in + in.Selection.DeepCopyInto(&out.Selection) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineManager. +func (in *MachineManager) DeepCopy() *MachineManager { + if in == nil { + return nil + } + out := new(MachineManager) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineManagerSelector) DeepCopyInto(out *MachineManagerSelector) { + *out = *in + if in.Partial != nil { + in, out := &in.Partial, &out.Partial + *out = new(PartialSelector) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineManagerSelector. +func (in *MachineManagerSelector) DeepCopy() *MachineManagerSelector { + if in == nil { + return nil + } + out := new(MachineManagerSelector) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedBootImages) DeepCopyInto(out *ManagedBootImages) { + *out = *in + if in.MachineManagers != nil { + in, out := &in.MachineManagers, &out.MachineManagers + *out = make([]MachineManager, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedBootImages. +func (in *ManagedBootImages) DeepCopy() *ManagedBootImages { + if in == nil { + return nil + } + out := new(ManagedBootImages) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MyOperatorResource) DeepCopyInto(out *MyOperatorResource) { *out = *in @@ -3630,6 +3692,27 @@ func (in *OperatorStatus) DeepCopy() *OperatorStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartialSelector) DeepCopyInto(out *PartialSelector) { + *out = *in + if in.MachineResourceSelector != nil { + in, out := &in.MachineResourceSelector, &out.MachineResourceSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialSelector. +func (in *PartialSelector) DeepCopy() *PartialSelector { + if in == nil { + return nil + } + out := new(PartialSelector) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Perspective) DeepCopyInto(out *Perspective) { *out = *in diff --git a/operator/v1/zz_generated.swagger_doc_generated.go b/operator/v1/zz_generated.swagger_doc_generated.go index 48133af8df4..05a1cf30903 100644 --- a/operator/v1/zz_generated.swagger_doc_generated.go +++ b/operator/v1/zz_generated.swagger_doc_generated.go @@ -1274,6 +1274,51 @@ func (MachineConfigurationList) SwaggerDoc() map[string]string { return map_MachineConfigurationList } +var map_MachineConfigurationSpec = map[string]string{ + "managedBootImages": "managedBootImages allows configuration for the management of boot images for machine resources within the cluster. This configuration allows users to select resources that should be updated to the latest boot images during cluster upgrades, ensuring that new machines always boot with the current cluster version's boot image. When omitted, no boot images will be updated.", +} + +func (MachineConfigurationSpec) SwaggerDoc() map[string]string { + return map_MachineConfigurationSpec +} + +var map_MachineManager = map[string]string{ + "": "MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information such as the resource type and the API Group of the resource. It also provides granular control via the selection field.", + "resource": "resource is the machine management resource's type. The only current valid value is machinesets. machinesets means that the machine manager will only register resources of the kind MachineSet.", + "apiGroup": "apiGroup is name of the APIGroup that the machine management resource belongs to. The only current valid value is machine.openshift.io. machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group.", + "selection": "selection allows granular control of the machine management resources that will be registered for boot image updates.", +} + +func (MachineManager) SwaggerDoc() map[string]string { + return map_MachineManager +} + +var map_MachineManagerSelector = map[string]string{ + "mode": "mode determines how machine managers will be selected for updates. Valid values are All and Partial. All means that every resource matched by the machine manager will be updated. Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated.", + "partial": "partial provides label selector(s) that can be used to match machine management resources. Only permitted when mode is set to \"Partial\".", +} + +func (MachineManagerSelector) SwaggerDoc() map[string]string { + return map_MachineManagerSelector +} + +var map_ManagedBootImages = map[string]string{ + "machineManagers": "machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator will watch for changes to this list. Only one entry is permitted per type of machine management resource.", +} + +func (ManagedBootImages) SwaggerDoc() map[string]string { + return map_ManagedBootImages +} + +var map_PartialSelector = map[string]string{ + "": "PartialSelector provides label selector(s) that can be used to match machine management resources.", + "machineResourceSelector": "machineResourceSelector is a label selector that can be used to select machine resources like MachineSets.", +} + +func (PartialSelector) SwaggerDoc() map[string]string { + return map_PartialSelector +} + var map_AdditionalNetworkDefinition = map[string]string{ "": "AdditionalNetworkDefinition configures an extra network that is available but not created by default. Instead, pods must request them by name. type must be specified, along with exactly one \"Config\" that matches the type.", "type": "type is the type of network The supported values are NetworkTypeRaw, NetworkTypeSimpleMacvlan", diff --git a/operator/v1alpha1/0000_10_config-operator_01_olm-CustomNoUpgrade.crd.yaml b/operator/v1alpha1/0000_10_config-operator_01_olm-CustomNoUpgrade.crd.yaml index c984c4d73fc..12210c487c9 100644 --- a/operator/v1alpha1/0000_10_config-operator_01_olm-CustomNoUpgrade.crd.yaml +++ b/operator/v1alpha1/0000_10_config-operator_01_olm-CustomNoUpgrade.crd.yaml @@ -112,8 +112,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -146,6 +151,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/operator/v1alpha1/0000_10_config-operator_01_olm-TechPreviewNoUpgrade.crd.yaml b/operator/v1alpha1/0000_10_config-operator_01_olm-TechPreviewNoUpgrade.crd.yaml index 5cff3708440..deccc298145 100644 --- a/operator/v1alpha1/0000_10_config-operator_01_olm-TechPreviewNoUpgrade.crd.yaml +++ b/operator/v1alpha1/0000_10_config-operator_01_olm-TechPreviewNoUpgrade.crd.yaml @@ -112,8 +112,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -146,6 +151,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with diff --git a/payload-manifests/crds/0000_10_config-operator_01_config.crd.yaml b/payload-manifests/crds/0000_10_config-operator_01_config.crd.yaml index 4f514f9034f..09584dbddbf 100644 --- a/payload-manifests/crds/0000_10_config-operator_01_config.crd.yaml +++ b/payload-manifests/crds/0000_10_config-operator_01_config.crd.yaml @@ -114,8 +114,13 @@ spec: type: string type: type: string + required: + - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map generations: description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction. @@ -148,6 +153,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic observedGeneration: description: observedGeneration is the last generation change you've dealt with