From a99aa8015594cbfd9d46bbc8313f72321a95cc1f Mon Sep 17 00:00:00 2001 From: Todd Malsbary Date: Fri, 4 Jun 2021 14:24:56 -0700 Subject: Add kubevirt and cdi addon helm charts Issue-ID: MULTICLOUD-1324 Signed-off-by: Todd Malsbary Change-Id: I6ba134140f0aca6717c656ffa35c6576426a8b98 --- kud/deployment_infra/helm/cdi/Chart.yaml | 26 +++++++++++++ .../helm/cdi/templates/_helpers.tpl | 43 ++++++++++++++++++++++ kud/deployment_infra/helm/cdi/templates/cdi.yaml | 29 +++++++++++++++ kud/deployment_infra/helm/cdi/values.yaml | 34 +++++++++++++++++ 4 files changed, 132 insertions(+) create mode 100644 kud/deployment_infra/helm/cdi/Chart.yaml create mode 100644 kud/deployment_infra/helm/cdi/templates/_helpers.tpl create mode 100644 kud/deployment_infra/helm/cdi/templates/cdi.yaml create mode 100644 kud/deployment_infra/helm/cdi/values.yaml (limited to 'kud/deployment_infra/helm/cdi') diff --git a/kud/deployment_infra/helm/cdi/Chart.yaml b/kud/deployment_infra/helm/cdi/Chart.yaml new file mode 100644 index 00000000..cca673de --- /dev/null +++ b/kud/deployment_infra/helm/cdi/Chart.yaml @@ -0,0 +1,26 @@ +# Copyright 2021 Intel Corporation, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v2 +appVersion: v1.34.1 +description: | + Containerized-Data-Importer (CDI) is a persistent storage management + add-on for Kubernetes. It's primary goal is to provide a declarative + way to build Virtual Machine Disks on PVCs for Kubevirt VMs. +name: cdi +sources: + - https://github.com/kubevirt/containerized-data-importer +home: https://github.com/kubevirt/containerized-data-importer +type: application +version: 0.1.0 diff --git a/kud/deployment_infra/helm/cdi/templates/_helpers.tpl b/kud/deployment_infra/helm/cdi/templates/_helpers.tpl new file mode 100644 index 00000000..080f7b56 --- /dev/null +++ b/kud/deployment_infra/helm/cdi/templates/_helpers.tpl @@ -0,0 +1,43 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "cdi.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "cdi.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "cdi.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "cdi.labels" -}} +helm.sh/chart: {{ include "cdi.chart" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} diff --git a/kud/deployment_infra/helm/cdi/templates/cdi.yaml b/kud/deployment_infra/helm/cdi/templates/cdi.yaml new file mode 100644 index 00000000..25fee9d5 --- /dev/null +++ b/kud/deployment_infra/helm/cdi/templates/cdi.yaml @@ -0,0 +1,29 @@ +apiVersion: cdi.kubevirt.io/v1beta1 +kind: CDI +metadata: + name: {{ include "cdi.fullname" . }} + labels: + {{- include "cdi.labels" . | nindent 4 }} +spec: + {{- with .Values.certConfig }} + certConfig: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.cloneStrategyOverride }} + cloneStrategyOverride: {{ . }} + {{- end }} + {{- with .Values.config }} + config: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.imagePullPolicy }} + imagePullPolicy: {{ . }} + {{- end }} + {{- with .Values.infra }} + infra: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.workload }} + workload: + {{- toYaml . | nindent 4 }} + {{- end }} diff --git a/kud/deployment_infra/helm/cdi/values.yaml b/kud/deployment_infra/helm/cdi/values.yaml new file mode 100644 index 00000000..31bc3247 --- /dev/null +++ b/kud/deployment_infra/helm/cdi/values.yaml @@ -0,0 +1,34 @@ +nameOverride: "" +fullnameOverride: "" + +# certConfig is the certificate configuration. +#certConfig: {} + +# cloneStrategyOverride: should we use a host-assisted copy even if +# snapshots are available? +#cloneStrategyOverride: "" + +# config is the CDIConfig at CDI level. +#config: {} + +# imagePullPolicy describes a policy for if/when to pull a container +# image. +imagePullPolicy: IfNotPresent + +# infra contains the rules on which nodes CDI infrastructure pods will +# be scheduled. +infra: + nodeSelector: + kubernetes.io/os: linux + tolerations: + - key: CriticalAddonsOnly + operator: Exists + +# uninstallStrategy defines the state to leave CDI on uninstall. +#uninstallStrategy: "" + +# workload restricts on which nodes CDI workload pods will be +# scheduled. +workload: + nodeSelector: + kubernetes.io/os: linux -- cgit 1.2.3-korg