Skip to content

Commit 3ee10d4

Browse files
committed
Add cloud-hypervisor-provider
1 parent 0f7228f commit 3ee10d4

File tree

7 files changed

+200
-0
lines changed

7 files changed

+200
-0
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ metalnet: kubectl ## Install metalnet
7373
libvirt-provider: kubectl ## Install the libvirt-provider
7474
$(KUBECTL) apply -k cluster/local/libvirt-provider
7575

76+
cloud-hypervisor-provider: kubectl ## Install the cloud-hypervisor-provider
77+
$(KUBECTL) apply -k cluster/local/cloud-hypervisor-provider
78+
7679
## Remove components
7780
down: remove-ironcore remove-ironcore-net remove-apinetlet remove-metalnet remove-dpservice remove-metalbond remove-metalbond-client remove-metalnetlet remove-libvirt-provider unprepare ## Remove the ironcore stack
7881

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
4+
resources:
5+
- [email protected]:ironcore-dev/cloud-hypervisor-provider/config/default?ref=ed84aa2164fe0b53ee7fbe39364cda64f859927c
6+
- role-binding.yaml
7+
- role.yaml
8+
9+
images:
10+
- name: machinepoollet
11+
newName: ghcr.io/ironcore-dev/ironcore-machinepoollet
12+
digest: sha256:7a4584539882e9fb22f213756b2cfe37f8f1d43896351545fc4192ce9825d970
13+
- name: cloud-hypervisor-provider
14+
newName: ghcr.io/ironcore-dev/cloud-hypervisor-provider
15+
digest: sha256:645b8044ddf422938866c9ba7a776cfe59706c24162a16f5fc7880930365fec3
16+
- name: cloud-hypervisor-prepare-host
17+
newName: ghcr.io/ironcore-dev/cloud-hypervisor-prepare-host
18+
digest: sha256:4d7e927839c7851e63f0256e5641d5dc88ca6ff4703cf3143a4a672cf49b44a8
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: cloud-hypervisor-provider-apinet-rolebinding
5+
namespace: cloud-hypervisor-provider-system
6+
roleRef:
7+
apiGroup: rbac.authorization.k8s.io
8+
kind: ClusterRole
9+
name: cloud-hypervisor-provider-apinet-role
10+
subjects:
11+
- kind: ServiceAccount
12+
name: cloud-hypervisor-provider-controller-manager
13+
namespace: cloud-hypervisor-provider
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: ClusterRole
4+
metadata:
5+
name: cloud-hypervisor-provider-apinet-role
6+
rules:
7+
- apiGroups:
8+
- ""
9+
resources:
10+
- events
11+
verbs:
12+
- create
13+
- patch
14+
- apiGroups:
15+
- authentication.k8s.io
16+
resources:
17+
- tokenreviews
18+
verbs:
19+
- create
20+
- apiGroups:
21+
- authorization.k8s.io
22+
resources:
23+
- subjectaccessreviews
24+
verbs:
25+
- create
26+
- apiGroups:
27+
- certificates.k8s.io
28+
resources:
29+
- certificatesigningrequests
30+
verbs:
31+
- create
32+
- get
33+
- list
34+
- watch
35+
- apiGroups:
36+
- certificates.k8s.io
37+
resources:
38+
- certificatesigningrequests/metalnetletclient
39+
verbs:
40+
- create
41+
- apiGroups:
42+
- core.apinet.ironcore.dev
43+
resources:
44+
- instances
45+
- nodes
46+
- networks
47+
verbs:
48+
- get
49+
- list
50+
- patch
51+
- update
52+
- watch
53+
- apiGroups:
54+
- core.apinet.ironcore.dev
55+
resources:
56+
- instances/finalizers
57+
- networkinterfaces/finalizers
58+
- networks/finalizers
59+
- nodes/finalizers
60+
verbs:
61+
- patch
62+
- update
63+
- apiGroups:
64+
- core.apinet.ironcore.dev
65+
resources:
66+
- instances/status
67+
- networkinterfaces/status
68+
- networks/status
69+
- nodes/status
70+
verbs:
71+
- get
72+
- patch
73+
- update
74+
- apiGroups:
75+
- core.apinet.ironcore.dev
76+
resources:
77+
- loadbalancerroutings
78+
- loadbalancers
79+
- natgateways
80+
- nattables
81+
- networkpolicies
82+
- networkpolicyrules
83+
verbs:
84+
- get
85+
- list
86+
- watch
87+
- apiGroups:
88+
- core.apinet.ironcore.dev
89+
resources:
90+
- networkinterfaces
91+
verbs:
92+
- create
93+
- delete
94+
- get
95+
- list
96+
- patch
97+
- update
98+
- watch

