From 17c44496aaa77e8d0a499db8c044cb42ab00086b Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Fri, 14 Feb 2025 12:01:28 -0500 Subject: kube: fixes Signed-off-by: Xe Iaso --- kube/aeacus/headscale/deployment.yaml | 2 +- kube/alrest/core/kustomization.yaml | 3 +- kube/alrest/core/local-storage.yaml | 6 + kube/alrest/games/kustomization.yaml | 2 + kube/alrest/games/motortown/deployment.yaml | 3 +- kube/alrest/games/motortown/docker/Dockerfile | 25 ++- .../alrest/games/motortown/docker/launch_server.sh | 5 + kube/alrest/games/motortown/proton/Dockerfile | 29 ++++ kube/alrest/games/motortown/proton/entrypoint.sh | 11 ++ kube/alrest/games/palworld/cronjob/configmap.yaml | 30 ++++ kube/alrest/games/palworld/cronjob/cronjob.yaml | 35 +++++ .../games/palworld/cronjob/kustomization.yaml | 7 + kube/alrest/games/palworld/cronjob/role.yaml | 12 ++ .../alrest/games/palworld/cronjob/rolebinding.yaml | 13 ++ .../games/palworld/cronjob/serviceaccount.yaml | 5 + kube/alrest/games/palworld/game/1password.yaml | 6 + kube/alrest/games/palworld/game/configmap.yaml | 17 ++ kube/alrest/games/palworld/game/deployment.yaml | 47 ++++++ kube/alrest/games/palworld/game/kustomization.yaml | 8 + kube/alrest/games/palworld/game/pvc.yaml | 12 ++ kube/alrest/games/palworld/game/secret.yaml | 7 + kube/alrest/games/palworld/game/service.yaml | 40 +++++ kube/alrest/games/palworld/kustomization.yaml | 3 + kube/alrest/games/palworld/ns.yaml | 4 + kube/alrest/games/palworld/sftp/configmap.yaml | 5 + kube/alrest/games/palworld/sftp/deployment.yaml | 70 +++++++++ kube/alrest/games/palworld/sftp/kustomization.yaml | 4 + kube/alrest/games/palworld/sftp/service.yaml | 23 +++ kube/alrest/kustomization.yaml | 2 +- kube/alrest/palworld/cronjob/configmap.yaml | 30 ---- kube/alrest/palworld/cronjob/cronjob.yaml | 35 ----- kube/alrest/palworld/cronjob/kustomization.yaml | 7 - kube/alrest/palworld/cronjob/role.yaml | 12 -- kube/alrest/palworld/cronjob/rolebinding.yaml | 13 -- kube/alrest/palworld/cronjob/serviceaccount.yaml | 5 - kube/alrest/palworld/game/1password.yaml | 6 - kube/alrest/palworld/game/configmap.yaml | 17 -- kube/alrest/palworld/game/deployment.yaml | 47 ------ kube/alrest/palworld/game/kustomization.yaml | 8 - kube/alrest/palworld/game/pvc.yaml | 12 -- kube/alrest/palworld/game/secret.yaml | 7 - kube/alrest/palworld/game/service.yaml | 40 ----- kube/alrest/palworld/kustomization.yaml | 3 - kube/alrest/palworld/ns.yaml | 4 - kube/alrest/palworld/sftp/configmap.yaml | 5 - kube/alrest/palworld/sftp/deployment.yaml | 70 --------- kube/alrest/palworld/sftp/kustomization.yaml | 4 - kube/alrest/palworld/sftp/service.yaml | 23 --- kube/alrest/pocket-id/deployment.yaml | 2 +- kube/alrest/vms/nekomata/dns.yaml | 16 ++ kube/alrest/vms/reyn/debug-logs.yaml | 14 ++ kube/alrest/vms/reyn/disk.yaml | 47 ++++++ kube/alrest/vms/reyn/kubevirt.yaml | 173 +++++++++++++++++++++ kube/alrest/vms/reyn/kustomization.yaml | 0 kube/alrest/vms/reyn/vm.yaml | 50 ++++++ 55 files changed, 732 insertions(+), 354 deletions(-) create mode 100644 kube/alrest/core/local-storage.yaml create mode 100644 kube/alrest/games/kustomization.yaml create mode 100644 kube/alrest/games/motortown/proton/Dockerfile create mode 100644 kube/alrest/games/motortown/proton/entrypoint.sh create mode 100644 kube/alrest/games/palworld/cronjob/configmap.yaml create mode 100644 kube/alrest/games/palworld/cronjob/cronjob.yaml create mode 100644 kube/alrest/games/palworld/cronjob/kustomization.yaml create mode 100644 kube/alrest/games/palworld/cronjob/role.yaml create mode 100644 kube/alrest/games/palworld/cronjob/rolebinding.yaml create mode 100644 kube/alrest/games/palworld/cronjob/serviceaccount.yaml create mode 100644 kube/alrest/games/palworld/game/1password.yaml create mode 100644 kube/alrest/games/palworld/game/configmap.yaml create mode 100644 kube/alrest/games/palworld/game/deployment.yaml create mode 100644 kube/alrest/games/palworld/game/kustomization.yaml create mode 100644 kube/alrest/games/palworld/game/pvc.yaml create mode 100644 kube/alrest/games/palworld/game/secret.yaml create mode 100644 kube/alrest/games/palworld/game/service.yaml create mode 100644 kube/alrest/games/palworld/kustomization.yaml create mode 100644 kube/alrest/games/palworld/ns.yaml create mode 100644 kube/alrest/games/palworld/sftp/configmap.yaml create mode 100644 kube/alrest/games/palworld/sftp/deployment.yaml create mode 100644 kube/alrest/games/palworld/sftp/kustomization.yaml create mode 100644 kube/alrest/games/palworld/sftp/service.yaml delete mode 100644 kube/alrest/palworld/cronjob/configmap.yaml delete mode 100644 kube/alrest/palworld/cronjob/cronjob.yaml delete mode 100644 kube/alrest/palworld/cronjob/kustomization.yaml delete mode 100644 kube/alrest/palworld/cronjob/role.yaml delete mode 100644 kube/alrest/palworld/cronjob/rolebinding.yaml delete mode 100644 kube/alrest/palworld/cronjob/serviceaccount.yaml delete mode 100644 kube/alrest/palworld/game/1password.yaml delete mode 100644 kube/alrest/palworld/game/configmap.yaml delete mode 100644 kube/alrest/palworld/game/deployment.yaml delete mode 100644 kube/alrest/palworld/game/kustomization.yaml delete mode 100644 kube/alrest/palworld/game/pvc.yaml delete mode 100644 kube/alrest/palworld/game/secret.yaml delete mode 100644 kube/alrest/palworld/game/service.yaml delete mode 100644 kube/alrest/palworld/kustomization.yaml delete mode 100644 kube/alrest/palworld/ns.yaml delete mode 100644 kube/alrest/palworld/sftp/configmap.yaml delete mode 100644 kube/alrest/palworld/sftp/deployment.yaml delete mode 100644 kube/alrest/palworld/sftp/kustomization.yaml delete mode 100644 kube/alrest/palworld/sftp/service.yaml create mode 100644 kube/alrest/vms/nekomata/dns.yaml create mode 100644 kube/alrest/vms/reyn/debug-logs.yaml create mode 100644 kube/alrest/vms/reyn/disk.yaml create mode 100644 kube/alrest/vms/reyn/kubevirt.yaml create mode 100644 kube/alrest/vms/reyn/kustomization.yaml create mode 100644 kube/alrest/vms/reyn/vm.yaml diff --git a/kube/aeacus/headscale/deployment.yaml b/kube/aeacus/headscale/deployment.yaml index 06e36e3..4040c2c 100644 --- a/kube/aeacus/headscale/deployment.yaml +++ b/kube/aeacus/headscale/deployment.yaml @@ -26,7 +26,7 @@ spec: enableServiceLinks: true containers: - name: headscale - image: ghcr.io/juanfont/headscale:v0.24 + image: ghcr.io/juanfont/headscale:v0.24.2 imagePullPolicy: Always args: - serve diff --git a/kube/alrest/core/kustomization.yaml b/kube/alrest/core/kustomization.yaml index 94db53f..e55fd17 100644 --- a/kube/alrest/core/kustomization.yaml +++ b/kube/alrest/core/kustomization.yaml @@ -1,4 +1,5 @@ resources: - external-dns - nfs-provisioner - - cert-manager-1pass.yaml \ No newline at end of file + - cert-manager-1pass.yaml + - local-storage.yaml \ No newline at end of file diff --git a/kube/alrest/core/local-storage.yaml b/kube/alrest/core/local-storage.yaml new file mode 100644 index 0000000..292c36b --- /dev/null +++ b/kube/alrest/core/local-storage.yaml @@ -0,0 +1,6 @@ +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: local-storage +provisioner: kubernetes.io/no-provisioner +volumeBindingMode: WaitForFirstConsumer \ No newline at end of file diff --git a/kube/alrest/games/kustomization.yaml b/kube/alrest/games/kustomization.yaml new file mode 100644 index 0000000..4c6da38 --- /dev/null +++ b/kube/alrest/games/kustomization.yaml @@ -0,0 +1,2 @@ +resources: + - palworld \ No newline at end of file diff --git a/kube/alrest/games/motortown/deployment.yaml b/kube/alrest/games/motortown/deployment.yaml index bdb8fe8..da47600 100644 --- a/kube/alrest/games/motortown/deployment.yaml +++ b/kube/alrest/games/motortown/deployment.yaml @@ -45,7 +45,8 @@ spec: imagePullPolicy: Always command: - "/usr/bin/launch_server" - - "wine" + - /home/steam/.steam/steam/compatibilitytools.d/GE-Proton-9-24/proton + - run - "/root/motortown/MotorTown/Binaries/Win64/MotorTownServer-Win64-Shipping.exe" - "Jeju_World?listen?" - "-server" diff --git a/kube/alrest/games/motortown/docker/Dockerfile b/kube/alrest/games/motortown/docker/Dockerfile index 285346c..254285a 100644 --- a/kube/alrest/games/motortown/docker/Dockerfile +++ b/kube/alrest/games/motortown/docker/Dockerfile @@ -20,6 +20,29 @@ RUN DEBIAN_FRONTEND=noninteractive \ dpkg --add-architecture i386 && \ apt-get clean +RUN apt-get update && apt-get install -y gosu cron wget python3 libfreetype6 xvfb + +ENV STEAM_HOME="/home/steam" \ + STEAM_USER="steam" \ + STEAM_PATH="/home/steam/.steam/steam" + +RUN mkdir -p ${STEAM_PATH} +WORKDIR ${STEAM_PATH} + +# Install Proton build from Glorious Eggroll +ENV PROTON_VERSION=GE-Proton9-24 + +RUN mkdir -p compatibilitytools.d/ +RUN wget -O - \ + https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${PROTON_VERSION}/${PROTON_VERSION}.tar.gz \ + | tar -xz -C compatibilitytools.d/ + +RUN chown -R ${USER}:${USER} ${STEAM_HOME} + +# Export Proton paths +ENV STEAM_COMPAT_CLIENT_INSTALL_PATH=$STEAM_PATH +ENV PROTON=${STEAM_PATH}/compatibilitytools.d/${PROTON_VERSION}/proton + # pre-accept the steam license agreement # see https://askubuntu.com/questions/506909/how-can-i-accept-the-lience-agreement-for-steam-prior-to-apt-get-install/1017487#1017487 RUN echo steam steam/question select "I AGREE" | debconf-set-selections && \ @@ -28,7 +51,7 @@ RUN echo steam steam/question select "I AGREE" | debconf-set-selections && \ RUN DEBIAN_FRONTEND=noninteractive \ apt-get update && \ apt-get install --no-install-recommends -y \ - wine wine32 wine64 xvfb xauth steamcmd x11vnc fluxbox net-tools xterm vim procps && \ + wine wine32 wine64 xvfb xauth steamcmd x11vnc fluxbox net-tools xterm vim procps winbind libvulkan1 && \ apt-get clean RUN ln -s /usr/games/steamcmd /usr/bin/steamcmd diff --git a/kube/alrest/games/motortown/docker/launch_server.sh b/kube/alrest/games/motortown/docker/launch_server.sh index 5f185ff..1a051dc 100755 --- a/kube/alrest/games/motortown/docker/launch_server.sh +++ b/kube/alrest/games/motortown/docker/launch_server.sh @@ -1,6 +1,11 @@ #!/bin/sh set -eu +cd /root +mkdir -p /home/steam/.steam/steam/steamapps/compatdata/1829350 +cp -r /home/steam/.steam/steam/compatibilitytools.d/${PROTON_VERSION}/files/share/default_pfx /home/steam/.steam/steam/steamapps/compatdata/1829350 +export STEAM_COMPAT_DATA_PATH=${STEAM_PATH}/steamapps/compatdata/1829350 + export DISPLAY=:1 Xvfb $DISPLAY -screen 0 1024x768x16 & diff --git a/kube/alrest/games/motortown/proton/Dockerfile b/kube/alrest/games/motortown/proton/Dockerfile new file mode 100644 index 0000000..5fb6727 --- /dev/null +++ b/kube/alrest/games/motortown/proton/Dockerfile @@ -0,0 +1,29 @@ +FROM cm2network/steamcmd + +RUN apt-get update && apt-get install -y gosu cron wget python3 libfreetype6 xvfb + +ENV STEAM_HOME="/home/steam" \ + STEAM_USER="steam" \ + STEAM_PATH="/home/steam/.steam/steam" + +RUN mkdir -p ${STEAM_PATH} +WORKDIR ${STEAM_PATH} + +# Install Proton build from Glorious Eggroll +ENV PROTON_VERSION=GE-Proton9-24 + +RUN mkdir -p compatibilitytools.d/ +RUN wget -O - \ + https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${PROTON_VERSION}/${PROTON_VERSION}.tar.gz \ + | tar -xz -C compatibilitytools.d/ + +RUN chown -R ${USER}:${USER} ${STEAM_HOME} + +# Export Proton paths +ENV STEAM_COMPAT_CLIENT_INSTALL_PATH=$STEAM_PATH +ENV PROTON=${STEAM_PATH}/compatibilitytools.d/${PROTON_VERSION}/proton + +COPY entrypoint.sh ${STEAM_HOME}/entrypoint.sh +RUN chmod +x ${STEAM_HOME}/entrypoint.sh + +ENTRYPOINT ${STEAM_HOME}/entrypoint.sh \ No newline at end of file diff --git a/kube/alrest/games/motortown/proton/entrypoint.sh b/kube/alrest/games/motortown/proton/entrypoint.sh new file mode 100644 index 0000000..33bb0e7 --- /dev/null +++ b/kube/alrest/games/motortown/proton/entrypoint.sh @@ -0,0 +1,11 @@ +# add this to entrypoint so it is more generic + +steamcmd=${STEAM_HOME}/steamcmd/steamcmd.sh + +mkdir -p steamapps/compatdata/1829350 +cp -r compatibilitytools.d/${PROTON_VERSION}/files/share/default_pfx steamapps/compatdata/1829350 +export STEAM_COMPAT_DATA_PATH=${STEAM_PATH}/steamapps/compatdata/1829350 + +cd ${STEAM_HOME} + +pwd \ No newline at end of file diff --git a/kube/alrest/games/palworld/cronjob/configmap.yaml b/kube/alrest/games/palworld/cronjob/configmap.yaml new file mode 100644 index 0000000..c41c72e --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/configmap.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: restart-deployment-configmap +data: + restart-deployment.sh: | + #!/bin/bash + cont=$(kubectl -n palworld get pods -o=jsonpath='{.items[?(@.metadata.labels.app=="palworld-server")].metadata.name}') + + function exec_rcon_cmd() { + kubectl exec -n palworld -i pod/$cont rcon-cli "$1" + } + + exec_rcon_cmd "Broadcast Saving_Server_Data..." + exec_rcon_cmd save + sleep 30 + exec_rcon_cmd "Broadcast Backing_up_Server_Data..." + kubectl exec -n palworld -i pod/$cont backup + sleep 30 + + step = 5 + for i in $(seq 30 -$step 1); do + exec_rcon_cmd "Broadcast Rebooting_in_$i_seconds..." + sleep $step + done + + exec_rcon_cmd "Shutdown 1" + sleep 30 + kubectl -n palworld rollout restart deployment/palworld-server diff --git a/kube/alrest/games/palworld/cronjob/cronjob.yaml b/kube/alrest/games/palworld/cronjob/cronjob.yaml new file mode 100644 index 0000000..9998a54 --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/cronjob.yaml @@ -0,0 +1,35 @@ +--- +apiVersion: batch/v1 +kind: CronJob +metadata: + name: restart-deployment +spec: + concurrencyPolicy: Forbid + schedule: '30 9 * * *' + jobTemplate: + spec: + backoffLimit: 1 + activeDeadlineSeconds: 600 + template: + spec: + serviceAccountName: palworld-restart + restartPolicy: Never + containers: + - name: kubectl + image: bitnami/kubectl + command: + - /bin/sh + - -c + - /restart-script/restart-deployment.sh + volumeMounts: + - name: restart-script + mountPath: "/restart-script" + readOnly: true + volumes: + - name: restart-script + configMap: + name: restart-deployment-configmap + defaultMode: 0777 + items: + - key: "restart-deployment.sh" + path: "restart-deployment.sh" diff --git a/kube/alrest/games/palworld/cronjob/kustomization.yaml b/kube/alrest/games/palworld/cronjob/kustomization.yaml new file mode 100644 index 0000000..9ecdcdc --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/kustomization.yaml @@ -0,0 +1,7 @@ +namespace: palworld +resources: + - configmap.yaml + - cronjob.yaml + - role.yaml + - rolebinding.yaml + - serviceaccount.yaml \ No newline at end of file diff --git a/kube/alrest/games/palworld/cronjob/role.yaml b/kube/alrest/games/palworld/cronjob/role.yaml new file mode 100644 index 0000000..79e3b83 --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/role.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: restart-deployment +rules: + - apiGroups: ["apps", "extensions"] + resources: ["deployments", "pods"] + verbs: ["get", "patch", "list", "watch"] + - apiGroups: [""] + resources: ["pods/exec", "pods"] + verbs: ["get", "list", "create"] diff --git a/kube/alrest/games/palworld/cronjob/rolebinding.yaml b/kube/alrest/games/palworld/cronjob/rolebinding.yaml new file mode 100644 index 0000000..80abb4b --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/rolebinding.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: restart-deployment +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: restart-deployment +subjects: + - kind: ServiceAccount + name: palworld-restart + namespace: palworld diff --git a/kube/alrest/games/palworld/cronjob/serviceaccount.yaml b/kube/alrest/games/palworld/cronjob/serviceaccount.yaml new file mode 100644 index 0000000..a8e6bed --- /dev/null +++ b/kube/alrest/games/palworld/cronjob/serviceaccount.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: palworld-restart diff --git a/kube/alrest/games/palworld/game/1password.yaml b/kube/alrest/games/palworld/game/1password.yaml new file mode 100644 index 0000000..15c17b3 --- /dev/null +++ b/kube/alrest/games/palworld/game/1password.yaml @@ -0,0 +1,6 @@ +apiVersion: onepassword.com/v1 +kind: OnePasswordItem +metadata: + name: palworld-secrets +spec: + itemPath: "vaults/Kubernetes/items/Palworld" diff --git a/kube/alrest/games/palworld/game/configmap.yaml b/kube/alrest/games/palworld/game/configmap.yaml new file mode 100644 index 0000000..eddbafb --- /dev/null +++ b/kube/alrest/games/palworld/game/configmap.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: palworld +data: + PUID: "1000" + PGID: "1000" + PORT: "8211" # Optional but recommended + PLAYERS: "32" # Optional but recommended + SERVER_PASSWORD: "worldofpals" # Optional but recommended + MULTITHREADING: "true" + RCON_ENABLED: "true" + RCON_PORT: "25575" + TZ: UTC + COMMUNITY: "false" # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! + SERVER_NAME: "Furryhole Palworld" + SERVER_DESCRIPTION: "owo what's this?" diff --git a/kube/alrest/games/palworld/game/deployment.yaml b/kube/alrest/games/palworld/game/deployment.yaml new file mode 100644 index 0000000..7807724 --- /dev/null +++ b/kube/alrest/games/palworld/game/deployment.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: palworld-server + name: palworld-server +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: palworld-server + template: + metadata: + labels: + app: palworld-server + spec: + nodeSelector: + xeiaso.net/cpu: ryzen-5950X + containers: + - name: palworld-server + image: thijsvanloef/palworld-server-docker + imagePullPolicy: Always + ports: + - containerPort: 8211 + name: server + protocol: UDP + - containerPort: 27015 + name: query + protocol: UDP + env: + - name: ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: palworld-secrets + key: rconPassword + envFrom: + - configMapRef: + name: palworld + volumeMounts: + - mountPath: /palworld + name: datadir + volumes: + - name: datadir + persistentVolumeClaim: + claimName: palworld-data diff --git a/kube/alrest/games/palworld/game/kustomization.yaml b/kube/alrest/games/palworld/game/kustomization.yaml new file mode 100644 index 0000000..4782a09 --- /dev/null +++ b/kube/alrest/games/palworld/game/kustomization.yaml @@ -0,0 +1,8 @@ +namespace: palworld +resources: + - 1password.yaml + - configmap.yaml + - deployment.yaml + - pvc.yaml + #- secret.yaml + - service.yaml \ No newline at end of file diff --git a/kube/alrest/games/palworld/game/pvc.yaml b/kube/alrest/games/palworld/game/pvc.yaml new file mode 100644 index 0000000..23b5349 --- /dev/null +++ b/kube/alrest/games/palworld/game/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app: palworld-server + name: palworld-data +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 128Gi diff --git a/kube/alrest/games/palworld/game/secret.yaml b/kube/alrest/games/palworld/game/secret.yaml new file mode 100644 index 0000000..5b6509b --- /dev/null +++ b/kube/alrest/games/palworld/game/secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: palworld-secrets +type: Opaque +stringData: + rconPassword: sY6GPrkZLBFoXNQ2GzJVLSnQGmo1yiL3 diff --git a/kube/alrest/games/palworld/game/service.yaml b/kube/alrest/games/palworld/game/service.yaml new file mode 100644 index 0000000..1bc5371 --- /dev/null +++ b/kube/alrest/games/palworld/game/service.yaml @@ -0,0 +1,40 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: palworld-server + name: game +spec: + ports: + - name: server + port: 8211 + protocol: UDP + targetPort: server + - name: query + port: 27015 + protocol: UDP + targetPort: query + selector: + app: palworld-server + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: game + name: server +spec: + ports: + - name: server + port: 8211 + protocol: UDP + targetPort: server + - name: query + port: 27015 + protocol: UDP + targetPort: query + selector: + app: palworld-server + type: LoadBalancer + loadBalancerClass: tailscale \ No newline at end of file diff --git a/kube/alrest/games/palworld/kustomization.yaml b/kube/alrest/games/palworld/kustomization.yaml new file mode 100644 index 0000000..3917046 --- /dev/null +++ b/kube/alrest/games/palworld/kustomization.yaml @@ -0,0 +1,3 @@ +resources: +- cronjob +- game \ No newline at end of file diff --git a/kube/alrest/games/palworld/ns.yaml b/kube/alrest/games/palworld/ns.yaml new file mode 100644 index 0000000..defe9b6 --- /dev/null +++ b/kube/alrest/games/palworld/ns.yaml @@ -0,0 +1,4 @@ +kind: Namespace +apiVersion: v1 +metadata: + name: palworld diff --git a/kube/alrest/games/palworld/sftp/configmap.yaml b/kube/alrest/games/palworld/sftp/configmap.yaml new file mode 100644 index 0000000..bd0b864 --- /dev/null +++ b/kube/alrest/games/palworld/sftp/configmap.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: sftpgo +data: {} diff --git a/kube/alrest/games/palworld/sftp/deployment.yaml b/kube/alrest/games/palworld/sftp/deployment.yaml new file mode 100644 index 0000000..aa56550 --- /dev/null +++ b/kube/alrest/games/palworld/sftp/deployment.yaml @@ -0,0 +1,70 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sftpgo +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: sftpgo + app.kubernetes.io/instance: release-name + template: + metadata: + labels: + app.kubernetes.io/name: sftpgo + app.kubernetes.io/instance: release-name + spec: + hostNetwork: false + securityContext: + {} + containers: + - name: sftpgo + securityContext: + {} + image: "ghcr.io/drakkan/sftpgo:v2.5.4" + imagePullPolicy: IfNotPresent + args: + - sftpgo + - serve + env: + - name: SFTPGO_SFTPD__BINDINGS__0__PORT + value: "2022" + - name: SFTPGO_SFTPD__BINDINGS__0__ADDRESS + value: "0.0.0.0" + - name: SFTPGO_HTTPD__BINDINGS__0__PORT + value: "8080" + - name: SFTPGO_HTTPD__BINDINGS__0__ADDRESS + value: "0.0.0.0" + - name: SFTPGO_TELEMETRY__BIND_PORT + value: "10000" + - name: SFTPGO_TELEMETRY__BIND_ADDRESS + value: "0.0.0.0" + ports: + - name: sftp + containerPort: 2022 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: telemetry + containerPort: 10000 + protocol: TCP + livenessProbe: + httpGet: + path: /healthz + port: telemetry + readinessProbe: + httpGet: + path: /healthz + port: telemetry + volumeMounts: + - name: config + mountPath: /etc/sftpgo/ + - mountPath: /palworld + name: datadir + volumes: + - name: config + emptyDir: {} + - name: datadir + persistentVolumeClaim: + claimName: palworld-data \ No newline at end of file diff --git a/kube/alrest/games/palworld/sftp/kustomization.yaml b/kube/alrest/games/palworld/sftp/kustomization.yaml new file mode 100644 index 0000000..5ee61db --- /dev/null +++ b/kube/alrest/games/palworld/sftp/kustomization.yaml @@ -0,0 +1,4 @@ +namespace: palworld +resources: + - deployment.yaml + - service.yaml \ No newline at end of file diff --git a/kube/alrest/games/palworld/sftp/service.yaml b/kube/alrest/games/palworld/sftp/service.yaml new file mode 100644 index 0000000..089f1f1 --- /dev/null +++ b/kube/alrest/games/palworld/sftp/service.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Service +metadata: + name: sftp +spec: + type: ClusterIP + ports: + - name: sftp + port: 22 + targetPort: sftp + protocol: TCP + - name: http + port: 80 + targetPort: http + protocol: TCP + - name: telemetry + port: 10000 + targetPort: telemetry + protocol: TCP + selector: + app.kubernetes.io/name: sftpgo + app.kubernetes.io/instance: release-name +--- \ No newline at end of file diff --git a/kube/alrest/kustomization.yaml b/kube/alrest/kustomization.yaml index ddef6b3..bd7d2fa 100644 --- a/kube/alrest/kustomization.yaml +++ b/kube/alrest/kustomization.yaml @@ -1,10 +1,10 @@ resources: - core + - games - gitea - glance - minio - ollama - - palworld - pocket-id - pvfm - registry diff --git a/kube/alrest/palworld/cronjob/configmap.yaml b/kube/alrest/palworld/cronjob/configmap.yaml deleted file mode 100644 index c41c72e..0000000 --- a/kube/alrest/palworld/cronjob/configmap.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: restart-deployment-configmap -data: - restart-deployment.sh: | - #!/bin/bash - cont=$(kubectl -n palworld get pods -o=jsonpath='{.items[?(@.metadata.labels.app=="palworld-server")].metadata.name}') - - function exec_rcon_cmd() { - kubectl exec -n palworld -i pod/$cont rcon-cli "$1" - } - - exec_rcon_cmd "Broadcast Saving_Server_Data..." - exec_rcon_cmd save - sleep 30 - exec_rcon_cmd "Broadcast Backing_up_Server_Data..." - kubectl exec -n palworld -i pod/$cont backup - sleep 30 - - step = 5 - for i in $(seq 30 -$step 1); do - exec_rcon_cmd "Broadcast Rebooting_in_$i_seconds..." - sleep $step - done - - exec_rcon_cmd "Shutdown 1" - sleep 30 - kubectl -n palworld rollout restart deployment/palworld-server diff --git a/kube/alrest/palworld/cronjob/cronjob.yaml b/kube/alrest/palworld/cronjob/cronjob.yaml deleted file mode 100644 index 9998a54..0000000 --- a/kube/alrest/palworld/cronjob/cronjob.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- -apiVersion: batch/v1 -kind: CronJob -metadata: - name: restart-deployment -spec: - concurrencyPolicy: Forbid - schedule: '30 9 * * *' - jobTemplate: - spec: - backoffLimit: 1 - activeDeadlineSeconds: 600 - template: - spec: - serviceAccountName: palworld-restart - restartPolicy: Never - containers: - - name: kubectl - image: bitnami/kubectl - command: - - /bin/sh - - -c - - /restart-script/restart-deployment.sh - volumeMounts: - - name: restart-script - mountPath: "/restart-script" - readOnly: true - volumes: - - name: restart-script - configMap: - name: restart-deployment-configmap - defaultMode: 0777 - items: - - key: "restart-deployment.sh" - path: "restart-deployment.sh" diff --git a/kube/alrest/palworld/cronjob/kustomization.yaml b/kube/alrest/palworld/cronjob/kustomization.yaml deleted file mode 100644 index 9ecdcdc..0000000 --- a/kube/alrest/palworld/cronjob/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -namespace: palworld -resources: - - configmap.yaml - - cronjob.yaml - - role.yaml - - rolebinding.yaml - - serviceaccount.yaml \ No newline at end of file diff --git a/kube/alrest/palworld/cronjob/role.yaml b/kube/alrest/palworld/cronjob/role.yaml deleted file mode 100644 index 79e3b83..0000000 --- a/kube/alrest/palworld/cronjob/role.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: restart-deployment -rules: - - apiGroups: ["apps", "extensions"] - resources: ["deployments", "pods"] - verbs: ["get", "patch", "list", "watch"] - - apiGroups: [""] - resources: ["pods/exec", "pods"] - verbs: ["get", "list", "create"] diff --git a/kube/alrest/palworld/cronjob/rolebinding.yaml b/kube/alrest/palworld/cronjob/rolebinding.yaml deleted file mode 100644 index 80abb4b..0000000 --- a/kube/alrest/palworld/cronjob/rolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: restart-deployment -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: restart-deployment -subjects: - - kind: ServiceAccount - name: palworld-restart - namespace: palworld diff --git a/kube/alrest/palworld/cronjob/serviceaccount.yaml b/kube/alrest/palworld/cronjob/serviceaccount.yaml deleted file mode 100644 index a8e6bed..0000000 --- a/kube/alrest/palworld/cronjob/serviceaccount.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: palworld-restart diff --git a/kube/alrest/palworld/game/1password.yaml b/kube/alrest/palworld/game/1password.yaml deleted file mode 100644 index 15c17b3..0000000 --- a/kube/alrest/palworld/game/1password.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: onepassword.com/v1 -kind: OnePasswordItem -metadata: - name: palworld-secrets -spec: - itemPath: "vaults/Kubernetes/items/Palworld" diff --git a/kube/alrest/palworld/game/configmap.yaml b/kube/alrest/palworld/game/configmap.yaml deleted file mode 100644 index eddbafb..0000000 --- a/kube/alrest/palworld/game/configmap.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: palworld -data: - PUID: "1000" - PGID: "1000" - PORT: "8211" # Optional but recommended - PLAYERS: "32" # Optional but recommended - SERVER_PASSWORD: "worldofpals" # Optional but recommended - MULTITHREADING: "true" - RCON_ENABLED: "true" - RCON_PORT: "25575" - TZ: UTC - COMMUNITY: "false" # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! - SERVER_NAME: "Furryhole Palworld" - SERVER_DESCRIPTION: "owo what's this?" diff --git a/kube/alrest/palworld/game/deployment.yaml b/kube/alrest/palworld/game/deployment.yaml deleted file mode 100644 index 7807724..0000000 --- a/kube/alrest/palworld/game/deployment.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: palworld-server - name: palworld-server -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app: palworld-server - template: - metadata: - labels: - app: palworld-server - spec: - nodeSelector: - xeiaso.net/cpu: ryzen-5950X - containers: - - name: palworld-server - image: thijsvanloef/palworld-server-docker - imagePullPolicy: Always - ports: - - containerPort: 8211 - name: server - protocol: UDP - - containerPort: 27015 - name: query - protocol: UDP - env: - - name: ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: palworld-secrets - key: rconPassword - envFrom: - - configMapRef: - name: palworld - volumeMounts: - - mountPath: /palworld - name: datadir - volumes: - - name: datadir - persistentVolumeClaim: - claimName: palworld-data diff --git a/kube/alrest/palworld/game/kustomization.yaml b/kube/alrest/palworld/game/kustomization.yaml deleted file mode 100644 index 4782a09..0000000 --- a/kube/alrest/palworld/game/kustomization.yaml +++ /dev/null @@ -1,8 +0,0 @@ -namespace: palworld -resources: - - 1password.yaml - - configmap.yaml - - deployment.yaml - - pvc.yaml - #- secret.yaml - - service.yaml \ No newline at end of file diff --git a/kube/alrest/palworld/game/pvc.yaml b/kube/alrest/palworld/game/pvc.yaml deleted file mode 100644 index 23b5349..0000000 --- a/kube/alrest/palworld/game/pvc.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - app: palworld-server - name: palworld-data -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 128Gi diff --git a/kube/alrest/palworld/game/secret.yaml b/kube/alrest/palworld/game/secret.yaml deleted file mode 100644 index 5b6509b..0000000 --- a/kube/alrest/palworld/game/secret.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: palworld-secrets -type: Opaque -stringData: - rconPassword: sY6GPrkZLBFoXNQ2GzJVLSnQGmo1yiL3 diff --git a/kube/alrest/palworld/game/service.yaml b/kube/alrest/palworld/game/service.yaml deleted file mode 100644 index 1bc5371..0000000 --- a/kube/alrest/palworld/game/service.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: palworld-server - name: game -spec: - ports: - - name: server - port: 8211 - protocol: UDP - targetPort: server - - name: query - port: 27015 - protocol: UDP - targetPort: query - selector: - app: palworld-server - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: game - name: server -spec: - ports: - - name: server - port: 8211 - protocol: UDP - targetPort: server - - name: query - port: 27015 - protocol: UDP - targetPort: query - selector: - app: palworld-server - type: LoadBalancer - loadBalancerClass: tailscale \ No newline at end of file diff --git a/kube/alrest/palworld/kustomization.yaml b/kube/alrest/palworld/kustomization.yaml deleted file mode 100644 index 3917046..0000000 --- a/kube/alrest/palworld/kustomization.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resources: -- cronjob -- game \ No newline at end of file diff --git a/kube/alrest/palworld/ns.yaml b/kube/alrest/palworld/ns.yaml deleted file mode 100644 index defe9b6..0000000 --- a/kube/alrest/palworld/ns.yaml +++ /dev/null @@ -1,4 +0,0 @@ -kind: Namespace -apiVersion: v1 -metadata: - name: palworld diff --git a/kube/alrest/palworld/sftp/configmap.yaml b/kube/alrest/palworld/sftp/configmap.yaml deleted file mode 100644 index bd0b864..0000000 --- a/kube/alrest/palworld/sftp/configmap.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: sftpgo -data: {} diff --git a/kube/alrest/palworld/sftp/deployment.yaml b/kube/alrest/palworld/sftp/deployment.yaml deleted file mode 100644 index aa56550..0000000 --- a/kube/alrest/palworld/sftp/deployment.yaml +++ /dev/null @@ -1,70 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: sftpgo -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: sftpgo - app.kubernetes.io/instance: release-name - template: - metadata: - labels: - app.kubernetes.io/name: sftpgo - app.kubernetes.io/instance: release-name - spec: - hostNetwork: false - securityContext: - {} - containers: - - name: sftpgo - securityContext: - {} - image: "ghcr.io/drakkan/sftpgo:v2.5.4" - imagePullPolicy: IfNotPresent - args: - - sftpgo - - serve - env: - - name: SFTPGO_SFTPD__BINDINGS__0__PORT - value: "2022" - - name: SFTPGO_SFTPD__BINDINGS__0__ADDRESS - value: "0.0.0.0" - - name: SFTPGO_HTTPD__BINDINGS__0__PORT - value: "8080" - - name: SFTPGO_HTTPD__BINDINGS__0__ADDRESS - value: "0.0.0.0" - - name: SFTPGO_TELEMETRY__BIND_PORT - value: "10000" - - name: SFTPGO_TELEMETRY__BIND_ADDRESS - value: "0.0.0.0" - ports: - - name: sftp - containerPort: 2022 - protocol: TCP - - name: http - containerPort: 8080 - protocol: TCP - - name: telemetry - containerPort: 10000 - protocol: TCP - livenessProbe: - httpGet: - path: /healthz - port: telemetry - readinessProbe: - httpGet: - path: /healthz - port: telemetry - volumeMounts: - - name: config - mountPath: /etc/sftpgo/ - - mountPath: /palworld - name: datadir - volumes: - - name: config - emptyDir: {} - - name: datadir - persistentVolumeClaim: - claimName: palworld-data \ No newline at end of file diff --git a/kube/alrest/palworld/sftp/kustomization.yaml b/kube/alrest/palworld/sftp/kustomization.yaml deleted file mode 100644 index 5ee61db..0000000 --- a/kube/alrest/palworld/sftp/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -namespace: palworld -resources: - - deployment.yaml - - service.yaml \ No newline at end of file diff --git a/kube/alrest/palworld/sftp/service.yaml b/kube/alrest/palworld/sftp/service.yaml deleted file mode 100644 index 089f1f1..0000000 --- a/kube/alrest/palworld/sftp/service.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: sftp -spec: - type: ClusterIP - ports: - - name: sftp - port: 22 - targetPort: sftp - protocol: TCP - - name: http - port: 80 - targetPort: http - protocol: TCP - - name: telemetry - port: 10000 - targetPort: telemetry - protocol: TCP - selector: - app.kubernetes.io/name: sftpgo - app.kubernetes.io/instance: release-name ---- \ No newline at end of file diff --git a/kube/alrest/pocket-id/deployment.yaml b/kube/alrest/pocket-id/deployment.yaml index 1f54ad6..0fca1f1 100644 --- a/kube/alrest/pocket-id/deployment.yaml +++ b/kube/alrest/pocket-id/deployment.yaml @@ -20,7 +20,7 @@ spec: claimName: pocket-id containers: - name: main - image: ghcr.io/pocket-id/pocket-id:v0.29.0 + image: ghcr.io/pocket-id/pocket-id:v0.30.0 imagePullPolicy: IfNotPresent securityContext: runAsUser: 1000 diff --git a/kube/alrest/vms/nekomata/dns.yaml b/kube/alrest/vms/nekomata/dns.yaml new file mode 100644 index 0000000..3b0b4c0 --- /dev/null +++ b/kube/alrest/vms/nekomata/dns.yaml @@ -0,0 +1,16 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: nekomata +spec: + endpoints: + - dnsName: nekomata.within.lgbt + recordTTL: 3600 + recordType: A + targets: + - 195.26.244.235 + - dnsName: nekomata.within.lgbt + recordTTL: 3600 + recordType: AAAA + targets: + - 2605:a140:2244:0333::1 \ No newline at end of file diff --git a/kube/alrest/vms/reyn/debug-logs.yaml b/kube/alrest/vms/reyn/debug-logs.yaml new file mode 100644 index 0000000..70156c7 --- /dev/null +++ b/kube/alrest/vms/reyn/debug-logs.yaml @@ -0,0 +1,14 @@ +apiVersion: kubevirt.io/v1 +kind: KubeVirt +metadata: + name: kubevirt + namespace: kubevirt +spec: + configuration: + developerConfiguration: + logVerbosity: + virtLauncher: 8 + virtHandler: 8 + virtController: 8 + virtAPI: 8 + virtOperator: 8 \ No newline at end of file diff --git a/kube/alrest/vms/reyn/disk.yaml b/kube/alrest/vms/reyn/disk.yaml new file mode 100644 index 0000000..21b77ab --- /dev/null +++ b/kube/alrest/vms/reyn/disk.yaml @@ -0,0 +1,47 @@ +# apiVersion: v1 +# kind: PersistentVolume +# metadata: +# name: reyn +# spec: +# capacity: +# storage: 64Gi +# volumeMode: Filesystem +# accessModes: +# - ReadWriteOnce +# persistentVolumeReclaimPolicy: Retain +# storageClassName: local-storage +# local: +# path: /var/mnt/nvme/0/reyn +# nodeAffinity: +# required: +# nodeSelectorTerms: +# - matchExpressions: +# - key: kubernetes.io/hostname +# operator: In +# values: +# - pneuma +# --- +# apiVersion: v1 +# kind: PersistentVolumeClaim +# metadata: +# name: reyn +# spec: +# resources: +# requests: +# storage: 64Gi +# storageClassName: local-storage +# accessModes: +# - ReadWriteOnce +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: reyn +spec: + resources: + requests: + storage: 64Gi + volumeMode: Block + accessModes: + - ReadWriteOnce + storageClassName: ssd diff --git a/kube/alrest/vms/reyn/kubevirt.yaml b/kube/alrest/vms/reyn/kubevirt.yaml new file mode 100644 index 0000000..be3da29 --- /dev/null +++ b/kube/alrest/vms/reyn/kubevirt.yaml @@ -0,0 +1,173 @@ +apiVersion: kubevirt.io/v1 +kind: KubeVirt +metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"kubevirt.io/v1","kind":"KubeVirt","metadata":{"annotations":{},"name":"kubevirt","namespace":"kubevirt"},"spec":{"certificateRotateStrategy":{},"configuration":{"developerConfiguration":{"featureGates":[]}},"customizeComponents":{},"imagePullPolicy":"IfNotPresent","workloadUpdateStrategy":{}}} + kubevirt.io/latest-observed-api-version: v1 + kubevirt.io/storage-observed-api-version: v1 + creationTimestamp: "2024-05-17T18:31:13Z" + finalizers: + - foregroundDeleteKubeVirt + generation: 4 + name: kubevirt + namespace: kubevirt + resourceVersion: "209053140" + uid: 4103f714-410e-4ae3-8e17-e5270c6b6616 +spec: + certificateRotateStrategy: {} + configuration: + developerConfiguration: + featureGates: [] + customizeComponents: {} + imagePullPolicy: IfNotPresent + workloadUpdateStrategy: {} +status: + conditions: + - lastProbeTime: "2025-01-21T23:47:36Z" + lastTransitionTime: "2025-01-21T23:47:36Z" + message: All components are ready. + reason: AllComponentsReady + status: "True" + type: Available + - lastProbeTime: "2025-01-21T23:47:36Z" + lastTransitionTime: "2025-01-21T23:47:36Z" + message: All components are ready. + reason: AllComponentsReady + status: "False" + type: Progressing + - lastProbeTime: "2025-01-21T23:47:36Z" + lastTransitionTime: "2025-01-21T23:47:36Z" + message: All components are ready. + reason: AllComponentsReady + status: "False" + type: Degraded + - lastProbeTime: "2024-12-29T00:41:01Z" + lastTransitionTime: null + message: All resources were created. + reason: AllResourcesCreated + status: "True" + type: Created + defaultArchitecture: amd64 + generations: + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineinstances.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineinstancepresets.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineinstancereplicasets.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachines.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineinstancemigrations.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 4 + name: virtualmachinesnapshots.snapshot.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 4 + name: virtualmachinesnapshotcontents.snapshot.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 4 + name: virtualmachinerestores.snapshot.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineinstancetypes.instancetype.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineclusterinstancetypes.instancetype.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachinepools.pool.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 2 + name: migrationpolicies.migrations.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachinepreferences.instancetype.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 3 + name: virtualmachineclusterpreferences.instancetype.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 4 + name: virtualmachineexports.export.kubevirt.io + resource: customresourcedefinitions + - group: apiextensions.k8s.io/v1 + lastGeneration: 2 + name: virtualmachineclones.clone.kubevirt.io + resource: customresourcedefinitions + - group: admissionregistration.k8s.io + lastGeneration: 98 + name: virt-operator-validator + resource: validatingwebhookconfigurations + - group: admissionregistration.k8s.io + lastGeneration: 99 + name: virt-api-validator + resource: validatingwebhookconfigurations + - group: admissionregistration.k8s.io + lastGeneration: 98 + name: virt-api-mutator + resource: mutatingwebhookconfigurations + - group: apps + lastGeneration: 4 + name: virt-api + namespace: kubevirt + resource: deployments + - group: apps + lastGeneration: 1 + name: virt-api-pdb + namespace: kubevirt + resource: poddisruptionbudgets + - group: apps + lastGeneration: 4 + name: virt-controller + namespace: kubevirt + resource: deployments + - group: apps + lastGeneration: 1 + name: virt-controller-pdb + namespace: kubevirt + resource: poddisruptionbudgets + - group: apps + lastGeneration: 7 + name: virt-handler + namespace: kubevirt + resource: daemonsets + observedDeploymentConfig: '{"id":"181122bb566b78f3958f071886d59e622871f649","namespace":"kubevirt","registry":"quay.io/kubevirt","kubeVirtVersion":"v1.4.0","virtOperatorImage":"quay.io/kubevirt/virt-operator:v1.4.0","additionalProperties":{"CertificateRotationStrategy":"\u003cv1.KubeVirtCertificateRotateStrategy + Value\u003e","Configuration":"\u003cv1.KubeVirtConfiguration Value\u003e","CustomizeComponents":"\u003cv1.CustomizeComponents + Value\u003e","ImagePullPolicy":"IfNotPresent","ImagePullSecrets":"null","Infra":"\u003c*v1.ComponentConfig + Value\u003e","MonitorAccount":"","MonitorNamespace":"","ProductComponent":"","ProductName":"","ProductVersion":"","ServiceMonitorNamespace":"","UninstallStrategy":"","WorkloadUpdateStrategy":"\u003cv1.KubeVirtWorkloadUpdateStrategy + Value\u003e","Workloads":"\u003c*v1.ComponentConfig Value\u003e"}}' + observedDeploymentID: 181122bb566b78f3958f071886d59e622871f649 + observedGeneration: 4 + observedKubeVirtRegistry: quay.io/kubevirt + observedKubeVirtVersion: v1.4.0 + operatorVersion: v1.4.0 + outdatedVirtualMachineInstanceWorkloads: 0 + phase: Deployed + targetDeploymentConfig: '{"id":"181122bb566b78f3958f071886d59e622871f649","namespace":"kubevirt","registry":"quay.io/kubevirt","kubeVirtVersion":"v1.4.0","virtOperatorImage":"quay.io/kubevirt/virt-operator:v1.4.0","additionalProperties":{"CertificateRotationStrategy":"\u003cv1.KubeVirtCertificateRotateStrategy + Value\u003e","Configuration":"\u003cv1.KubeVirtConfiguration Value\u003e","CustomizeComponents":"\u003cv1.CustomizeComponents + Value\u003e","ImagePullPolicy":"IfNotPresent","ImagePullSecrets":"null","Infra":"\u003c*v1.ComponentConfig + Value\u003e","MonitorAccount":"","MonitorNamespace":"","ProductComponent":"","ProductName":"","ProductVersion":"","ServiceMonitorNamespace":"","UninstallStrategy":"","WorkloadUpdateStrategy":"\u003cv1.KubeVirtWorkloadUpdateStrategy + Value\u003e","Workloads":"\u003c*v1.ComponentConfig Value\u003e"}}' + targetDeploymentID: 181122bb566b78f3958f071886d59e622871f649 + targetKubeVirtRegistry: quay.io/kubevirt + targetKubeVirtVersion: v1.4.0 diff --git a/kube/alrest/vms/reyn/kustomization.yaml b/kube/alrest/vms/reyn/kustomization.yaml new file mode 100644 index 0000000..e69de29 diff --git a/kube/alrest/vms/reyn/vm.yaml b/kube/alrest/vms/reyn/vm.yaml new file mode 100644 index 0000000..2ef530c --- /dev/null +++ b/kube/alrest/vms/reyn/vm.yaml @@ -0,0 +1,50 @@ +apiVersion: kubevirt.io/v1 +kind: VirtualMachine +metadata: + name: reyn +spec: + runStrategy: Halted + template: + metadata: + labels: + kubevirt.io/domain: reyn + spec: + domain: + cpu: + cores: 6 + devices: + disks: + # - bootOrder: 1 + # cdrom: + # bus: sata + # name: cdromiso + - disk: + bus: virtio + name: harddrive + # - cdrom: + # bus: sata + # name: virtiocontainerdisk + machine: + type: q35 + resources: + requests: + memory: 16G + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - pneuma + volumes: + # - name: cdromiso + # persistentVolumeClaim: + # claimName: win10-iso-raw + - name: harddrive + persistentVolumeClaim: + claimName: reyn + # - containerDisk: + # image: kubevirt/virtio-container-disk + # name: virtiocontainerdisk \ No newline at end of file -- cgit v1.2.3