prole/k3s/prole-resources.yaml
chrisfu 646745b4b0 chore(k3s): script and hostprobe updates, temp maintenance scripts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 14:47:27 -07:00

122 lines
5.6 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: knoe-kubeconfig-cm
namespace: knoe-db
data:
kube_config.sh: |
#!/bin/bash
# k3s/kube_config.sh - Automatically configure knoe-k3s context
SERVER="https://myrddin.prole.org:6443"
CLUSTER="knoe-k3s"
USER="knoe-k3s"
CONTEXT="knoe-k3s"
CA_DATA="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTnpFek1EUXlOVEl3SGhjTk1qWXdNakUzTURRMU56TXlXaGNOTXpZd01qRTFNRFExTnpLeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTnpFek1EUXlOVEl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTUHpoSGhraExnaWhMV2UwVEFpTEQrZlJLRC9xU25sZ2lYZnFBN3YveFEKanlUai9FYVg1VS9ZbTRIODRVZWF6dGNLTFUwT1oxUzBtNkFtekxzMXlVN3NvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVTd2aDhaVGlUc20xN2dwTzdNZmhqCnBkS1YvekF3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnQjh1Sk5mTUNndm1tUjJvTWR5WWNvc1NUVUxaTVhERUUKbi8wdVc2aVFuOGdDSVFENXRza0NpcE03RDk2aVRSR1d0MU16WERmdUd4MytQYkpDSmFYWE9IYkJhUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
CERT_DATA="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJUUZTR2JNTDI5cTh3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOemN4TXpBME1qVXlNQjRYRFRJMk1ESXhOekEwTlRjek1sb1hEVEkzTURJeApOekEwTlRjek1sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJIdEZuRjhsa3pJeFVRVDkKV0xld1R1cXRLQzNEMFpGVHk3RTh2V1RmTVhyakluZ3kzUG5CRXc4N1BwajgyaXJ5eVZzRy9wdTg0OW1Bdy9TQQpmanNEZjE2alNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCVHV6dUo3cTNEb1lKWlBSSHlwL1BnTWZaWWl0REFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlFQWt5Vmk2UmFiY2krNXM5anA0Z2h3bWVBZlQrRlpGQVlON2xhd0Uyd3FRK3NDSUFpbVBRek8rd29jTHRObApDd1dZWnNBSlRISy9hTjJ6WW5QQzFOVHdRaVN0Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTnpFek1EUXlOVEl3SGhjTk1qWXdNakUzTURRMU56TXlXaGNOTXpZd01qRTFNRFExTnpNeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTnpFek1EUXlOVEl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRMnRKVE5oMFAwc3R3ZWk4L2ZKUnlkZ2Foc0M4S3NveEZtbjFmMDJSVjMKbHlCNHFDdjJnQW9IdndRSDVMdkFtL2g2dDd5cGJteHBoZXgxWkcvMGhVL0lvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVTdzN2llNnR3NkdDV1QwUjhxZno0CkRIMldJclF3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnRFhJYVdxL0lRNjRhc3AyRng5S3pBZUFoRnBOSjNyNVgKMkNPdzA1ZjlmK1lDSVFDL3dVblhobVQwOXM1U3A1TG9ha0FMejZUMkpYSmJ5MVhEdGtDV3hRZ3dDUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
KEY_DATA="LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUdZT21JaWI4ZVVhcFJtQWxMQmM3c24xb0ZkVUpQTUJXYmUvZ2NydEs4THNvQW9HQ0NxR1NNNDlKQXdFSG9VUURRZ0FFZTBXY1h5V1RNakZSQlAxWXQ3Qk82cTBvTGNQUmtWUExzVHk5Wk44eGV1TWllRExjK2NFVApEenMrbVB6YUt2TEpXd2IrbTd6ajJZREQ5SUIrT3dOL1hnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo="
echo "Configuring ${CONTEXT}..."
kubectl config set-cluster "${CLUSTER}" --server="${SERVER}" --embed-certs=true
TMP_CA=$(mktemp)
TMP_CERT=$(mktemp)
TMP_KEY=$(mktemp)
echo "${CA_DATA}" | base64 -d > "${TMP_CA}"
echo "${CERT_DATA}" | base64 -d > "${TMP_CERT}"
echo "${KEY_DATA}" | base64 -d > "${TMP_KEY}"
kubectl config set-cluster "${CLUSTER}" --certificate-authority="${TMP_CA}" --embed-certs=true
kubectl config set-credentials "${USER}" --client-certificate="${TMP_CERT}" --client-key="${TMP_KEY}" --embed-certs=true
kubectl config set-context "${CONTEXT}" --cluster="${CLUSTER}" --user="${USER}" --namespace=default
kubectl config use-context "${CONTEXT}"
rm -f "${TMP_CA}" "${TMP_CERT}" "${TMP_KEY}"
echo "Done. context ${CONTEXT} is ready."
kubectl get nodes
---
apiVersion: v1
kind: ConfigMap
metadata:
name: knoe-db-kong-config
namespace: knoe-db
data:
kong.yml: |
_format_version: "3.0"
_transform: true
services:
- name: knoe-service
url: http://knoe-svc.knoe-db.svc.cluster.local:8080
routes:
- name: knoe-route
paths:
- /k3s/kube_config.sh
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: knoe-ubuntu
namespace: knoe-db
labels:
app: knoe-ubuntu
spec:
replicas: 1
selector:
matchLabels:
app: knoe-ubuntu
template:
metadata:
labels:
app: knoe-ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:22.04
command: ["/bin/bash", "-c"]
args:
- |
apt-get update && apt-get install -y python3
mkdir -p /knoe/home/k3s/
cp /tmp/kube_config.sh /knoe/home/k3s/kube_config.sh
chmod +x /knoe/home/k3s/kube_config.sh
cd /knoe/home
python3 -m http.server 8080
ports:
- containerPort: 8080
volumeMounts:
- name: script-vol
mountPath: /tmp/kube_config.sh
subPath: kube_config.sh
volumes:
- name: script-vol
configMap:
name: knoe-kubeconfig-cm
---
apiVersion: v1
kind: Service
metadata:
name: knoe-svc
namespace: knoe-db
spec:
selector:
app: knoe-ubuntu
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: knoe-myrddin-ingress
namespace: knoe-db
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: myrddin.prole.org
http:
paths:
- path: /k3s/kube_config.sh
pathType: Prefix
backend:
service:
name: knoe-db-kong
port:
number: 8000