Skip to content

Commit f283df6

Browse files
committed
Add kubevirt-talos
1 parent 6249fda commit f283df6

File tree

3 files changed

+721
-0
lines changed

3 files changed

+721
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
#+title: Kubevirt-talos
2+
3+
* Initialise providers
4+
#+begin_src tmate
5+
clusterctl init -b talos -c talos
6+
#+end_src
7+
8+
* Install CDI support for KubeVirt
9+
#+begin_src shell
10+
export TAG=$(curl -s -w %{redirect_url} https://github.com/kubevirt/containerized-data-importer/releases/latest)
11+
export VERSION=$(echo ${TAG##*/})
12+
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-operator.yaml
13+
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-cr.yaml
14+
#+end_src
15+
16+
* Coder Iteration Loop
17+
** Start Coder
18+
#+begin_src tmate :window coder :dir "../../.."
19+

20+
cd ~/sharingio/coder
21+
rm -rf ~/.config/coderv2/ # delete database
22+
coder server --address=0.0.0.0:7080 --access-url=http://localhost:7080 --tunnel \
23+
2>&1 | tee coder-server.log
24+
#+end_src
25+
#+begin_src shell
26+
coder login `cat ~/.config/coderv2/url` -u ii -p ii -e ii@ii.nz
27+
#+end_src
28+
29+
#+RESULTS:
30+
#+begin_example
31+
> Your Coder deployment hasn't been set up!
32+
33+
Welcome to Coder, ii! You're authenticated.
34+
35+
Get started by creating a template: coder templates init
36+
#+end_example
37+
** coder url
38+
#+begin_src shell :dir "../../.."
39+
grep "coder login https://" coder-server.log | cut -d\ -f 4
40+
#+end_src
41+
42+
#+RESULTS:
43+
#+begin_example
44+
https://fcca300a80606183a90494dccb9d8ffc.pit-1.try.coder.app
45+
#+end_example
46+
47+
48+
* kubevirt workspace
49+
** create template and cluster
50+
51+
#+begin_src tmate :dir "../../.." :window kubevirt
52+
cd ~/sharingio/coder
53+
export CRI_PATH=/var/run/containerd/containerd.sock
54+
export IMAGE_REPO=k8s.gcr.io
55+
export NODE_VM_IMAGE_TEMPLATE=quay.io/capk/ubuntu-2004-container-disk:v1.22.0
56+
coder template create kubevirt-talos \
57+
-d examples/templates/kubevirt-sidero-talos -
58+
--yes
59+
coder create kv1 --template kubevirt-talos --parameter-file examples/templates/kubevirt/kubevirt.param.yaml --yes
60+
#+end_src
61+
62+
** update template and new cluster
63+
64+
#+begin_src tmate :dir "../../.." :window kubevirt
65+
export WORKSPACE=kv1
66+
coder template push kubevirt -d examples/templates/kubevirt-talos --yes --parameter-file examples/templates/kubevirt/kubevirt.param.yaml
67+
coder create $WORKSPACE --template kubevirt-talos --parameter-file examples/templates/kubevirt/kubevirt.param.yaml --yes
68+
#+end_src
69+
70+
** grab new cluster kubeconfig
71+
72+
#+begin_src tmate :dir "../../.." :window kubectl
73+
export WORKSPACE=kv1
74+
unset KUBECONFIG
75+
TMPFILE=$(mktemp -t kubeconfig-XXXXX)
76+
kubectl get secrets -n $WORKSPACE ${WORKSPACE}-kubeconfig -o jsonpath={.data.value} | base64 -d > $TMPFILE
77+
export KUBECONFIG=$TMPFILE
78+
kubectl get ns
79+
#+end_src
80+
81+
** inner cluster
82+
#+begin_src shell
83+
export WORKSPACE=kv1
84+
unset KUBECONFIG
85+
TMPFILE=$(mktemp -t kubeconfig-XXXXX)
86+
kubectl get secrets -n $WORKSPACE ${WORKSPACE}-kubeconfig -o jsonpath={.data.value} | base64 -d > $TMPFILE
87+
export KUBECONFIG=$TMPFILE
88+
kubectl get all -A
89+
#+end_src
90+
91+
#+RESULTS:
92+
#+begin_example
93+
NAMESPACE NAME READY STATUS RESTARTS AGE
94+
default pod/code-server-0 0/1 Pending 0 81s
95+
kube-system pod/coredns-749558f7dd-mwwff 0/1 Pending 0 81s
96+
kube-system pod/coredns-749558f7dd-ppw92 0/1 Pending 0 81s
97+
kube-system pod/etcd-kv1-97525 1/1 Running 0 90s
98+
kube-system pod/kube-apiserver-kv1-97525 1/1 Running 0 90s
99+
kube-system pod/kube-controller-manager-kv1-97525 1/1 Running 0 90s
100+
kube-system pod/kube-proxy-48s9l 1/1 Running 0 81s
101+
kube-system pod/kube-scheduler-kv1-97525 1/1 Running 0 90s
102+
103+
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
104+
default service/kubernetes ClusterIP 10.95.0.1 <none> 443/TCP 97s
105+
kube-system service/kube-dns ClusterIP 10.95.0.10 <none> 53/UDP,53/TCP,9153/TCP 96s
106+
107+
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
108+
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 96s
109+
110+
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
111+
kube-system deployment.apps/coredns 0/2 2 0 96s
112+
113+
NAMESPACE NAME DESIRED CURRENT READY AGE
114+
kube-system replicaset.apps/coredns-749558f7dd 2 2 0 82s
115+
116+
NAMESPACE NAME READY AGE
117+
default statefulset.apps/code-server 0/1 88s
118+
#+end_example
119+
120+
** cni not yet working
121+
#+begin_src shell :prologue "(\n" :epilogue "\n) 2>&1\n:\n"
122+
export WORKSPACE=kv1
123+
unset KUBECONFIG
124+
TMPFILE=$(mktemp -t kubeconfig-XXXXX)
125+
kubectl get secrets -n $WORKSPACE ${WORKSPACE}-kubeconfig -o jsonpath={.data.value} | base64 -d > $TMPFILE
126+
export KUBECONFIG=$TMPFILE
127+
kubectl describe nodes | grep -B6 KubeletNotReady
128+
#+end_src
129+
130+
#+RESULTS:
131+
#+begin_example
132+
Conditions:
133+
Type Status LastHeartbeatTime LastTransitionTime Reason Message
134+
---- ------ ----------------- ------------------ ------ -------
135+
MemoryPressure False Sat, 08 Oct 2022 23:39:08 -0600 Sat, 08 Oct 2022 23:38:52 -0600 KubeletHasSufficientMemory kubelet has sufficient memory available
136+
DiskPressure False Sat, 08 Oct 2022 23:39:08 -0600 Sat, 08 Oct 2022 23:38:52 -0600 KubeletHasNoDiskPressure kubelet has no disk pressure
137+
PIDPressure False Sat, 08 Oct 2022 23:39:08 -0600 Sat, 08 Oct 2022 23:38:52 -0600 KubeletHasSufficientPID kubelet has sufficient PID available
138+
Ready False Sat, 08 Oct 2022 23:39:08 -0600 Sat, 08 Oct 2022 23:38:52 -0600 KubeletNotReady container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized
139+
#+end_example

0 commit comments

Comments
 (0)