Skip to content

Commit

Permalink
Merge pull request #1453 from jkyros/migrate-mco-api
Browse files Browse the repository at this point in the history
MCO-52: add MCO API into openshift/api
  • Loading branch information
openshift-merge-robot authored Sep 29, 2023
2 parents 23b54c2 + 545417a commit 73731d3
Show file tree
Hide file tree
Showing 27 changed files with 5,023 additions and 32 deletions.
6 changes: 6 additions & 0 deletions machineconfiguration/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
reviewers:
- cgwalters
- sinnykumari
- yuqi-zhang
- cheesesashimi
- jkyros
25 changes: 25 additions & 0 deletions machineconfiguration/install.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package machineconfiguration

import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"

machineconfigurationv1 "github.com/openshift/api/machineconfiguration/v1"
)

// GroupName defines the API group for machineconfiguration.
const GroupName = "machineconfiguration.openshift.io"

var (
SchemeBuilder = runtime.NewSchemeBuilder(machineconfigurationv1.Install)
// Install is a function which adds every version of this group to a scheme
Install = SchemeBuilder.AddToScheme
)

func Resource(resource string) schema.GroupResource {
return schema.GroupResource{Group: GroupName, Resource: resource}
}

func Kind(kind string) schema.GroupKind {
return schema.GroupKind{Group: GroupName, Kind: kind}
}
11 changes: 11 additions & 0 deletions machineconfiguration/install_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package machineconfiguration

import (
"testing"
)

func TestGroupName(t *testing.T) {
if got, want := GroupName, "machineconfiguration.openshift.io"; got != want {
t.Fatalf("mismatch group name, got: %s want: %s", got, want)
}
}
140 changes: 140 additions & 0 deletions machineconfiguration/v1/0000_80_containerruntimeconfig.crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: containerruntimeconfigs.machineconfiguration.openshift.io
labels:
"openshift.io/operator-managed": ""
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"
spec:
group: machineconfiguration.openshift.io
names:
kind: ContainerRuntimeConfig
listKind: ContainerRuntimeConfigList
plural: containerruntimeconfigs
singular: containerruntimeconfig
shortNames:
- ctrcfg
scope: Cluster
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
description: "ContainerRuntimeConfig describes a customized Container Runtime configuration. \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: ContainerRuntimeConfigSpec defines the desired state of ContainerRuntimeConfig
type: object
required:
- containerRuntimeConfig
properties:
containerRuntimeConfig:
description: ContainerRuntimeConfiguration defines the tuneables of the container runtime
type: object
properties:
defaultRuntime:
description: defaultRuntime is the name of the OCI runtime to be used as the default.
type: string
logLevel:
description: logLevel specifies the verbosity of the logs based on the level it is set to. Options are fatal, panic, error, warn, info, and debug.
type: string
logSizeMax:
description: logSizeMax specifies the Maximum size allowed for the container log file. Negative numbers indicate that no size limit is imposed. If it is positive, it must be >= 8192 to match/exceed conmon's read buffer.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
overlaySize:
description: 'overlaySize specifies the maximum size of a container image. This flag can be used to set quota on the size of container images. (default: 10GB)'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
pidsLimit:
description: pidsLimit specifies the maximum number of processes allowed in a container
type: integer
format: int64
machineConfigPoolSelector:
description: MachineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to. A nil selector will result in no pools being selected.
type: object
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
type: array
items:
description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
type: object
required:
- key
- operator
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.
type: array
items:
type: string
matchLabels:
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
additionalProperties:
type: string
x-kubernetes-map-type: atomic
status:
description: ContainerRuntimeConfigStatus defines the observed state of a ContainerRuntimeConfig
type: object
properties:
conditions:
description: conditions represents the latest available observations of current state.
type: array
items:
description: ContainerRuntimeConfigCondition defines the state of the ContainerRuntimeConfig
type: object
properties:
lastTransitionTime:
description: lastTransitionTime is the time of the last update to the current status object.
type: string
format: date-time
nullable: true
message:
description: message provides additional information about the current condition. This is only to be consumed by humans.
type: string
reason:
description: reason is the reason for the condition's last transition. Reasons are PascalCase
type: string
status:
description: status of the condition, one of True, False, Unknown.
type: string
type:
description: type specifies the state of the operator's reconciliation functionality.
type: string
x-kubernetes-list-type: atomic
observedGeneration:
description: observedGeneration represents the generation observed by the controller.
type: integer
format: int64
Loading

0 comments on commit 73731d3

Please sign in to comment.