base/machine-classes/machine-classes.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,13 @@ metadata:
77
capabilities:
88
cpu: 2
99
memory: 2Gi
10+
---
11+
apiVersion: compute.ironcore.dev/v1alpha1
12+
kind: MachineClass
13+
metadata:
14+
labels:
15+
environment: experimental
16+
name: t3-small-experimental
17+
capabilities:
18+
cpu: 2
19+
memory: 2Gi
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
4+
resources:
5+
- ../../../base/cloud-hypervisor-provider
6+
7+
patches:
8+
- path: patch-manager-args.yaml
9+
target:
10+
group: apps
11+
version: v1
12+
kind: DaemonSet
13+
namespace: cloud-hypervisor-provider-system
14+
name: cloud-hypervisor-provider-controller-manager
15+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: apps/v1
2+
kind: DaemonSet
3+
metadata:
4+
namespace: cloud-hypervisor-provider-system
5+
name: cloud-hypervisor-provider-controller-manager
6+
spec:
7+
template:
8+
spec:
9+
initContainers:
10+
- name: prepare-host
11+
imagePullPolicy: IfNotPresent
12+
args:
13+
- --cloud-hypervisor-bin-path=/var/lib/cloud-hypervisor-provider
14+
- --cloud-hypervisor-bin-sub-dir=v45.0
15+
- --cloud-hypervisor-bin-url=https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/v45.0/cloud-hypervisor-static
16+
- --cloud-hypervisor-firmware-path=/var/lib/cloud-hypervisor-provider
17+
- --cloud-hypervisor-firmware-url=https://github.com/cloud-hypervisor/rust-hypervisor-firmware/releases/download/0.5.0/hypervisor-fw
18+
- --cloud-hypervisor-firmware-sub-dir=0.5.0
19+
- --download
20+
- --zap-log-level=3
21+
containers:
22+
- name: manager
23+
args:
24+
- --health-probe-bind-address=:8081
25+
- --metrics-bind-address=127.0.0.1:8080
26+
- --machine-pool-name=$(NODE_NAME)-ch
27+
- --provider-id=cloud-hypervisor-provider://$(NODE_NAME)
28+
- --machine-runtime-endpoint=unix:/var/run/cloud-hypervisor-provider.sock
29+
- --machine-downward-api-label=root-machine-namespace=metadata.labels['downward-api.cloud-hypervisor-provider.ironcore.dev/root-machine-namespace']
30+
- --machine-downward-api-label=root-machine-name=metadata.labels['downward-api.cloud-hypervisor-provider.ironcore.dev/root-machine-name']
31+
- --machine-downward-api-label=root-machine-uid=metadata.labels['downward-api.cloud-hypervisor-provider.ironcore.dev/root-machine-uid']
32+
- --dial-timeout=10s
33+
- name: provider
34+
imagePullPolicy: IfNotPresent
35+
args:
36+
- --address=/var/run/cloud-hypervisor-provider.sock
37+
- --provider-root-dir=/var/lib/cloud-hypervisor-provider
38+
- --zap-log-level=3
39+
- --cloud-hypervisor-bin-path=/home/lukasfrank/cloud-hypervisor-provider/version/cloud-hypervisor
40+
- --cloud-hypervisor-firmware-path=/home/lukasfrank/cloud-hypervisor-provider/version/firmware
41+
- --detach-vms=false
42+
- --machine-class=t3-small-experimental,2000,2147483648
43+
- --network-interface-plugin-name=isolated

0 commit comments

Comments
 (0)