diff --git a/config/v1/0000_10_config-operator_01_node.crd.yaml b/config/v1/0000_10_config-operator_01_node-Default.crd.yaml similarity index 98% rename from config/v1/0000_10_config-operator_01_node.crd.yaml rename to config/v1/0000_10_config-operator_01_node-Default.crd.yaml index a4ef368c2c2..1cfb4982ba4 100644 --- a/config/v1/0000_10_config-operator_01_node.crd.yaml +++ b/config/v1/0000_10_config-operator_01_node-Default.crd.yaml @@ -6,6 +6,7 @@ metadata: 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: Default name: nodes.config.openshift.io spec: group: config.openshift.io diff --git a/config/v1/0000_10_config-operator_01_node-TechPreviewNoUpgrade.crd.yaml b/config/v1/0000_10_config-operator_01_node-TechPreviewNoUpgrade.crd.yaml new file mode 100644 index 00000000000..cad7eaaa8ff --- /dev/null +++ b/config/v1/0000_10_config-operator_01_node-TechPreviewNoUpgrade.crd.yaml @@ -0,0 +1,67 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1107 + 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: nodes.config.openshift.io +spec: + group: config.openshift.io + names: + kind: Node + listKind: NodeList + plural: nodes + singular: node + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: "Node holds cluster-wide information about node specific features. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)." + type: object + required: + - spec + 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 holds user settable values for configuration + type: object + properties: + cgroupMode: + description: CgroupMode determines the cgroups version on the node + type: string + enum: + - v1 + - v2 + - "" + eventedPleg: + description: EventedPleg enables event based PLEG between the kubelet and the CRI-O + type: string + enum: + - Enabled + - Disabled + - "" + workerLatencyProfile: + description: WorkerLatencyProfile determins the how fast the kubelet is updating the status and corresponding reaction of the cluster + type: string + enum: + - Default + - MediumUpdateAverageReaction + - LowUpdateSlowReaction + status: + description: status holds observed values. + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/v1/types_node.go b/config/v1/types_node.go index 233c89d9cc2..eaaaf24a435 100644 --- a/config/v1/types_node.go +++ b/config/v1/types_node.go @@ -42,6 +42,11 @@ type NodeSpec struct { // the status and corresponding reaction of the cluster // +optional WorkerLatencyProfile WorkerLatencyProfileType `json:"workerLatencyProfile,omitempty"` + + // EventedPleg enables event based PLEG between the kubelet and the CRI-O + // +openshift:enable:FeatureSets=TechPreviewNoUpgrade + // +optional + EventedPleg EventedPLEG `json:"eventedPleg,omitempty"` } type NodeStatus struct{} @@ -70,6 +75,17 @@ const ( DefaultUpdateDefaultReaction WorkerLatencyProfileType = "Default" ) +// +kubebuilder:validation:Enum=Enabled;Disabled;"" +type EventedPLEG string + +const ( + // Enabled enables the event based pleg between the kubelet and the cri-o + Enabled EventedPLEG = "Enabled" + + // Disabled disables the event based pleg between the kubelet and the cri-o + Disabled EventedPLEG = "Disabled" +) + const ( // DefaultNodeStatusUpdateFrequency refers to the "--node-status-update-frequency" of the kubelet in case of DefaultUpdateDefaultReaction WorkerLatencyProfile type DefaultNodeStatusUpdateFrequency = 10 * time.Second diff --git a/config/v1/zz_generated.swagger_doc_generated.go b/config/v1/zz_generated.swagger_doc_generated.go index 179d921e15d..6e7337c423b 100644 --- a/config/v1/zz_generated.swagger_doc_generated.go +++ b/config/v1/zz_generated.swagger_doc_generated.go @@ -1813,6 +1813,7 @@ func (NodeList) SwaggerDoc() map[string]string { var map_NodeSpec = map[string]string{ "cgroupMode": "CgroupMode determines the cgroups version on the node", "workerLatencyProfile": "WorkerLatencyProfile determins the how fast the kubelet is updating the status and corresponding reaction of the cluster", + "eventedPleg": "EventedPleg enables event based PLEG between the kubelet and the CRI-O", } func (NodeSpec) SwaggerDoc() map[string]string { diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index e499d2d5b06..0a0b5453c65 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -14558,6 +14558,13 @@ func schema_openshift_api_config_v1_NodeSpec(ref common.ReferenceCallback) commo Format: "", }, }, + "eventedPleg": { + SchemaProps: spec.SchemaProps{ + Description: "EventedPleg enables event based PLEG between the kubelet and the CRI-O", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, diff --git a/openapi/openapi.json b/openapi/openapi.json index 29927c6547f..b4bd4b48e51 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -7849,6 +7849,10 @@ "description": "CgroupMode determines the cgroups version on the node", "type": "string" }, + "eventedPleg": { + "description": "EventedPleg enables event based PLEG between the kubelet and the CRI-O", + "type": "string" + }, "workerLatencyProfile": { "description": "WorkerLatencyProfile determins the how fast the kubelet is updating the status and corresponding reaction of the cluster", "type": "string"