Virtual Machine | Example
Examples.
Disk Volume
YAML
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: mysql8-dv
spec:
source:
http:
url: "https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img"
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi
volumeMode: Filesystem
storageClassName: local-path
Network | Multus
YAML
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: mysql8-lan
namespace: vm
spec:
config: '{
"cniVersion": "0.3.1",
"type": "bridge",
"bridge": "br0",
"ipam": {
"type": "static",
"addresses": [
{
"address": "10.0.50.42/24",
"gateway": "10.0.50.1"
}
],
"dns": {
"nameservers": ["1.1.1.1", "8.8.8.8"]
}
}
}'
Virtual Machine
YAML
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: mysql8-vm
spec:
runStrategy: RerunOnFailure
template:
metadata:
labels:
kubevirt.io/domain: mysql8-vm
spec:
domain:
resources:
overcommitGuestOverhead: true
requests:
memory: 1Gi
limits:
memory: 10Gi
cpu:
cores: 2
memory:
guest: 2Gi
devices:
interfaces:
- name: default
masquerade: {}
- name: br0net
bridge: {}
disks:
- name: mysql8-disk
disk:
bus: virtio
- name: cloudinitdisk
disk:
bus: virtio
networks:
- name: default
pod: {}
- name: br0net
multus:
networkName: mysql8-lan
volumes:
- name: mysql8-disk
dataVolume:
name: mysql8-dv
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
groups:
- admingroup: [root,sys]
hostname: mysql8
packages:
- htop
- net-tools
- procps
- curl
- iputils-ping
- sudo
- vim
- zip
- unzip
- mysql-server-8.0
users:
- name: devops
lock_passwd: false
gecos: Dev Ops
homedir: /home/devops
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
passwd: $6$RZCXI/p94Cpu/jb8$gVBd014f5zOXgVpCBtJtN1k1sJu3iDe4NOYcQVj4FQqD0eQFobuuXXXXXXXXXXXXXXXXXXXXeHwtwAqDl. # mkpasswd -m sha-512 urpasshere
groups: users, sudo, admin
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHEXXXXXXXXXXXXXXXXXXLw/c7TJSaMYvwlRCmSWC1b8 example1
- ssh-ed25519 AAAAC3NzaC1lZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1MK1Y+EeK9yzRY7d example2
groups: users, sudo, admin
write_files:
- path: /etc/netplan/99-enp2s0.yaml
content: |
network:
version: 2
ethernets:
enp2s0:
dhcp4: no
addresses: [10.0.50.42/24]
gateway4: 10.0.50.1
nameservers:
addresses: [10.0.50.15, 8.8.8.8]
runcmd:
- netplan apply