]> git.feebdaed.xyz Git - gomehub.git/commitdiff
reorganize
authorseantywork <seantywork@gmail.com>
Sat, 5 Oct 2024 04:38:13 +0000 (13:38 +0900)
committerseantywork <seantywork@gmail.com>
Sat, 5 Oct 2024 04:38:13 +0000 (13:38 +0900)
23 files changed:
README.md
hack/01-install-k8s.sh [new file with mode: 0755]
hack/02-install-loadbalancing.sh [new file with mode: 0755]
hack/03-install-namespace.sh [new file with mode: 0755]
hack/04-update-ingress.sh [new file with mode: 0755]
hack/05-update-app.sh [new file with mode: 0755]
hack/06-install-utils.sh [new file with mode: 0755]
hack/07-install-volume.sh [new file with mode: 0755]
hack/08-update-data.sh [new file with mode: 0755]
hack/09-follow-log.sh [new file with mode: 0755]
hack/cicd [new file with mode: 0755]
hack/cicd.conf [new file with mode: 0644]
hack/k8s/app-volume.yaml [new file with mode: 0644]
hack/k8s/app.tmpl.yaml [new file with mode: 0644]
hack/k8s/app.yaml [new file with mode: 0644]
hack/k8s/default-storage-class.yaml [new file with mode: 0644]
hack/k8s/kindcluster.yaml [new file with mode: 0644]
hack/k8s/v1/app.yaml [new file with mode: 0644]
hack/k8s/v1/ingress-front.yaml [new file with mode: 0644]
hack/k8s/v1/ingress.yaml [new file with mode: 0644]
hack/nginx/fd.conf [new file with mode: 0644]
hack/nginx/nginx.conf [new file with mode: 0644]
hack/turn/README.md [new file with mode: 0644]

index 9deab64a8ec33a676a5d875659d0cf485c6665e7..99ce01335b5b70fe51009468f9b3d9d932dd14ab 100644 (file)
--- a/README.md
+++ b/README.md
@@ -3,6 +3,20 @@
 I'm sorry Linus, again, for abandoning C to create reliable and maintainable dashboard that supports video streaming and chat
 
 
