From a58008ee42b01b7185e1335d2b804dc2df384998 Mon Sep 17 00:00:00 2001 From: Tim Allclair Date: Fri, 31 Aug 2018 16:09:57 -0700 Subject: [PATCH] Register RuntimeClass CRD as an addon --- cluster/addons/runtimeclass/OWNERS | 5 ++++ cluster/addons/runtimeclass/README.md | 12 +++++++++ .../addons/runtimeclass/runtimeclass_crd.yaml | 26 +++++++++++++++++++ cluster/gce/gci/configure-helper.sh | 4 +++ 4 files changed, 47 insertions(+) create mode 100644 cluster/addons/runtimeclass/OWNERS create mode 100644 cluster/addons/runtimeclass/README.md create mode 100644 cluster/addons/runtimeclass/runtimeclass_crd.yaml diff --git a/cluster/addons/runtimeclass/OWNERS b/cluster/addons/runtimeclass/OWNERS new file mode 100644 index 00000000000..bea017842ed --- /dev/null +++ b/cluster/addons/runtimeclass/OWNERS @@ -0,0 +1,5 @@ +approvers: +- tallclair +- dchen1107 +reviewers: +- sig-node-reviewers diff --git a/cluster/addons/runtimeclass/README.md b/cluster/addons/runtimeclass/README.md new file mode 100644 index 00000000000..bcb6aaec394 --- /dev/null +++ b/cluster/addons/runtimeclass/README.md @@ -0,0 +1,12 @@ +# RuntimeClass + +RuntimeClass is an alpha feature for supporting multiple container runtimes within a cluster. When +enabled, pods can select a RuntimeClass to run with using the `PodSpec.RuntimeClassName` field. + +To enable RuntimeClass, set the feature gate `RuntimeClass=true`, and ensure the CRD defined in this +directory is installed. + +For more information, see: +https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/cluster/addons/runtimeclass/README.md?pixel)]() diff --git a/cluster/addons/runtimeclass/runtimeclass_crd.yaml b/cluster/addons/runtimeclass/runtimeclass_crd.yaml new file mode 100644 index 00000000000..1c135098603 --- /dev/null +++ b/cluster/addons/runtimeclass/runtimeclass_crd.yaml @@ -0,0 +1,26 @@ +kind: CustomResourceDefinition +apiVersion: apiextensions.k8s.io/v1beta1 +metadata: + name: runtimeclasses.node.k8s.io + labels: + addonmanager.kubernetes.io/mode: Reconcile +spec: + group: node.k8s.io + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true + names: + plural: runtimeclasses + singular: runtimeclass + kind: RuntimeClass + scope: Cluster + validation: + openAPIV3Schema: + properties: + spec: + properties: + runtimeHandler: + type: string + pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$' diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 009ede2f075..9bd2c5a5a5b 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -2498,11 +2498,15 @@ EOF setup-addon-manifests "addons" "istio/noauth" fi fi + if [[ "${FEATURE_GATES:-}" =~ "RuntimeClass=true" ]]; then + setup-addon-manifests "addons" "runtimeclass" + fi if [[ -n "${EXTRA_ADDONS_URL:-}" ]]; then download-extra-addons setup-addon-manifests "addons" "gce-extras" fi + # Place addon manager pod manifest. cp "${src_dir}/kube-addon-manager.yaml" /etc/kubernetes/manifests }