Files
k8s-apps/code-server/code-server.yaml
2026-03-22 12:35:09 +00:00

191 lines
4.2 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: startup
namespace: code-server
data:
startup.sh: |
#!/bin/sh
echo "startup..."
sleep 10s
git config --global user.name shodan
git config --global user.email "thrawn235@gmail.com"
if test ! -f "/home/coder/.config/startup.ran"; then
echo "waiting 60s for startup..."
sleep 60s
echo "cloning k8aux-apps"
cd /home/coder/project
git clone https://shodan:$SHODAN_PW@gitea.apps.undercloud.dev/Undercloud/k8s-apps.git
#git clone https://gitea.apps.undercloud.dev/Undercloud/k8s-apps.git
git clone http://git.undercloud.local:3000/Undercloud/undercloud-infrastructure.git
git config --global credential.helper store
echo "create startup.ran file..."
touch /home/coder/.config/startup.ran
else
echo "startup ran already!"
fi
echo "startup done."
#exit 123
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
namespace: code-server
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 64M
storageClassName: cephfs-hyper
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: project
namespace: code-server
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 8G
storageClassName: cephfs-hyper
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-server
namespace: code-server
labels:
app: code-server
spec:
replicas: 1
selector:
matchLabels:
app: code-server
template:
metadata:
labels:
app: code-server
spec:
dnsConfig:
options:
- name: ndots
value: "1"
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
containers:
- name: code-server
image: codercom/code-server
imagePullPolicy: IfNotPresent
lifecycle:
postStart:
exec:
command:
- "/home/coder/startup.sh"
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
periodSeconds: 20
ports:
- containerPort: 8080
- name: metrics
containerPort: 2112
env:
- name: CODER_PROMETHEUS_ENABLE
value: "0.0.0.0:2112"
- name: DOCKER_USER
value: docker
- name: PASSWORD
valueFrom:
secretKeyRef:
name: admin
key: pw
- name: SHODAN_PW
valueFrom:
secretKeyRef:
name: shodan
key: pw
optional: false
volumeMounts:
- mountPath: /home/coder/.config
name: data
subPath: config
- mountPath: /home/coder/.local/share/code-server
name: data
subPath: local
- mountPath: /home/coder/project
name: project
- mountPath: /home/coder/startup.sh
name: startup
subPath: startup.sh
volumes:
- name: data
persistentVolumeClaim:
claimName: data
readOnly: false
- name: project
persistentVolumeClaim:
claimName: project
readOnly: false
- name: startup
configMap:
name: startup
defaultMode: 0777
items:
- key: "startup.sh"
path: "startup.sh"
---
apiVersion: v1
kind: Service
metadata:
name: code-server
namespace: code-server
spec:
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
selector:
app: code-server
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: code-server-metrics
namespace: code-server
labels:
app: code-server-metrics
spec:
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: metrics
port: 2112
protocol: TCP
selector:
app: code-server
sessionAffinity: None
type: ClusterIP