-## Documentation
+# site
+
+[feebdaed.xyz](https://feebdaed.xyz)
+
+
+# video chat
+
+
+https://github.com/user-attachments/assets/b6ca19dc-2a87-422c-acd3-381d71b70e82
+
+
+
+# stream CCTV
+
+
+https://github.com/user-attachments/assets/6856c1c1-a897-4265-ac4f-62ab333ec9c9
 
-See [sorrylinus](https://github.com/seantywork/sorrylinus?tab=readme-ov-file#web)
\ No newline at end of file
diff --git a/hack/01-install-k8s.sh b/hack/01-install-k8s.sh
new file mode 100755 (executable)
index 0000000..15f8c37
--- /dev/null
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+set -euxo pipefail
+
+######## wj
+
+
+
+local_ip=$1
+
+HOME="/root" 
+
+
+sudo swapoff -a
+
+
+(crontab -l 2>/dev/null; echo "@reboot /sbin/swapoff -a") | crontab - || true
+sudo apt-get update -y
+
+
+
+OS="Debian_12"
+
+VERSION="1.28"
+
+
+
+cat <<EOF | sudo tee /etc/modules-load.d/crio.conf
+overlay
+br_netfilter
+EOF
+
+sudo modprobe overlay
+sudo modprobe br_netfilter
+
+
+cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
+net.bridge.bridge-nf-call-iptables  = 1
+net.ipv4.ip_forward                 = 1
+net.bridge.bridge-nf-call-ip6tables = 1
+EOF
+
+sudo sysctl --system
+
+cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
+deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /
+EOF
+cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
+deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /
+EOF
+
+curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
+curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
+
+sudo apt-get update
+sudo apt-get install cri-o cri-o-runc -y
+
+sudo systemctl daemon-reload
+sudo systemctl enable crio --now
+
+echo "Container runtime installed susccessfully"
+
+
+
+sudo apt-get update
+sudo apt-get install -y apt-transport-https ca-certificates curl
+
+sudo mkdir -p /etc/apt/keyrings
+
+
+sudo curl -fsSL "https://pkgs.k8s.io/core:/stable:/v$VERSION/deb/Release.key" | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
+
+echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v$VERSION/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
+
+sudo apt-get update -y
+sudo apt-get install -y kubelet kubectl kubeadm
+sudo apt-get update -y
+sudo apt-get install -y jq
+
+
+
+cat > /etc/default/kubelet << EOF
+KUBELET_EXTRA_ARGS=--node-ip=$local_ip
+EOF
+
+
+
+
+########
+
+
+MASTER_IP=$local_ip
+LB_IP=$local_ip
+IP_NO_DOT=$(echo "$local_ip" | sed "s/\./-/g")
+PORT="6443"
+NODENAME="$(hostname -s)"
+NODENAME="ctrlwk-$NODENAME-$IP_NO_DOT-$(openssl rand -hex 8)"
+POD_CIDR="10.10.0.0/16"
+
+sudo kubeadm config images pull --cri-socket=unix:///var/run/crio/crio.sock 
+
+echo "Preflight Check Passed: Downloaded All Required Images"
+
+sudo kubeadm init --apiserver-advertise-address=$MASTER_IP --apiserver-cert-extra-sans="$MASTER_IP,$LB_IP" --pod-network-cidr=$POD_CIDR --node-name "$NODENAME" --control-plane-endpoint "$LB_IP:$PORT" --ignore-preflight-errors Swap --cri-socket=unix:///var/run/crio/crio.sock 
+mkdir -p "$HOME"/.kube
+sudo cp -i /etc/kubernetes/admin.conf "$HOME"/.kube/config
+sudo chown "$(id -u)":"$(id -g)" "$HOME"/.kube/config
+
+
+
+#curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml -O
+
+#kubectl apply -f calico.yaml
+
+CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
+CLI_ARCH=amd64
+if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
+curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
+sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
+sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
+rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
+
+cilium install --version 1.14.5
+
+
+kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
+
+
+
+kubectl label node $NODENAME ingress-ready=true 
+
+kubectl taint node $NODENAME node-role.kubernetes.io/control-plane:NoSchedule-
\ No newline at end of file
diff --git a/hack/02-install-loadbalancing.sh b/hack/02-install-loadbalancing.sh
new file mode 100755 (executable)
index 0000000..add479d
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# nginx
+
+sudo apt update
+sudo apt install nginx
+
+
+# certbot
+
+sudo snap install --classic certbot 
+
+sudo ln -s /snap/bin/certbot /usr/bin/certbot 
+
+# firewall
+
+
+# sudo ufw allow 22
+
+# sudo ufw allow 80
+
+# sudo ufw allow 443
+
+# sudo ufw allow 3000
+
+# sudo ufw allow 3001
diff --git a/hack/03-install-namespace.sh b/hack/03-install-namespace.sh
new file mode 100755 (executable)
index 0000000..b231e4e
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+set -euxo pipefail
+
+PW="$1"
+
+
+kubectl create namespace frank
+
+echo "$PW"
+
+kubectl -n frank create secret docker-registry docker-secret \
+    --docker-server=registry.gitlab.com \
+    --docker-username=seantywork \
+    --docker-password="$1" \
\ No newline at end of file
diff --git a/hack/04-update-ingress.sh b/hack/04-update-ingress.sh
new file mode 100755 (executable)
index 0000000..a33e022
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+
+
+
+/bin/cp -Rf ../nginx/fd.conf /etc/nginx/conf.d/fd.conf 
+
+/bin/cp -Rf ../nginx/nginx.conf /etc/nginx/nginx.conf
+
+systemctl restart nginx
+
+certbot --nginx --rsa-key-size 4096 --no-redirect 
+
+
+systemctl restart nginx
diff --git a/hack/05-update-app.sh b/hack/05-update-app.sh
new file mode 100755 (executable)
index 0000000..bff475f
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+
+kubectl -n frank delete -f ../k8s/app.yaml
+
+kubectl -n frank apply -f ../k8s/app.yaml
+
+kubectl -n kube-system rollout restart deployment/coredns
\ No newline at end of file
diff --git a/hack/06-install-utils.sh b/hack/06-install-utils.sh
new file mode 100755 (executable)
index 0000000..e11f42c
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# docker
+
+sudo apt-get update
+sudo apt-get install ca-certificates curl
+sudo install -m 0755 -d /etc/apt/keyrings
+sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
+sudo chmod a+r /etc/apt/keyrings/docker.asc
+
+echo \
+  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
+  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
+  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+
+sudo apt-get update
+
+
+sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
+
+
+# #kind
+
+# #[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
+
+
+# chmod +x ./kind
+
+# sudo mv ./kind /usr/local/bin/kind
+
+
+# helm
+
+curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
+
+chmod 700 get_helm.sh
+
+./get_helm.sh
+
+rm ./get_helm.sh
+
diff --git a/hack/07-install-volume.sh b/hack/07-install-volume.sh
new file mode 100755 (executable)
index 0000000..bc58616
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+
+set -euxo pipefail
+
+#######
+
+# nfs
+
+local_ip=$1
+
+apt-get update
+
+apt-get install -y nfs-kernel-server
+
+apt-get install -y nfs-common
+
+mkdir -p /data
+
+chown -R root:root /data
+
+chmod -R 777 /data
+
+
+
+IP=$local_ip
+
+cat << EOF > /etc/exports
+
+/data $IP/24(rw,sync,no_subtree_check,no_root_squash) 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash)
+
+EOF
+
+exportfs -a
+
+systemctl restart nfs-kernel-server
+
+
+# nfs provisioner
+
+set -euxo pipefail
+
+#######
+
+server_ip=$1
+
+
+sudo helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
+
+
+sudo helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server=$server_ip --set nfs.path=/data
+
+
+sudo kubectl apply -f ../k8s/default-storage-class.yaml
+
+
+######
+
+
diff --git a/hack/08-update-data.sh b/hack/08-update-data.sh
new file mode 100755 (executable)
index 0000000..acd53d2
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+
+sudo mkdir -p /data/sorrylinus-again
+
+
+sudo mkdir -p /data/sorrylinus-again/admin
+
+sudo echo '{}' | sudo tee /data/sorrylinus-again/admin/seantywork@gmail.com.json
+
+sudo mkdir -p /data/sorrylinus-again/media
+
+sudo mkdir -p /data/sorrylinus-again/media/article
+
+sudo mkdir -p /data/sorrylinus-again/media/image
+
+sudo mkdir -p /data/sorrylinus-again/media/video
+
+sudo mkdir -p /data/sorrylinus-again/session
+
+
+sudo mkdir -p /data/sorrylinus-again/user
+
+sudo mkdir -p /data/sorrylinus-again/log
+
+sudo echo '{}' | sudo tee /data/sorrylinus-again/log/stat.json
+
+
+
+sudo chmod -R 777 /data/sorrylinus-again
+
+sudo kubectl apply -n frank -f ../k8s/app-volume.yaml
\ No newline at end of file
diff --git a/hack/09-follow-log.sh b/hack/09-follow-log.sh
new file mode 100755 (executable)
index 0000000..dd12604
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+function usage_helper(){
+
+    echo "usage:"
+    echo "  again : follow sorrylinus-again log"
+    echo "  hub   : follow sorrylinus-hub log"
+}
+
+if [ -z "$1" ]
+then 
+
+    echo "argument is empty"
+
+    usage_helper
+    
+    exit 1
+fi
+
+
+
+if [ "$1" == "again" ]
+then 
+
+    TARGET_POD=$(sudo kubectl -n frank get pods --no-headers -o custom-columns=":metadata.name" | grep 'sorrylinus-again')
+    
+    echo "your follow target name: ${TARGET_POD}"
+    
+    sudo kubectl -n frank logs "${TARGET_POD}" --follow
+
+
+elif [ "$1" == "hub" ]
+then 
+
+    TARGET_POD=$(sudo kubectl -n frank get pods --no-headers -o custom-columns=":metadata.name" | grep 'sorrylinus-hub')
+    
+    echo "your follow target name: ${TARGET_POD}"
+    
+    sudo kubectl -n frank logs "${TARGET_POD}" --follow
+
+else 
+
+    echo "wrong argument: $1"
+
+    usage_helper
+
+    exit 1
+
+fi
\ No newline at end of file
diff --git a/hack/cicd b/hack/cicd
new file mode 100755 (executable)
index 0000000..474390b
--- /dev/null
+++ b/hack/cicd
@@ -0,0 +1,120 @@
+#!/bin/bash
+function usage_helper(){
+
+    echo "usage:"
+    echo "  soli  : do ci cd" 
+    echo "  test  : for test "
+}
+
+function build_sorrylinus_again(){
+
+    echo "======BUILD SORRYLINUS AGAIN START======"
+
+
+    DST_OJSON="${SOLI_AGAIN_PROD_DIR}/${SOLI_AGAIN_OAUTH_JSON}"
+    DST_CYAML="${SOLI_AGAIN_PROD_DIR}/${SOLI_AGAIN_CONFIG_YAML}"
+
+    isDebugOn=$(cat "${DST_CYAML}" | grep -c "debug: true")
+
+    if [ $isDebugOn -eq 1 ]
+    then
+        echo "sorrylinus-again: check debug flag"
+        exit 1
+    fi
+
+    pushd "${SOLI_AGAIN_PROD_VENDOR_TUICSS_DIR}"
+
+    git pull
+
+    popd
+
+    pushd "${SOLI_AGAIN_PROD_DIR}"
+
+    git pull
+
+    sudo docker compose -f docker-compose.yaml.build up --build -d
+
+    sudo docker compose -f docker-compose.yaml.build down
+
+    sudo docker tag sorrylinus-again-sorrylinus-again "${SOLI_AGAIN_IMG_ADDR}"
+
+    sudo docker push "${SOLI_AGAIN_IMG_ADDR}"
+
+    popd
+
+    echo "======BUILD SORRYLINUS AGAIN END======"
+
+}
+
+
+
+
+
+function deploy_sorrylinus_again(){
+
+    echo "======DEPLOY SORRYLINUS AGAIN START======"
+
+    EXEC_DEPLOY="${SSHX} '${SSHY} ${SOLI_AGAIN_DEPLOY_CMD}'"
+
+    /bin/bash -c "${EXEC_DEPLOY}"
+
+    echo "======DEPLOY SORRYLINUS AGAIN END======"
+
+}
+
+
+
+function test_part(){
+
+    echo "add whatever you want"
+}
+
+if [ ! -f "./cicd.conf" ]
+then
+    echo "cicd.conf not found"
+    exit 1
+fi
+
+
+
+if [ -z "$1" ]
+then 
+
+    echo "argument is empty"
+
+    usage_helper
+    
+    exit 1
+fi
+
+source ./cicd.conf
+
+
+
+if [ "$1" == "soli" ]
+then 
+
+    build_sorrylinus_again
+
+    deploy_sorrylinus_again
+
+
+elif [ "$1" == "test" ]
+then 
+
+    test_part
+
+else 
+
+    echo "wrong argument: $1"
+
+    usage_helper
+
+    exit 1
+
+fi
+
+echo "finished running cicd pipeline"
+
+
+
diff --git a/hack/cicd.conf b/hack/cicd.conf
new file mode 100644 (file)
index 0000000..c1beab3
--- /dev/null
@@ -0,0 +1,8 @@
+SOLI_AGAIN_IMG_ADDR="registry.gitlab.com/seantywork/sorrylinus-again"
+SOLI_AGAIN_OAUTH_JSON="oauth.json"
+SOLI_AGAIN_CONFIG_YAML="config.yaml"
+SOLI_AGAIN_PROD_DIR="../"
+SOLI_AGAIN_PROD_VENDOR_TUICSS_DIR="../public/vendor/TuiCss"
+SSHX="ssh seantywork@seantywork.feebdaed.xyz -p 22222"
+SSHY="ssh seantywork@192.168.0.32"
+SOLI_AGAIN_DEPLOY_CMD="kubectl -n frank rollout restart deployment/sorrylinus-again"
diff --git a/hack/k8s/app-volume.yaml b/hack/k8s/app-volume.yaml
new file mode 100644 (file)
index 0000000..1ee3f7e
--- /dev/null
@@ -0,0 +1,32 @@
+apiVersion: v1 
+kind: PersistentVolume 
+metadata: 
+  name: sorrylinus-again-pv
+spec: 
+  capacity: 
+    storage: 16Gi 
+  volumeMode: Filesystem 
+  accessModes: 
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Delete
+  storageClassName: nfs-default-storageclass
+  mountOptions: 
+    - hard 
+    - nfsvers=4.1 
+  nfs: 
+    path: /data/sorrylinus-again 
+    server: 192.168.0.32
+
+---
+
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: sorrylinus-again-pvc
+spec:
+  storageClassName: nfs-default-storageclass
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 16Gi
\ No newline at end of file
diff --git a/hack/k8s/app.tmpl.yaml b/hack/k8s/app.tmpl.yaml
new file mode 100644 (file)
index 0000000..91fa60f
--- /dev/null
@@ -0,0 +1,92 @@
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: sorrylinus-again-web
+spec:
+  type: NodePort
+  selector:
+    app: sorrylinus-again
+  ports:
+    - name: sorrylinus-again-8000
+      nodePort: 30010
+      port: 8000
+      targetPort: 8000
+    - name: sorrylinus-again-8002
+      nodePort: 30012
+      port: 8002
+      targetPort: 8002
+    - name: sorrylinus-again-8004
+      nodePort: 30014
+      port: 8004
+      targetPort: 8004
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: sorrylinus-again-rtc
+spec:
+  type: NodePort
+  selector:
+    app: sorrylinus-again
+  ports:
+    - name: sorrylinus-again-8006
+      nodePort: 30016
+      port: 8006
+      targetPort: 8006
+      protocol: UDP
+    {{- range seq 0 100}}
+    - name: sorrylinus-again-{{add 31000 .}}
+      nodePort: {{add 31000 .}}
+      port: {{add 31000 .}}
+      targetPort: {{add 31000 .}}
+      protocol: UDP
+    {{- end -}}
+    {{ print "\n" }}
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: sorrylinus-again
+spec:
+  selector:
+    matchLabels:
+      app: sorrylinus-again
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: sorrylinus-again
+    spec:
+      imagePullSecrets:
+      - name: docker-secret
+      restartPolicy: Always
+      volumes: 
+        - name: sorrylinus-again-storage 
+          persistentVolumeClaim: 
+            claimName: sorrylinus-again-pvc
+      containers:
+      - name: sorrylinus-again
+        imagePullPolicy: Always
+        image: registry.gitlab.com/seantywork/sorrylinus-again
+        tty: true
+        volumeMounts: 
+        - mountPath: "/home/data" 
+          name: sorrylinus-again-storage 
+        ports:
+        - containerPort: 8000
+          protocol: TCP
+        - containerPort: 8002
+          protocol: TCP
+        - containerPort: 8004
+          protocol: TCP
+        - containerPort: 8006
+          protocol: UDP
+        {{- range seq 0 100}}
+        - containerPort: {{add 31000 .}}
+          protocol: UDP
+        {{- end -}}
+        {{ print "\n" }}
+
diff --git a/hack/k8s/app.yaml b/hack/k8s/app.yaml
new file mode 100644 (file)
index 0000000..e156e4e
--- /dev/null
@@ -0,0 +1,788 @@
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: sorrylinus-again-web
+spec:
+  type: NodePort
+  selector:
+    app: sorrylinus-again
+  ports:
+    - name: sorrylinus-again-8000
+      nodePort: 30010
+      port: 8000
+      targetPort: 8000
+    - name: sorrylinus-again-8002
+      nodePort: 30012
+      port: 8002
+      targetPort: 8002
+    - name: sorrylinus-again-8004
+      nodePort: 30014
+      port: 8004
+      targetPort: 8004
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: sorrylinus-again-rtc
+spec:
+  type: NodePort
+  selector:
+    app: sorrylinus-again
+  ports:
+    - name: sorrylinus-again-8006
+      nodePort: 30016
+      port: 8006
+      targetPort: 8006
+      protocol: UDP
+    - name: sorrylinus-again-31000
+      nodePort: 31000
+      port: 31000
+      targetPort: 31000
+      protocol: UDP
+    - name: sorrylinus-again-31001
+      nodePort: 31001
+      port: 31001
+      targetPort: 31001
+      protocol: UDP
+    - name: sorrylinus-again-31002
+      nodePort: 31002
+      port: 31002
+      targetPort: 31002
+      protocol: UDP
+    - name: sorrylinus-again-31003
+      nodePort: 31003
+      port: 31003
+      targetPort: 31003
+      protocol: UDP
+    - name: sorrylinus-again-31004
+      nodePort: 31004
+      port: 31004
+      targetPort: 31004
+      protocol: UDP
+    - name: sorrylinus-again-31005
+      nodePort: 31005
+      port: 31005
+      targetPort: 31005
+      protocol: UDP
+    - name: sorrylinus-again-31006
+      nodePort: 31006
+      port: 31006
+      targetPort: 31006
+      protocol: UDP
+    - name: sorrylinus-again-31007
+      nodePort: 31007
+      port: 31007
+      targetPort: 31007
+      protocol: UDP
+    - name: sorrylinus-again-31008
+      nodePort: 31008
+      port: 31008
+      targetPort: 31008
+      protocol: UDP
+    - name: sorrylinus-again-31009
+      nodePort: 31009
+      port: 31009
+      targetPort: 31009
+      protocol: UDP
+    - name: sorrylinus-again-31010
+      nodePort: 31010
+      port: 31010
+      targetPort: 31010
+      protocol: UDP
+    - name: sorrylinus-again-31011
+      nodePort: 31011
+      port: 31011
+      targetPort: 31011
+      protocol: UDP
+    - name: sorrylinus-again-31012
+      nodePort: 31012
+      port: 31012
+      targetPort: 31012
+      protocol: UDP
+    - name: sorrylinus-again-31013
+      nodePort: 31013
+      port: 31013
+      targetPort: 31013
+      protocol: UDP
+    - name: sorrylinus-again-31014
+      nodePort: 31014
+      port: 31014
+      targetPort: 31014
+      protocol: UDP
+    - name: sorrylinus-again-31015
+      nodePort: 31015
+      port: 31015
+      targetPort: 31015
+      protocol: UDP
+    - name: sorrylinus-again-31016
+      nodePort: 31016
+      port: 31016
+      targetPort: 31016
+      protocol: UDP
+    - name: sorrylinus-again-31017
+      nodePort: 31017
+      port: 31017
+      targetPort: 31017
+      protocol: UDP
+    - name: sorrylinus-again-31018
+      nodePort: 31018
+      port: 31018
+      targetPort: 31018
+      protocol: UDP
+    - name: sorrylinus-again-31019
+      nodePort: 31019
+      port: 31019
+      targetPort: 31019
+      protocol: UDP
+    - name: sorrylinus-again-31020
+      nodePort: 31020
+      port: 31020
+      targetPort: 31020
+      protocol: UDP
+    - name: sorrylinus-again-31021
+      nodePort: 31021
+      port: 31021
+      targetPort: 31021
+      protocol: UDP
+    - name: sorrylinus-again-31022
+      nodePort: 31022
+      port: 31022
+      targetPort: 31022
+      protocol: UDP
+    - name: sorrylinus-again-31023
+      nodePort: 31023
+      port: 31023
+      targetPort: 31023
+      protocol: UDP
+    - name: sorrylinus-again-31024
+      nodePort: 31024
+      port: 31024
+      targetPort: 31024
+      protocol: UDP
+    - name: sorrylinus-again-31025
+      nodePort: 31025
+      port: 31025
+      targetPort: 31025
+      protocol: UDP
+    - name: sorrylinus-again-31026
+      nodePort: 31026
+      port: 31026
+      targetPort: 31026
+      protocol: UDP
+    - name: sorrylinus-again-31027
+      nodePort: 31027
+      port: 31027
+      targetPort: 31027
+      protocol: UDP
+    - name: sorrylinus-again-31028
+      nodePort: 31028
+      port: 31028
+      targetPort: 31028
+      protocol: UDP
+    - name: sorrylinus-again-31029
+      nodePort: 31029
+      port: 31029
+      targetPort: 31029
+      protocol: UDP
+    - name: sorrylinus-again-31030
+      nodePort: 31030
+      port: 31030
+      targetPort: 31030
+      protocol: UDP
+    - name: sorrylinus-again-31031
+      nodePort: 31031
+      port: 31031
+      targetPort: 31031
+      protocol: UDP
+    - name: sorrylinus-again-31032
+      nodePort: 31032
+      port: 31032
+      targetPort: 31032
+      protocol: UDP
+    - name: sorrylinus-again-31033
+      nodePort: 31033
+      port: 31033
+      targetPort: 31033
+      protocol: UDP
+    - name: sorrylinus-again-31034
+      nodePort: 31034
+      port: 31034
+      targetPort: 31034
+      protocol: UDP
+    - name: sorrylinus-again-31035
+      nodePort: 31035
+      port: 31035
+      targetPort: 31035
+      protocol: UDP
+    - name: sorrylinus-again-31036
+      nodePort: 31036
+      port: 31036
+      targetPort: 31036
+      protocol: UDP
+    - name: sorrylinus-again-31037
+      nodePort: 31037
+      port: 31037
+      targetPort: 31037
+      protocol: UDP
+    - name: sorrylinus-again-31038
+      nodePort: 31038
+      port: 31038
+      targetPort: 31038
+      protocol: UDP
+    - name: sorrylinus-again-31039
+      nodePort: 31039
+      port: 31039
+      targetPort: 31039
+      protocol: UDP
+    - name: sorrylinus-again-31040
+      nodePort: 31040
+      port: 31040
+      targetPort: 31040
+      protocol: UDP
+    - name: sorrylinus-again-31041
+      nodePort: 31041
+      port: 31041
+      targetPort: 31041
+      protocol: UDP
+    - name: sorrylinus-again-31042
+      nodePort: 31042
+      port: 31042
+      targetPort: 31042
+      protocol: UDP
+    - name: sorrylinus-again-31043
+      nodePort: 31043
+      port: 31043
+      targetPort: 31043
+      protocol: UDP
+    - name: sorrylinus-again-31044
+      nodePort: 31044
+      port: 31044
+      targetPort: 31044
+      protocol: UDP
+    - name: sorrylinus-again-31045
+      nodePort: 31045
+      port: 31045
+      targetPort: 31045
+      protocol: UDP
+    - name: sorrylinus-again-31046
+      nodePort: 31046
+      port: 31046
+      targetPort: 31046
+      protocol: UDP
+    - name: sorrylinus-again-31047
+      nodePort: 31047
+      port: 31047
+      targetPort: 31047
+      protocol: UDP
+    - name: sorrylinus-again-31048
+      nodePort: 31048
+      port: 31048
+      targetPort: 31048
+      protocol: UDP
+    - name: sorrylinus-again-31049
+      nodePort: 31049
+      port: 31049
+      targetPort: 31049
+      protocol: UDP
+    - name: sorrylinus-again-31050
+      nodePort: 31050
+      port: 31050
+      targetPort: 31050
+      protocol: UDP
+    - name: sorrylinus-again-31051
+      nodePort: 31051
+      port: 31051
+      targetPort: 31051
+      protocol: UDP
+    - name: sorrylinus-again-31052
+      nodePort: 31052
+      port: 31052
+      targetPort: 31052
+      protocol: UDP
+    - name: sorrylinus-again-31053
+      nodePort: 31053
+      port: 31053
+      targetPort: 31053
+      protocol: UDP
+    - name: sorrylinus-again-31054
+      nodePort: 31054
+      port: 31054
+      targetPort: 31054
+      protocol: UDP
+    - name: sorrylinus-again-31055
+      nodePort: 31055
+      port: 31055
+      targetPort: 31055
+      protocol: UDP
+    - name: sorrylinus-again-31056
+      nodePort: 31056
+      port: 31056
+      targetPort: 31056
+      protocol: UDP
+    - name: sorrylinus-again-31057
+      nodePort: 31057
+      port: 31057
+      targetPort: 31057
+      protocol: UDP
+    - name: sorrylinus-again-31058
+      nodePort: 31058
+      port: 31058
+      targetPort: 31058
+      protocol: UDP
+    - name: sorrylinus-again-31059
+      nodePort: 31059
+      port: 31059
+      targetPort: 31059
+      protocol: UDP
+    - name: sorrylinus-again-31060
+      nodePort: 31060
+      port: 31060
+      targetPort: 31060
+      protocol: UDP
+    - name: sorrylinus-again-31061
+      nodePort: 31061
+      port: 31061
+      targetPort: 31061
+      protocol: UDP
+    - name: sorrylinus-again-31062
+      nodePort: 31062
+      port: 31062
+      targetPort: 31062
+      protocol: UDP
+    - name: sorrylinus-again-31063
+      nodePort: 31063
+      port: 31063
+      targetPort: 31063
+      protocol: UDP
+    - name: sorrylinus-again-31064
+      nodePort: 31064
+      port: 31064
+      targetPort: 31064
+      protocol: UDP
+    - name: sorrylinus-again-31065
+      nodePort: 31065
+      port: 31065
+      targetPort: 31065
+      protocol: UDP
+    - name: sorrylinus-again-31066
+      nodePort: 31066
+      port: 31066
+      targetPort: 31066
+      protocol: UDP
+    - name: sorrylinus-again-31067
+      nodePort: 31067
+      port: 31067
+      targetPort: 31067
+      protocol: UDP
+    - name: sorrylinus-again-31068
+      nodePort: 31068
+      port: 31068
+      targetPort: 31068
+      protocol: UDP
+    - name: sorrylinus-again-31069
+      nodePort: 31069
+      port: 31069
+      targetPort: 31069
+      protocol: UDP
+    - name: sorrylinus-again-31070
+      nodePort: 31070
+      port: 31070
+      targetPort: 31070
+      protocol: UDP
+    - name: sorrylinus-again-31071
+      nodePort: 31071
+      port: 31071
+      targetPort: 31071
+      protocol: UDP
+    - name: sorrylinus-again-31072
+      nodePort: 31072
+      port: 31072
+      targetPort: 31072
+      protocol: UDP
+    - name: sorrylinus-again-31073
+      nodePort: 31073
+      port: 31073
+      targetPort: 31073
+      protocol: UDP
+    - name: sorrylinus-again-31074
+      nodePort: 31074
+      port: 31074
+      targetPort: 31074
+      protocol: UDP
+    - name: sorrylinus-again-31075
+      nodePort: 31075
+      port: 31075
+      targetPort: 31075
+      protocol: UDP
+    - name: sorrylinus-again-31076
+      nodePort: 31076
+      port: 31076
+      targetPort: 31076
+      protocol: UDP
+    - name: sorrylinus-again-31077
+      nodePort: 31077
+      port: 31077
+      targetPort: 31077
+      protocol: UDP
+    - name: sorrylinus-again-31078
+      nodePort: 31078
+      port: 31078
+      targetPort: 31078
+      protocol: UDP
+    - name: sorrylinus-again-31079
+      nodePort: 31079
+      port: 31079
+      targetPort: 31079
+      protocol: UDP
+    - name: sorrylinus-again-31080
+      nodePort: 31080
+      port: 31080
+      targetPort: 31080
+      protocol: UDP
+    - name: sorrylinus-again-31081
+      nodePort: 31081
+      port: 31081
+      targetPort: 31081
+      protocol: UDP
+    - name: sorrylinus-again-31082
+      nodePort: 31082
+      port: 31082
+      targetPort: 31082
+      protocol: UDP
+    - name: sorrylinus-again-31083
+      nodePort: 31083
+      port: 31083
+      targetPort: 31083
+      protocol: UDP
+    - name: sorrylinus-again-31084
+      nodePort: 31084
+      port: 31084
+      targetPort: 31084
+      protocol: UDP
+    - name: sorrylinus-again-31085
+      nodePort: 31085
+      port: 31085
+      targetPort: 31085
+      protocol: UDP
+    - name: sorrylinus-again-31086
+      nodePort: 31086
+      port: 31086
+      targetPort: 31086
+      protocol: UDP
+    - name: sorrylinus-again-31087
+      nodePort: 31087
+      port: 31087
+      targetPort: 31087
+      protocol: UDP
+    - name: sorrylinus-again-31088
+      nodePort: 31088
+      port: 31088
+      targetPort: 31088
+      protocol: UDP
+    - name: sorrylinus-again-31089
+      nodePort: 31089
+      port: 31089
+      targetPort: 31089
+      protocol: UDP
+    - name: sorrylinus-again-31090
+      nodePort: 31090
+      port: 31090
+      targetPort: 31090
+      protocol: UDP
+    - name: sorrylinus-again-31091
+      nodePort: 31091
+      port: 31091
+      targetPort: 31091
+      protocol: UDP
+    - name: sorrylinus-again-31092
+      nodePort: 31092
+      port: 31092
+      targetPort: 31092
+      protocol: UDP
+    - name: sorrylinus-again-31093
+      nodePort: 31093
+      port: 31093
+      targetPort: 31093
+      protocol: UDP
+    - name: sorrylinus-again-31094
+      nodePort: 31094
+      port: 31094
+      targetPort: 31094
+      protocol: UDP
+    - name: sorrylinus-again-31095
+      nodePort: 31095
+      port: 31095
+      targetPort: 31095
+      protocol: UDP
+    - name: sorrylinus-again-31096
+      nodePort: 31096
+      port: 31096
+      targetPort: 31096
+      protocol: UDP
+    - name: sorrylinus-again-31097
+      nodePort: 31097
+      port: 31097
+      targetPort: 31097
+      protocol: UDP
+    - name: sorrylinus-again-31098
+      nodePort: 31098
+      port: 31098
+      targetPort: 31098
+      protocol: UDP
+    - name: sorrylinus-again-31099
+      nodePort: 31099
+      port: 31099
+      targetPort: 31099
+      protocol: UDP
+    - name: sorrylinus-again-31100
+      nodePort: 31100
+      port: 31100
+      targetPort: 31100
+      protocol: UDP
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: sorrylinus-again
+spec:
+  selector:
+    matchLabels:
+      app: sorrylinus-again
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: sorrylinus-again
+    spec:
+      imagePullSecrets:
+      - name: docker-secret
+      restartPolicy: Always
+      volumes: 
+        - name: sorrylinus-again-storage 
+          persistentVolumeClaim: 
+            claimName: sorrylinus-again-pvc
+      containers:
+      - name: sorrylinus-again
+        imagePullPolicy: Always
+        image: registry.gitlab.com/seantywork/sorrylinus-again
+        tty: true
+        volumeMounts: 
+        - mountPath: "/home/data" 
+          name: sorrylinus-again-storage 
+        ports:
+        - containerPort: 8000
+          protocol: TCP
+        - containerPort: 8002
+          protocol: TCP
+        - containerPort: 8004
+          protocol: TCP
+        - containerPort: 8006
+          protocol: UDP
+        - containerPort: 31000
+          protocol: UDP
+        - containerPort: 31001
+          protocol: UDP
+        - containerPort: 31002
+          protocol: UDP
+        - containerPort: 31003
+          protocol: UDP
+        - containerPort: 31004
+          protocol: UDP
+        - containerPort: 31005
+          protocol: UDP
+        - containerPort: 31006
+          protocol: UDP
+        - containerPort: 31007
+          protocol: UDP
+        - containerPort: 31008
+          protocol: UDP
+        - containerPort: 31009
+          protocol: UDP
+        - containerPort: 31010
+          protocol: UDP
+        - containerPort: 31011
+          protocol: UDP
+        - containerPort: 31012
+          protocol: UDP
+        - containerPort: 31013
+          protocol: UDP
+        - containerPort: 31014
+          protocol: UDP
+        - containerPort: 31015
+          protocol: UDP
+        - containerPort: 31016
+          protocol: UDP
+        - containerPort: 31017
+          protocol: UDP
+        - containerPort: 31018
+          protocol: UDP
+        - containerPort: 31019
+          protocol: UDP
+        - containerPort: 31020
+          protocol: UDP
+        - containerPort: 31021
+          protocol: UDP
+        - containerPort: 31022
+          protocol: UDP
+        - containerPort: 31023
+          protocol: UDP
+        - containerPort: 31024
+          protocol: UDP
+        - containerPort: 31025
+          protocol: UDP
+        - containerPort: 31026
+          protocol: UDP
+        - containerPort: 31027
+          protocol: UDP
+        - containerPort: 31028
+          protocol: UDP
+        - containerPort: 31029
+          protocol: UDP
+        - containerPort: 31030
+          protocol: UDP
+        - containerPort: 31031
+          protocol: UDP
+        - containerPort: 31032
+          protocol: UDP
+        - containerPort: 31033
+          protocol: UDP
+        - containerPort: 31034
+          protocol: UDP
+        - containerPort: 31035
+          protocol: UDP
+        - containerPort: 31036
+          protocol: UDP
+        - containerPort: 31037
+          protocol: UDP
+        - containerPort: 31038
+          protocol: UDP
+        - containerPort: 31039
+          protocol: UDP
+        - containerPort: 31040
+          protocol: UDP
+        - containerPort: 31041
+          protocol: UDP
+        - containerPort: 31042
+          protocol: UDP
+        - containerPort: 31043
+          protocol: UDP
+        - containerPort: 31044
+          protocol: UDP
+        - containerPort: 31045
+          protocol: UDP
+        - containerPort: 31046
+          protocol: UDP
+        - containerPort: 31047
+          protocol: UDP
+        - containerPort: 31048
+          protocol: UDP
+        - containerPort: 31049
+          protocol: UDP
+        - containerPort: 31050
+          protocol: UDP
+        - containerPort: 31051
+          protocol: UDP
+        - containerPort: 31052
+          protocol: UDP
+        - containerPort: 31053
+          protocol: UDP
+        - containerPort: 31054
+          protocol: UDP
+        - containerPort: 31055
+          protocol: UDP
+        - containerPort: 31056
+          protocol: UDP
+        - containerPort: 31057
+          protocol: UDP
+        - containerPort: 31058
+          protocol: UDP
+        - containerPort: 31059
+          protocol: UDP
+        - containerPort: 31060
+          protocol: UDP
+        - containerPort: 31061
+          protocol: UDP
+        - containerPort: 31062
+          protocol: UDP
+        - containerPort: 31063
+          protocol: UDP
+        - containerPort: 31064
+          protocol: UDP
+        - containerPort: 31065
+          protocol: UDP
+        - containerPort: 31066
+          protocol: UDP
+        - containerPort: 31067
+          protocol: UDP
+        - containerPort: 31068
+          protocol: UDP
+        - containerPort: 31069
+          protocol: UDP
+        - containerPort: 31070
+          protocol: UDP
+        - containerPort: 31071
+          protocol: UDP
+        - containerPort: 31072
+          protocol: UDP
+        - containerPort: 31073
+          protocol: UDP
+        - containerPort: 31074
+          protocol: UDP
+        - containerPort: 31075
+          protocol: UDP
+        - containerPort: 31076
+          protocol: UDP
+        - containerPort: 31077
+          protocol: UDP
+        - containerPort: 31078
+          protocol: UDP
+        - containerPort: 31079
+          protocol: UDP
+        - containerPort: 31080
+          protocol: UDP
+        - containerPort: 31081
+          protocol: UDP
+        - containerPort: 31082
+          protocol: UDP
+        - containerPort: 31083
+          protocol: UDP
+        - containerPort: 31084
+          protocol: UDP
+        - containerPort: 31085
+          protocol: UDP
+        - containerPort: 31086
+          protocol: UDP
+        - containerPort: 31087
+          protocol: UDP
+        - containerPort: 31088
+          protocol: UDP
+        - containerPort: 31089
+          protocol: UDP
+        - containerPort: 31090
+          protocol: UDP
+        - containerPort: 31091
+          protocol: UDP
+        - containerPort: 31092
+          protocol: UDP
+        - containerPort: 31093
+          protocol: UDP
+        - containerPort: 31094
+          protocol: UDP
+        - containerPort: 31095
+          protocol: UDP
+        - containerPort: 31096
+          protocol: UDP
+        - containerPort: 31097
+          protocol: UDP
+        - containerPort: 31098
+          protocol: UDP
+        - containerPort: 31099
+          protocol: UDP
+        - containerPort: 31100
+          protocol: UDP
+
+
diff --git a/hack/k8s/default-storage-class.yaml b/hack/k8s/default-storage-class.yaml
new file mode 100644 (file)
index 0000000..03f8358
--- /dev/null
@@ -0,0 +1,10 @@
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+  annotations:
+    storageclass.kubernetes.io/is-default-class: "true"
+  name: nfs-default-storageclass
+provisioner: cluster.local/nfs-subdir-external-provisioner
+reclaimPolicy: Delete
+allowVolumeExpansion: true
+volumeBindingMode: Immediate
\ No newline at end of file
diff --git a/hack/k8s/kindcluster.yaml b/hack/k8s/kindcluster.yaml
new file mode 100644 (file)
index 0000000..7f493ba
--- /dev/null
@@ -0,0 +1,27 @@
+kind: Cluster
+
+apiVersion: kind.x-k8s.io/v1alpha4 
+
+networking:
+  apiServerAddress: "0.0.0.0"      
+
+nodes:
+
+ - role: control-plane
+   kubeadmConfigPatches:
+   - |
+     kind: InitConfiguration
+     nodeRegistration:
+       kubeletExtraArgs:
+         node-labels: "ingress-ready=true"
+   extraPortMappings:
+   - containerPort: 80
+     hostPort: 8888
+     protocol: TCP
+   - containerPort: 30011
+     hostPort: 3011
+     protocol: TCP
+   
+
+
+ - role: worker
\ No newline at end of file
diff --git a/hack/k8s/v1/app.yaml b/hack/k8s/v1/app.yaml
new file mode 100644 (file)
index 0000000..94b1a37
--- /dev/null
@@ -0,0 +1,103 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: frankthecloud
+  labels:
+    app: frankthecloud
+spec:
+  type: ClusterIP
+  ports:
+  - port: 8000
+    targetPort: 8000
+    protocol: TCP
+  selector:
+    app: frankthecloud
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: frankthecloud
+spec:
+  selector:
+    matchLabels:
+      app: frankthecloud
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: frankthecloud
+    spec:
+      imagePullSecrets:
+      - name: docker-secret
+      restartPolicy: Always
+      containers:
+      - name: frankthecloud
+        imagePullPolicy: Always
+        image: registry.gitlab.com/seantywork/frankthecloud
+        tty: true
+        ports:
+        - containerPort: 8000
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: frankhub
+  labels:
+    app: frankhub
+spec:
+  type: ClusterIP
+  ports:
+  - name: frankhub-admin
+    port: 2999
+    targetPort: 2999
+    protocol: TCP
+  - name: frankhub-front
+    port: 3000
+    targetPort: 3000
+    protocol: TCP
+  - name: frankhub-hub
+    port: 3001
+    targetPort: 3001
+    protocol: TCP
+  selector:
+    app: frankhub
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: frankhub-sock
+spec:
+  type: NodePort
+  selector:
+    app: frankhub
+  ports:
+    - nodePort: 30011
+      port: 3001
+      targetPort: 3001
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: frankhub
+spec:
+  selector:
+    matchLabels:
+      app: frankhub
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: frankhub
+    spec:
+      imagePullSecrets:
+      - name: docker-secret
+      restartPolicy: Always
+      containers:
+      - name: frankhub
+        imagePullPolicy: Always
+        image: registry.gitlab.com/seantywork/frankhub
+        tty: true
+        ports:
+        - containerPort: 2999
+        - containerPort: 3000
+        - containerPort: 3001
\ No newline at end of file
diff --git a/hack/k8s/v1/ingress-front.yaml b/hack/k8s/v1/ingress-front.yaml
new file mode 100644 (file)
index 0000000..92cdafd
--- /dev/null
@@ -0,0 +1,37 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: ingress-uc-front
+  annotations:
+    nginx.ingress.kubernetes.io/proxy-body-size: "0"
+    nginx.ingress.kubernetes.io/proxy-http-version : "1.1"
+    nginx.ingress.kubernetes.io/proxy-read-timeout: "15552000"
+    nginx.ingress.kubernetes.io/proxy-send-timeout: "15552000"
+
+spec:
+  tls:
+  - hosts:
+    - "feebdaed.xyz"
+    - "www.feebdaed.xyz"
+    secretName: frank-tls-secret
+  rules:
+  - host: "feebdaed.xyz"
+    http:
+      paths:
+        - path: /front-client
+          pathType: Prefix
+          backend:
+            service:
+              name: frankthecloud
+              port:
+                number: 8000
+  - host: "www.feebdaed.xyz"
+    http:
+      paths:
+        - path: /front-client
+          pathType: Prefix
+          backend:
+            service:
+              name: frankthecloud
+              port:
+                number: 8000
diff --git a/hack/k8s/v1/ingress.yaml b/hack/k8s/v1/ingress.yaml
new file mode 100644 (file)
index 0000000..a6c674c
--- /dev/null
@@ -0,0 +1,32 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: ingress-uc
+
+spec:
+  tls:
+  - hosts:
+    - "feebdaed.xyz"
+    - "www.feebdaed.xyz"
+    secretName: frank-tls-secret
+  rules:
+  - host: "feebdaed.xyz"
+    http:
+      paths:
+        - path: /
+          pathType: Prefix
+          backend:
+            service:
+              name: frankthecloud
+              port:
+                number: 8000
+  - host: "www.feebdaed.xyz"
+    http:
+      paths:
+        - path: /
+          pathType: Prefix
+          backend:
+            service:
+              name: frankthecloud
+              port:
+                number: 8000
\ No newline at end of file
diff --git a/hack/nginx/fd.conf b/hack/nginx/fd.conf
new file mode 100644 (file)
index 0000000..927ff0b
--- /dev/null
@@ -0,0 +1,82 @@
+
+server
+{
+        listen       80;
+        server_name      feebdaed.xyz www.feebdaed.xyz;
+        return 301 https://$host$request_uri;
+}
+
+
+
+server
+{
+        server_name  feebdaed.xyz feebdaed.xyz;
+        client_max_body_size 0;
+
+        location / {
+                # add_header Content-Type text/plain;
+                #return 200 'okay';           
+
+             proxy_pass http://0.0.0.0:30010;
+             proxy_set_header X-Real-IP $remote_addr;
+             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+             proxy_set_header X-Forwarded-For $remote_addr;
+             proxy_set_header X-Forwarded-Proto $scheme;
+             proxy_set_header Host $http_host;
+
+       #      proxy_buffering off;
+       #      proxy_request_buffering off;
+
+             proxy_http_version 1.1;
+       #      proxy_set_header   Upgrade $http_upgrade;
+       #      proxy_set_header   Connection "upgrade";
+        }
+
+
+    listen 443 ssl; # managed by Certbot
+    ssl_certificate /etc/letsencrypt/live/feebdaed.xyz/fullchain.pem; # managed by Certbot
+    ssl_certificate_key /etc/letsencrypt/live/feebdaed.xyz/privkey.pem; # managed by Certbot
+    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+
+
+server
+{
+        server_name  feebdaed.xyz www.feebdaed.xyz;
+        client_max_body_size 0;
+
+        location / {
+                # add_header Content-Type text/plain;
+                #return 200 'okay';
+
+             proxy_pass http://0.0.0.0:30012;
+             proxy_set_header X-Real-IP $remote_addr;
+             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+             proxy_set_header X-Forwarded-For $remote_addr;
+             proxy_set_header X-Forwarded-Proto $scheme;
+             proxy_set_header Host $http_host;
+
+       #      proxy_buffering off;
+       #      proxy_request_buffering off;
+
+             proxy_http_version 1.1;
+             proxy_set_header   Upgrade $http_upgrade;
+             proxy_set_header   Connection "upgrade";
+
+             proxy_read_timeout 180d;
+             proxy_send_timeout 180d;
+
+     }
+
+
+
+    listen 8022 ssl; # managed by Certbot
+    ssl_certificate /etc/letsencrypt/live/feebdaed.xyz/fullchain.pem; # managed by Certbot
+    ssl_certificate_key /etc/letsencrypt/live/feebdaed.xyz/privkey.pem; # managed by Certbot
+    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
\ No newline at end of file
diff --git a/hack/nginx/nginx.conf b/hack/nginx/nginx.conf
new file mode 100644 (file)
index 0000000..c01ed6f
--- /dev/null
@@ -0,0 +1,115 @@
+user www-data;
+worker_processes auto;
+pid /run/nginx.pid;
+include /etc/nginx/modules-enabled/*.conf;
+
+events {
+        worker_connections 768;
+        # multi_accept on;
+}
+
+
+stream
+{
+
+
+        #access_log /var/log/nginx/access_stream.log;
+
+
+
+        server{ 
+                listen 8024 ssl;
+                proxy_timeout 180d;
+                #listen 6612;
+                proxy_pass 192.168.0.32:30014;
+
+                ssl_certificate /etc/letsencrypt/live/feebdaed.xyz/fullchain.pem; # managed by Certbot
+                ssl_certificate_key /etc/letsencrypt/live/feebdaed.xyz/privkey.pem; # managed by Certbot
+        }
+
+
+        server{
+                listen 8006 udp;
+                proxy_pass 192.168.0.32:30016;
+        }
+
+
+
+
+}
+
+http {
+
+        ##
+        # Basic Settings
+        ##
+
+        sendfile on;
+        tcp_nopush on;
+        tcp_nodelay on;
+        keepalive_timeout 65;
+        types_hash_max_size 2048;
+        # server_tokens off;
+
+        # server_names_hash_bucket_size 64;
+        # server_name_in_redirect off;
+
+        include /etc/nginx/mime.types;
+        default_type application/octet-stream;
+
+        ##
+        # SSL Settings
+        ##
+
+        ssl_protocols TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
+        ssl_prefer_server_ciphers on;
+
+        ##
+        # Logging Settings
+        ##
+
+        access_log /var/log/nginx/access.log;
+        error_log /var/log/nginx/error.log;
+
+        ##
+        # Gzip Settings
+        ##
+
+        gzip on;
+
+        # gzip_vary on;
+        # gzip_proxied any;
+        # gzip_comp_level 6;
+        # gzip_buffers 16 8k;
+        # gzip_http_version 1.1;
+        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+
+        ##
+        # Virtual Host Configs
+        ##
+
+        include /etc/nginx/conf.d/*.conf;
+        # include /etc/nginx/sites-enabled/*;
+}
+
+
+#mail {
+#       # See sample authentication script at:
+#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
+# 
+#       # auth_http localhost/auth.php;
+#       # pop3_capabilities "TOP" "USER";
+#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
+# 
+#       server {
+#               listen     localhost:110;
+#               protocol   pop3;
+#               proxy      on;
+#       }
+# 
+#       server {
+#               listen     localhost:143;
+#               protocol   imap;
+#               proxy      on;
+#       }
+#}
\ No newline at end of file
diff --git a/hack/turn/README.md b/hack/turn/README.md
new file mode 100644 (file)
index 0000000..7432d1c
--- /dev/null
@@ -0,0 +1,27 @@
+
+sudo vim /etc/default/coturn
+
+TURNSERVER_ENABLED=1
+
+sudo systemctl start coturn
+
+
+sudo vim /etc/turnserver.conf
+
+listening-ip=0.0.0.0
+
+listening-port=3478
+
+external-ip=feebdaed.xyz/192.168.0.1
+min-port=3479
+max-port=3579
+
+verbose
+
+lt-cred-mech
+
+user=MYUSER:MYPASS
+
+realm=feebdaed.xyz
+
+sudo systemctl restart coturn
\ No newline at end of file