mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-03-21 22:41:33 +00:00
This PR introduces the default instancetypes: - cx1.2xlarge - cx1.4xlarge - cx1.8xlarge - cx1.large - cx1.medium - cx1.xlarge - gn1.2xlarge - gn1.4xlarge - gn1.8xlarge - gn1.xlarge - m1.2xlarge - m1.4xlarge - m1.8xlarge - m1.large - m1.xlarge - n1.2xlarge - n1.4xlarge - n1.8xlarge - n1.large - n1.medium - n1.xlarge - o1.2xlarge - o1.4xlarge - o1.8xlarge - o1.large - o1.medium - o1.micro - o1.nano - o1.small - o1.xlarge - rt1.2xlarge - rt1.4xlarge - rt1.8xlarge - rt1.large - rt1.medium - rt1.micro - rt1.small - rt1.xlarge - u1.2xlarge - u1.2xmedium - u1.4xlarge - u1.8xlarge - u1.large - u1.medium - u1.micro - u1.nano - u1.small - u1.xlarge And the following profiles: - alpine - centos.7 - centos.7.desktop - centos.stream10 - centos.stream10.desktop - centos.stream8 - centos.stream8.desktop - centos.stream8.dpdk - centos.stream9 - centos.stream9.desktop - centos.stream9.dpdk - cirros - fedora - fedora.arm64 - opensuse.leap - opensuse.tumbleweed - rhel.10 - rhel.10.arm64 - rhel.7 - rhel.7.desktop - rhel.8 - rhel.8.desktop - rhel.8.dpdk - rhel.9 - rhel.9.arm64 - rhel.9.desktop - rhel.9.dpdk - rhel.9.realtime - sles - ubuntu - windows.10 - windows.10.virtio - windows.11 - windows.11.virtio - windows.2k16 - windows.2k16.virtio - windows.2k19 - windows.2k19.virtio - windows.2k22 - windows.2k22.virtio - windows.2k25 - windows.2k25.virtio as part of https://github.com/aenix-io/cozystack/issues/258 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new instance types and preferences for Virtual Machines. - Added new sections in the documentation for better clarity on series and parameters. - Enhanced resource management with new fields for CPU and memory specifications. - New release added for `kubevirt-common-instancetypes`. - Added a new chart for `vm-disk` with detailed deployment instructions. - New `vm-instance` chart introduced with comprehensive deployment details. - New `vm-disk` resources for managing virtual machine disks and resizing PVCs. - **Bug Fixes** - Corrected indentation issues in configuration files. - **Documentation** - Updated README files with new parameters and sections for improved user guidance. - **Chores** - Version updates across various components to ensure compatibility and access to the latest features. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
99 lines
3.2 KiB
YAML
99 lines
3.2 KiB
YAML
{{- if and .Values.instanceType (not (lookup "instancetype.kubevirt.io/v1beta1" "VirtualMachineClusterInstancetype" "" .Values.instanceType)) }}
|
|
{{- fail (printf "Specified instancetype not exists in cluster: %s" .Values.instanceType) }}
|
|
{{- end }}
|
|
{{- if and .Values.instanceProfile (not (lookup "instancetype.kubevirt.io/v1beta1" "VirtualMachineClusterPreference" "" .Values.instanceProfile)) }}
|
|
{{- fail (printf "Specified profile not exists in cluster: %s" .Values.instanceProfile) }}
|
|
{{- end }}
|
|
|
|
apiVersion: kubevirt.io/v1
|
|
kind: VirtualMachine
|
|
metadata:
|
|
name: {{ include "virtual-machine.fullname" . }}
|
|
labels:
|
|
{{- include "virtual-machine.labels" . | nindent 4 }}
|
|
spec:
|
|
running: {{ .Values.running | default "true" }}
|
|
{{- with .Values.instanceType }}
|
|
instancetype:
|
|
kind: VirtualMachineClusterInstancetype
|
|
name: {{ . }}
|
|
revisionName: null
|
|
{{- end }}
|
|
{{- with .Values.instanceProfile }}
|
|
preference:
|
|
kind: VirtualMachineClusterPreference
|
|
name: {{ . }}
|
|
revisionName: null
|
|
{{- end }}
|
|
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
kubevirt.io/allow-pod-bridge-network-live-migration: "true"
|
|
labels:
|
|
{{- include "virtual-machine.labels" . | nindent 8 }}
|
|
spec:
|
|
domain:
|
|
{{- if and .Values.resources .Values.resources.cpu }}
|
|
cpu:
|
|
cores: {{ .Values.resources.cpu }}
|
|
{{- end }}
|
|
{{- if and .Values.resources .Values.resources.memory }}
|
|
resources:
|
|
requests:
|
|
memory: {{ .Values.resources.memory | quote }}
|
|
{{- end }}
|
|
devices:
|
|
disks:
|
|
{{- range $i, $disk := .Values.disks }}
|
|
- name: disk-{{ .name }}
|
|
{{- $disk := lookup "cdi.kubevirt.io/v1beta1" "DataVolume" $.Release.Namespace .name }}
|
|
{{- if $disk }}
|
|
{{- if and (hasKey $disk.metadata.annotations "vm-disk.cozystack.io/optical") (eq (index $disk.metadata.annotations "vm-disk.cozystack.io/optical") "true") }}
|
|
cdrom: {}
|
|
{{- else }}
|
|
disk: {}
|
|
{{- end }}
|
|
{{- if eq $i 0 }}
|
|
bootOrder: 1
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- fail (printf "Specified disk not exists in cluster: %s" .name) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if or .Values.sshKeys .Values.cloudInit }}
|
|
- name: cloudinitdisk
|
|
disk:
|
|
bus: virtio
|
|
{{- end }}
|
|
interfaces:
|
|
- name: default
|
|
bridge: {}
|
|
machine:
|
|
type: ""
|
|
{{- with .Values.sshKeys }}
|
|
accessCredentials:
|
|
- sshPublicKey:
|
|
source:
|
|
secret:
|
|
secretName: {{ include "virtual-machine.fullname" $ }}-ssh-keys
|
|
propagationMethod:
|
|
noCloud: {}
|
|
{{- end }}
|
|
terminationGracePeriodSeconds: 30
|
|
volumes:
|
|
{{- range .Values.disks }}
|
|
- name: disk-{{ .name }}
|
|
dataVolume:
|
|
name: {{ .name }}
|
|
{{- end }}
|
|
{{- if or .Values.sshKeys .Values.cloudInit }}
|
|
- name: cloudinitdisk
|
|
cloudInitNoCloud:
|
|
secretRef:
|
|
name: {{ include "virtual-machine.fullname" . }}-cloud-init
|
|
{{- end }}
|
|
networks:
|
|
- name: default
|
|
pod: {}
|