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/kubevirt/Chart.yaml | 24 +++++++++ .../helm/kubevirt/templates/_helpers.tpl | 43 +++++++++++++++ .../helm/kubevirt/templates/kubevirt.yaml | 55 +++++++++++++++++++ kud/deployment_infra/helm/kubevirt/values.yaml | 61 ++++++++++++++++++++++ 4 files changed, 183 insertions(+) create mode 100644 kud/deployment_infra/helm/kubevirt/Chart.yaml create mode 100644 kud/deployment_infra/helm/kubevirt/templates/_helpers.tpl create mode 100644 kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml create mode 100644 kud/deployment_infra/helm/kubevirt/values.yaml (limited to 'kud/deployment_infra/helm/kubevirt') diff --git a/kud/deployment_infra/helm/kubevirt/Chart.yaml b/kud/deployment_infra/helm/kubevirt/Chart.yaml new file mode 100644 index 00000000..75d31626 --- /dev/null +++ b/kud/deployment_infra/helm/kubevirt/Chart.yaml @@ -0,0 +1,24 @@ +# 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: v0.41.0 +description: | + KubeVirt is a virtual machine management add-on for Kubernetes. +name: kubevirt +sources: + - https://github.com/kubevirt/kubevirt +home: https://github.com/kubevirt/kubevirt +type: application +version: 0.1.0 diff --git a/kud/deployment_infra/helm/kubevirt/templates/_helpers.tpl b/kud/deployment_infra/helm/kubevirt/templates/_helpers.tpl new file mode 100644 index 00000000..3935c906 --- /dev/null +++ b/kud/deployment_infra/helm/kubevirt/templates/_helpers.tpl @@ -0,0 +1,43 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "kubevirt.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 "kubevirt.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 "kubevirt.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "kubevirt.labels" -}} +helm.sh/chart: {{ include "kubevirt.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/kubevirt/templates/kubevirt.yaml b/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml new file mode 100644 index 00000000..c8f9d60a --- /dev/null +++ b/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml @@ -0,0 +1,55 @@ +apiVersion: kubevirt.io/v1 +kind: KubeVirt +metadata: + name: {{ include "kubevirt.fullname" . }} + labels: + {{- include "kubevirt.labels" . | nindent 4 }} +spec: + {{- with .Values.certificateRotateStrategy }} + certificateRotateStrategy: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.configuration }} + configuration: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.customizeComponents }} + customizeComponents: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.imagePullPolicy }} + imagePullPolicy: {{ . }} + {{- end }} + {{- with .Values.imageRegistry }} + imageRegistry: {{ . }} + {{- end }} + {{- with .Values.imageTag }} + imageTag: {{ . }} + {{- end }} + {{- with .Values.infra }} + infra: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.monitorAccount }} + monitorAccount: {{ . }} + {{- end }} + {{- with .Values.monitorNamespace }} + monitorNamespace: {{ . }} + {{- end }} + {{- with .Values.productName }} + productName: {{ . }} + {{- end }} + {{- with .Values.productVersion }} + productVersion: {{ . }} + {{- end }} + {{- with .Values.uninstallStrategy }} + uninstallStrategy: {{ . }} + {{- end }} + {{- with .Values.workloadUpdateStrategy }} + workloadUpdateStrategy: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.workloads }} + workloads: + {{- toYaml . | nindent 4 }} + {{- end }} diff --git a/kud/deployment_infra/helm/kubevirt/values.yaml b/kud/deployment_infra/helm/kubevirt/values.yaml new file mode 100644 index 00000000..c08df7ea --- /dev/null +++ b/kud/deployment_infra/helm/kubevirt/values.yaml @@ -0,0 +1,61 @@ +nameOverride: "" +fullnameOverride: "" + +certificateRotateStrategy: {} + +# configuration holds kubevirt configurations. Same as the virt-configMap. +configuration: + developerConfiguration: + featureGates: [] + +customizeComponents: {} + +# imagePullPolicy is the policy to use. +imagePullPolicy: IfNotPresent + +# imageRegistry is the image registry to pull the container images +# from. Defaults to the same registry the operator's container image +# is pulled from. +#imageRegistry: "" + +# imageTag is the tag to use for the continer images +# installed. Defaults to the same tag as the operator's container +# image. +#imageTag: "" + +# infra is the selectors and tolerations that should apply to KubeVirt +# infrastructure components. +#infra: {} + +# monitorAccount is the name of the Prometheus service account that +# needs read-access to KubeVirt endpoints. Defaults to prometheus-k8s. +#monitorAccount: "" + +# monitorNamespace is the namespace Prometheus is deployed +# in. Defaults to openshift-monitor. +#monitorNamespace: "" + +# productName designates the apps.kubevirt.io/part-of label for +# KubeVirt components. Useful if KubeVirt is included as part of a +# product. If ProductName is not specified, the part-of label will be +# omitted. +#productName: "" + +# productVersion designates the apps.kubevirt.io/version label for +# KubeVirt components. Useful if KubeVirt is included as part of a +# product. If ProductVersion is not specified, KubeVirt's version will +# be used. +#productVersion: "" + +# uninstallStrategy specifies if kubevirt can be deleted if workloads +# are still present. This is mainly a precaution to avoid accidental +# data loss. +#uninstallStrategy: "" + +# workloadUpdateStrategy defines at the cluster level how to handle +# automated workload updates. +workloadUpdateStrategy: {} + +# workloads contains the selectors and tolerations that should apply +# to KubeVirt workloads. +#workloads: {} -- cgit 1.2.3-korg