feat: kubevirt - add cdi & ovs

This commit is contained in:
Ryan Yin
2024-03-03 20:01:09 +08:00
parent d3ddf34267
commit 996a27965f
23 changed files with 9208 additions and 132 deletions
@@ -1 +1,22 @@
from .test import *
from pulumi import ResourceOptions
from pulumi_kubernetes.yaml import ConfigGroup
from pathlib import Path
from ..kubevirt import NewKubeVirt
class NewVirtualMachines:
CURRENT_DIR = Path(__file__).parent
CURRENT_DIR_STR = CURRENT_DIR.as_posix()
def __init__(self, provider, kubevirt: NewKubeVirt):
self.provider = provider
self.kubevirt = ConfigGroup(
"virtual-machines",
files=[self.CURRENT_DIR_STR + "/yaml/*.yaml"],
opts=ResourceOptions(
provider=self.provider, depends_on=kubevirt.resouces()
),
)
@@ -1,10 +0,0 @@
from pulumi_kubernetes.yaml import ConfigGroup
from pathlib import Path
currentDir = Path(__file__).parent
kubevirt = ConfigGroup(
"virtual-machines",
files=[currentDir.as_posix() + "/yaml/*.yaml"],
)
@@ -1,34 +1,59 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: testvmi-nocloud
name: ovs-net
annotations:
k8s.v1.cni.cncf.io/resourceName: ovs-cni.network.kubevirt.io/ovsbr1
spec:
terminationGracePeriodSeconds: 30
domain:
resources:
requests:
memory: 1024M
devices:
disks:
config: '{
"cniVersion": "0.4.0",
"type": "ovs",
"bridge": "ovsbr1",
}'
---
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: testvm-nocloud
spec:
runStrategy: Always
template:
metadata:
labels:
kubevirt.io/vm: testvm-nocloud
spec:
terminationGracePeriodSeconds: 30
domain:
resources:
requests:
memory: 1024M
devices:
disks:
- name: containerdisk
disk:
bus: virtio
- name: emptydisk
disk:
bus: virtio
- disk:
bus: virtio
name: cloudinitdisk
networks:
- name: ovs-net
multus: # Multus network as default
default: true
networkName: ovsbr1
volumes:
- name: containerdisk
disk:
bus: virtio
containerDisk:
image: kubevirt/fedora-cloud-container-disk-demo:latest
- name: emptydisk
disk:
bus: virtio
- disk:
bus: virtio
name: cloudinitdisk
volumes:
- name: containerdisk
containerDisk:
image: kubevirt/fedora-cloud-container-disk-demo:latest
- name: emptydisk
emptyDisk:
capacity: "2Gi"
- name: cloudinitdisk
cloudInitNoCloud:
userData: |-
#cloud-config
password: fedora
chpasswd: { expire: False }
emptyDisk:
capacity: "2Gi"
- name: cloudinitdisk
cloudInitNoCloud:
userData: |-
#cloud-config
password: fedora
chpasswd: { expire: False }