docker run -d -p 5000:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
--restart always \
--name registry-docker.io registry:2.5
docker run -d -p 5001:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://k8s.gcr.io \
--restart always \
--name registry-k8s.gcr.io registry:2.5
docker run -d -p 5002:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://quay.io \
--restart always \
--name registry-quay.io registry:2.5
docker run -d -p 5003:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://gcr.io \
--restart always \
--name registry-gcr.io registry:2.5
docker run -d -p 5004:5000 \
-e REGISTRY_PROXY_REMOTEURL=https://ghcr.io \
--restart always \
--name registry-ghcr.io registry:2.5
make clean
make sfyra talos-artifacts
chmod a+x _out/v0.7.0-alpha.7/talosctl-linux-amd64
sudo -E ./_out/sfyra bootstrap cluster \
--registry-mirrors docker.io=http://172.24.0.1:5000 \
--registry-mirrors k8s.gcr.io=http://172.24.0.1:5001 \
--registry-mirrors quay.io=http://172.24.0.1:5002 \
--registry-mirrors gcr.io=http://172.24.0.1:5003 \
--registry-mirrors ghcr.io=http://172.24.0.1:5004
sudo -E ./_out/sfyra bootstrap capi
talosctl config nodes 172.24.0.2
talosctl kubeconfig bootstrap
kubectl --kubeconfig bootstrap patch deploy -n sidero-system sidero-controller-manager --type='json' \
-p='[{"op": "add", "path": "/spec/template/spec/containers/1/args/-", "value": "--auto-accept-servers=true"}]'
bash -c 'cat <<EOF | kubectl --kubeconfig bootstrap apply -f -
apiVersion: metal.sidero.dev/v1alpha1
kind: Environment
metadata:
name: default
spec:
kernel:
url: "https://github.com/talos-systems/talos/releases/download/v0.7.0-alpha.7/vmlinuz-amd64"
sha512: ""
args:
- initrd=initramfs.xz
- page_poison=1
- slab_nomerge
- slub_debug=P
- pti=on
- random.trust_cpu=on
- ima_template=ima-ng
- ima_appraise=fix
- ima_hash=sha512
- console=tty0
- console=ttyS0
- console=ttyS1,115200n8
- earlyprintk=ttyS1,115200n8
- panic=30
- printk.devkmsg=on
- talos.platform=metal
- talos.config=http://172.24.0.2:9091/configdata?uuid=
initrd:
url: "https://github.com/talos-systems/talos/releases/download/v0.7.0-alpha.7/initramfs-amd64.xz"
sha512: ""
EOF'
bash -c 'cat <<EOF | kubectl --kubeconfig bootstrap apply -f -
apiVersion: metal.sidero.dev/v1alpha1
kind: ServerClass
metadata:
name: default
spec:
qualifiers:
cpu:
- manufacturer: QEMU
configPatches:
- op: replace
path: /machine/install
value:
disk: /dev/vda
image: ghcr.io/talos-systems/installer:v0.7.0-alpha.7
bootloader: true
wipe: false
force: false
extraKernelArgs:
- console=ttyS0
- op: add
path: /machine/registries
value:
mirrors:
docker.io:
endpoints:
- http://172.24.0.1:5000
gcr.io:
endpoints:
- http://172.24.0.1:5003
ghcr.io:
endpoints:
- http://172.24.0.1:5004
k8s.gcr.io:
endpoints:
- http://172.24.0.1:5001
quay.io:
endpoints:
- http://172.24.0.1:5002
EOF'
sudo -E ./_out/sfyra bootstrap servers
watch kubectl --kubeconfig bootstrap get servers
kubectl --kubeconfig bootstrap get serverclasses
sudo -E ./_out/sfyra loadbalancer create --kubeconfig bootstrap --load-balancer-port 10000 --cluster-name demo
Zsh:
set -x CONTROL_PLANE_ENDPOINT 172.25.0.1
set -x CONTROL_PLANE_PORT 10000
set -x CONTROL_PLANE_SERVERCLASS default
set -x WORKER_SERVERCLASS default
set -x KUBERNETES_VERSION v1.19.3
Bash:
export CONTROL_PLANE_ENDPOINT=172.25.0.1
export CONTROL_PLANE_PORT=10000
export CONTROL_PLANE_SERVERCLASS=default
export WORKER_SERVERCLASS=default
export KUBERNETES_VERSION=v1.19.3
clusterctl config cluster demo -i sidero:v0.1.0-alpha.6 > demo.yaml
kubectl --kubeconfig bootstrap apply -f demo.yaml
kubectl --kubeconfig bootstrap get talosconfig -o yaml -l cluster.x-k8s.io/cluster-name=demo -o jsonpath='{.items[0].status.talosConfig}' > demo-talosconfig
talosctl --talosconfig demo-talosconfig config endpoint xxx
talosctl --talosconfig demo-talosconfig config nodes xxx
talosctl --talosconfig demo-talosconfig kubeconfig demo-kubeconfig
kubectl --kubeconfig demo-kubeconfig get nodes
kubectl --kubeconfig bootstrap scale taloscontrolplane demo-cp --replicas=3
kubectl --kubeconfig bootstrap scale machinedeployment demo-workers --replicas=1