diff --git a/docker/coturn-dns/Dockerfile b/docker/coturn-dns/Dockerfile new file mode 100644 index 0000000..e97067e --- /dev/null +++ b/docker/coturn-dns/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3 + +WORKDIR /app + +COPY requirements.txt requirements.txt +RUN pip3 install -r requirements.txt + +COPY pod-node-register.py . + +CMD [ "python3", "pod-node-register.py"] \ No newline at end of file diff --git a/k8s/coturn-dns/register-nodes.py b/docker/coturn-dns/pod-node-register.py similarity index 58% rename from k8s/coturn-dns/register-nodes.py rename to docker/coturn-dns/pod-node-register.py index 25bdf92..003b76f 100644 --- a/k8s/coturn-dns/register-nodes.py +++ b/docker/coturn-dns/pod-node-register.py @@ -1,26 +1,27 @@ -import requests -import json +from kubernetes import client, config import boto3 import time import os HOSTED_ZONE=os.environ['HOSTED_ZONE'] -CLUSTER_ID=os.environ['CLUSTER_ID'] -POOL_ID=os.environ['POOL_ID'] -LINODE_TOKEN=os.environ['LINODE_TOKEN'] -TOKEN={"Authorization": "Bearer "+LINODE_TOKEN} -COTURN_DOMAIN_NAME=os.environ['COTURN_DOMAIN_NAME'] +COTURN_DOMAIN_NAME=os.environ['COTURN_DOMAIN_NAME'] +COTURN_DOMAIN_NAME="coturn.staging.video.jamkazam.com" + +config.load_kube_config() +v1 = client.CoreV1Api() while(True): - r = requests.get("https://api.linode.com/v4/lke/clusters/"+CLUSTER_ID+"/pools/"+POOL_ID, headers=TOKEN) - ips=[] - for node in r.json()['nodes']: - ip = requests.get("https://api.linode.com/v4/linode/instances/"+str(node['instance_id'])+"/ips", headers=TOKEN) - ips.append({'Value': ip.json()['ipv4']['public'][0]['address']}) + pods = v1.list_namespaced_pod(namespace="coturn") + for i in pods.items: + node_status = v1.read_node(name=i.spec.node_name) + for adr in node_status.status.addresses: + if adr.type=="ExternalIP": + ips.append(adr.address) print("Node IPs: "+str(ips)) + client = boto3.client('route53') response = client.change_resource_record_sets( HostedZoneId=HOSTED_ZONE, @@ -37,4 +38,4 @@ while(True): } }] }) - time.sleep(60) \ No newline at end of file + time.sleep(60) \ No newline at end of file diff --git a/docker/coturn-dns/requirements.txt b/docker/coturn-dns/requirements.txt new file mode 100644 index 0000000..312657e --- /dev/null +++ b/docker/coturn-dns/requirements.txt @@ -0,0 +1,2 @@ +boto3 +kubernetes \ No newline at end of file diff --git a/docker/coturn/.dockerignore b/docker/coturn/.dockerignore new file mode 100644 index 0000000..533e519 --- /dev/null +++ b/docker/coturn/.dockerignore @@ -0,0 +1,3 @@ +* + +!rootfs/ diff --git a/docker/coturn/Dockerfile b/docker/coturn/Dockerfile new file mode 100644 index 0000000..da5a0fa --- /dev/null +++ b/docker/coturn/Dockerfile @@ -0,0 +1,213 @@ +# +# Dockerfile of coturn/coturn:alpine Docker image. +# + +ARG alpine_ver=3.14.2 + +# +# Stage 'dist-libprom' creates prometheus-client-c distribution. +# + +# We compile prometheus-client-c from sources, because Alpine doesn't provide +# it as its package yet. +# +# TODO: Re-check this to be present in packages on next Alpine major version update. + +# https://hub.docker.com/_/alpine +FROM alpine:${alpine_ver} AS dist-libprom + +# Install tools for building. +RUN apk update \ + && apk add --no-cache \ + ca-certificates cmake g++ git make curl bash\ + && update-ca-certificates + +# Install prometheus-client-c build dependencies. +RUN apk add --no-cache \ + libmicrohttpd-dev + +# Prepare prometheus-client-c sources for building. +ARG prom_ver=0.1.3 +RUN mkdir -p /build/ && cd /build/ \ + && git init \ + && git remote add origin https://github.com/digitalocean/prometheus-client-c \ + && git fetch --depth=1 origin "v${prom_ver}" \ + && git checkout FETCH_HEAD + +# Build libprom.so from sources. +RUN mkdir -p /build/prom/build/ && cd /build/prom/build/ \ + && TEST=0 cmake -G "Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_SKIP_BUILD_RPATH=TRUE \ + -DCMAKE_C_FLAGS="-DPROM_LOG_ENABLE -g -O3" \ + .. \ + && make + +# Build libpromhttp.so from sources. +RUN mkdir -p /build/promhttp/build/ && cd /build/promhttp/build/ \ + # Fix compiler warning: -Werror=incompatible-pointer-types + && sed -i 's/\&promhttp_handler/(MHD_AccessHandlerCallback)\&promhttp_handler/' \ + /build/promhttp/src/promhttp.c \ + && TEST=0 cmake -G "Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_SKIP_BUILD_RPATH=TRUE \ + -DCMAKE_C_FLAGS="-g -O3" \ + .. \ + && make VERBOSE=1 + +# Install prometheus-client-c. +RUN LIBS_DIR=/out/$(dirname $(find /usr/ -name libc.so)) \ + && mkdir -p $LIBS_DIR/ \ + && cp -rf /build/prom/build/libprom.so \ + /build/promhttp/build/libpromhttp.so \ + $LIBS_DIR/ \ + && mkdir -p /out/usr/include/ \ + && cp -rf /build/prom/include/* \ + /build/promhttp/include/* \ + /out/usr/include/ \ + # Preserve license file. + && mkdir -p /out/usr/share/licenses/prometheus-client-c/ \ + && cp /build/LICENSE /out/usr/share/licenses/prometheus-client-c/ + + + + +# +# Stage 'dist-coturn' creates Coturn distribution. +# + +# https://hub.docker.com/_/alpine +FROM alpine:${alpine_ver} AS dist-coturn + +ARG coturn_ver=4.5.2 + +# Install tools for building. +RUN apk update \ + && apk add --no-cache \ + autoconf ca-certificates coreutils g++ git libtool make curl bash \ + && update-ca-certificates + +# Install Coturn build dependencies. +RUN apk add --no-cache \ + linux-headers \ + libevent-dev \ + openssl-dev \ + postgresql-dev mariadb-connector-c-dev sqlite-dev \ + hiredis-dev \ + mongo-c-driver-dev \ + libmicrohttpd-dev + +# Install prometheus-client-c distribution. +COPY --from=dist-libprom /out/ / + + +# Download and prepare Coturn sources. +RUN curl -fL -o /tmp/coturn.tar.gz \ + https://github.com/coturn/coturn/archive/${coturn_ver}.tar.gz \ +&& tar -xzf /tmp/coturn.tar.gz -C /tmp/ \ +&& mv /tmp/coturn-${coturn_ver} /app + +WORKDIR /app/ + +# Use Coturn sources from Git if `coturn_git_ref` is specified. +ARG coturn_git_ref=HEAD +RUN if [ "${coturn_git_ref}" != 'HEAD' ]; then true \ + && rm -rf /app/* \ + && git init \ + && git remote add origin https://github.com/coturn/coturn \ + && git fetch --depth=1 origin "${coturn_git_ref}" \ + && git checkout FETCH_HEAD \ + && true; fi + +# Build Coturn from sources. +# TODO: Remove this symlink with next Coturn release detecting MySQL libs correctly. +RUN ln -s /usr/lib/pkgconfig/libmariadb.pc /usr/lib/pkgconfig/mariadb.pc \ + && ./configure --prefix=/usr \ + --turndbdir=/var/lib/coturn \ + --disable-rpath \ + --sysconfdir=/etc/coturn \ + # No documentation included to keep image size smaller. + --mandir=/tmp/coturn/man \ + --docsdir=/tmp/coturn/docs \ + --examplesdir=/tmp/coturn/examples \ + && make + +# Install and configure Coturn. +RUN mkdir -p /out/ \ + && DESTDIR=/out make install \ + # Remove redundant files. + && rm -rf /out/tmp/ \ + # Preserve license file. + && mkdir -p /out/usr/share/licenses/coturn/ \ + && cp LICENSE /out/usr/share/licenses/coturn/ \ + # Remove default config file. + && rm -f /out/etc/coturn/turnserver.conf.default + +# Install helper tools of Docker image. +COPY docker/coturn/rootfs/ /out/ +RUN chmod +x /out/usr/local/bin/docker-entrypoint.sh \ + /out/usr/local/bin/detect-external-ip.sh \ + /out/usr/local/bin/launch-coturn.sh +RUN ln -s /usr/local/bin/detect-external-ip.sh \ + /out/usr/local/bin/detect-external-ip +#RUN chown -R nobody:nogroup /out/var/lib/coturn/ + +# Re-export prometheus-client-c distribution. +COPY --from=dist-libprom /out/ /out/ + + +# +# Stage 'runtime' creates final Docker image to use in runtime. +# + +# https://hub.docker.com/_/alpine +FROM alpine:${alpine_ver} AS runtime + +LABEL org.opencontainers.image.source="https://github.com/coturn/coturn" + +# Update system packages. +RUN apk update \ + && apk upgrade \ + && apk add --no-cache ca-certificates \ + && update-ca-certificates \ + # Install Coturn dependencies. + && apk add --no-cache \ + libevent \ + libcrypto1.1 libssl1.1 \ + libpq mariadb-connector-c sqlite-libs \ + hiredis \ + mongo-c-driver \ + libmicrohttpd \ + # Install `dig` tool for `detect-external-ip.sh`. + && apk add --no-cache \ + bind-tools curl\ + # Cleanup unnecessary stuff. + && rm -rf /var/cache/apk/* + +# Install Coturn distribution. +COPY --from=dist-coturn /out/ / + +# Allow non-root using privileged ports. +RUN apk add --no-cache libcap bash \ + && setcap CAP_NET_BIND_SERVICE=+ep /usr/bin/turnserver \ + # Cleanup unnecessary stuff. + && apk del libcap \ + && rm -rf /var/cache/apk/* + +# COPY docker/coturn/rootfs / + +# RUN chmod +x /usr/local/bin/docker-entrypoint.sh \ +# /usr/local/bin/detect-external-ip.sh \ +# /usr/local/bin/launch-coturn.sh \ +# && ln -s /usr/local/bin/detect-external-ip.sh \ +# /usr/local/bin/detect-external-ip + +RUN chown -R nobody:nogroup /var/lib/coturn/ + +EXPOSE 3478 3478/udp + +VOLUME ["/var/lib/coturn"] + +ENTRYPOINT ["/usr/local/bin/launch-coturn.sh"] + +# CMD ["--log-file=stdout", "--external-ip=192.168.1.5", "--min-port", "49160", "--max-port", "49200"] \ No newline at end of file diff --git a/docker/coturn/rootfs/etc/coturn/turnserver.conf b/docker/coturn/rootfs/etc/coturn/turnserver.conf new file mode 100644 index 0000000..ae9c7c5 --- /dev/null +++ b/docker/coturn/rootfs/etc/coturn/turnserver.conf @@ -0,0 +1,6 @@ +min-port=49152 +max-port=65535 +lt-cred-mech +user=username:password +realm=jamkazam.com +syslog \ No newline at end of file diff --git a/docker/coturn/rootfs/usr/local/bin/detect-external-ip.sh b/docker/coturn/rootfs/usr/local/bin/detect-external-ip.sh new file mode 100755 index 0000000..fe26ada --- /dev/null +++ b/docker/coturn/rootfs/usr/local/bin/detect-external-ip.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +export DOCKER_HOST_IP=`dig +short unix.stackexchange.com` > /tmp/ugh.log +# export MY_LOCAL_IP=`hostname -i` >> /tmp/ugh.log + +exec echo "$DOCKER_HOST_IP" diff --git a/docker/coturn/rootfs/usr/local/bin/docker-entrypoint.sh b/docker/coturn/rootfs/usr/local/bin/docker-entrypoint.sh new file mode 100644 index 0000000..9f53a14 --- /dev/null +++ b/docker/coturn/rootfs/usr/local/bin/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# If command starts with an option, prepend with turnserver binary. +if [ "${1:0:1}" == '-' ]; then + echo "$@" + set -- turnserver "$@" +fi + +exec $(eval "echo $@") diff --git a/docker/coturn/rootfs/usr/local/bin/launch-coturn.sh b/docker/coturn/rootfs/usr/local/bin/launch-coturn.sh new file mode 100644 index 0000000..1f1eb96 --- /dev/null +++ b/docker/coturn/rootfs/usr/local/bin/launch-coturn.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +trap -- '' SIGINT SIGTERM + +PUBLIC_IP=`curl --silent checkip.amazonaws.com` + +turnserver --prometheus --log-file=stdout --min-port 49160 --max-port 49200 --external-ip=$PUBLIC_IP & +child=$! +wait "$child" diff --git a/k8s/Dockerfile-autoscaler b/k8s/Dockerfile-autoscaler deleted file mode 100644 index 301208c..0000000 --- a/k8s/Dockerfile-autoscaler +++ /dev/null @@ -1,3 +0,0 @@ -FROM meezaan/linode-k8s-autoscaler - -COPY k8s/prd-video-cluster-kubeconfig.yaml /root/.kube/config diff --git a/k8s/Dockerfile-coturn-dns b/k8s/Dockerfile-coturn-dns deleted file mode 100644 index a79cd56..0000000 --- a/k8s/Dockerfile-coturn-dns +++ /dev/null @@ -1,10 +0,0 @@ -FROM python:3 - -WORKDIR /app - -COPY k8s/coturn-dns/requirements.txt requirements.txt -RUN pip3 install -r requirements.txt - -COPY k8s/coturn-dns/ . - -CMD [ "python3", "register-nodes.py"] \ No newline at end of file diff --git a/k8s/applications/Chart.yml b/k8s/applications/Chart.yml new file mode 100644 index 0000000..e69de29 diff --git a/k8s/applications/kustomization.yaml b/k8s/applications/kustomization.yaml deleted file mode 100644 index 2bd70a4..0000000 --- a/k8s/applications/kustomization.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: argocd - -resources: - - apps.yaml - #- haproxy-ingress.yaml - - argocd.yaml - - cert-manager.yaml - - metrics-server.yaml - - external-dns.yaml - - ingress-nginx.yaml - - monitoring.yaml - - alertmanager-slack.yaml - - coturn.yaml - - webrtc-be.yaml \ No newline at end of file diff --git a/k8s/applications/alertmanager-slack.yaml b/k8s/applications/templates/alertmanager-slack.yaml similarity index 100% rename from k8s/applications/alertmanager-slack.yaml rename to k8s/applications/templates/alertmanager-slack.yaml diff --git a/k8s/applications/apps.yaml b/k8s/applications/templates/apps.yaml similarity index 82% rename from k8s/applications/apps.yaml rename to k8s/applications/templates/apps.yaml index da94f2d..77a03ea 100644 --- a/k8s/applications/apps.yaml +++ b/k8s/applications/templates/apps.yaml @@ -8,6 +8,9 @@ spec: namespace: argocd server: 'https://kubernetes.default.svc' source: + helm: + valueFiles: + - values-{{ .Values.environment }}.yaml path: k8s/applications repoURL: 'git@bitbucket.org:jamkazam/video-iac.git' targetRevision: HEAD diff --git a/k8s/applications/argocd.yaml b/k8s/applications/templates/argocd.yaml similarity index 84% rename from k8s/applications/argocd.yaml rename to k8s/applications/templates/argocd.yaml index 1d1313b..d760fd7 100644 --- a/k8s/applications/argocd.yaml +++ b/k8s/applications/templates/argocd.yaml @@ -8,7 +8,7 @@ spec: namespace: argocd server: 'https://kubernetes.default.svc' source: - path: k8s/argocd/overlays/staging + path: k8s/argocd/overlays/{{ .Values.environment }} repoURL: 'git@bitbucket.org:jamkazam/video-iac.git' targetRevision: HEAD project: default diff --git a/k8s/applications/cert-manager.yaml b/k8s/applications/templates/cert-manager.yaml similarity index 100% rename from k8s/applications/cert-manager.yaml rename to k8s/applications/templates/cert-manager.yaml diff --git a/k8s/applications/templates/coturn-dns.yaml b/k8s/applications/templates/coturn-dns.yaml new file mode 100644 index 0000000..debac7c --- /dev/null +++ b/k8s/applications/templates/coturn-dns.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: coturn-dns +spec: + destination: + name: '' + namespace: coturn-dns + server: 'https://kubernetes.default.svc' + source: + helm: + valueFiles: + - values-{{ .Values.environment }}.yaml + path: k8s/coturn-dns + repoURL: 'git@bitbucket.org:jamkazam/video-iac.git' + targetRevision: HEAD + project: default + syncPolicy: + syncOptions: + - CreateNamespace=true + # automated: + # prune: true + # allowEmpty: false + # retry: + # limit: 5 + # backoff: + # duration: 5s + # factor: 2 + # maxDuration: 3m \ No newline at end of file diff --git a/k8s/applications/coturn.yaml b/k8s/applications/templates/coturn.yaml similarity index 100% rename from k8s/applications/coturn.yaml rename to k8s/applications/templates/coturn.yaml diff --git a/k8s/applications/external-dns.yaml b/k8s/applications/templates/external-dns.yaml similarity index 100% rename from k8s/applications/external-dns.yaml rename to k8s/applications/templates/external-dns.yaml diff --git a/k8s/applications/haproxy-ingress.yaml b/k8s/applications/templates/haproxy-ingress.yaml similarity index 100% rename from k8s/applications/haproxy-ingress.yaml rename to k8s/applications/templates/haproxy-ingress.yaml diff --git a/k8s/applications/ingress-nginx.yaml b/k8s/applications/templates/ingress-nginx.yaml similarity index 100% rename from k8s/applications/ingress-nginx.yaml rename to k8s/applications/templates/ingress-nginx.yaml diff --git a/k8s/applications/kube-prometheus-stack.yaml b/k8s/applications/templates/kube-prometheus-stack.yaml similarity index 100% rename from k8s/applications/kube-prometheus-stack.yaml rename to k8s/applications/templates/kube-prometheus-stack.yaml diff --git a/k8s/applications/metrics-server.yaml b/k8s/applications/templates/metrics-server.yaml similarity index 100% rename from k8s/applications/metrics-server.yaml rename to k8s/applications/templates/metrics-server.yaml diff --git a/k8s/applications/monitoring.yaml b/k8s/applications/templates/monitoring.yaml similarity index 100% rename from k8s/applications/monitoring.yaml rename to k8s/applications/templates/monitoring.yaml diff --git a/k8s/applications/webrtc-be.yaml b/k8s/applications/templates/webrtc-be.yaml similarity index 100% rename from k8s/applications/webrtc-be.yaml rename to k8s/applications/templates/webrtc-be.yaml diff --git a/k8s/applications/values-staging.yml b/k8s/applications/values-staging.yml new file mode 100644 index 0000000..1ae2531 --- /dev/null +++ b/k8s/applications/values-staging.yml @@ -0,0 +1 @@ +environment: staging \ No newline at end of file diff --git a/k8s/coturn-dns/Chart.yaml b/k8s/coturn-dns/Chart.yaml new file mode 100644 index 0000000..e69de29 diff --git a/k8s/coturn-dns/namespace.yaml b/k8s/coturn-dns/namespace.yaml deleted file mode 100644 index 503fa1d..0000000 --- a/k8s/coturn-dns/namespace.yaml +++ /dev/null @@ -1 +0,0 @@ -#TODO \ No newline at end of file diff --git a/k8s/coturn-dns/requirements.txt b/k8s/coturn-dns/requirements.txt deleted file mode 100644 index 5ece686..0000000 --- a/k8s/coturn-dns/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -boto3 -requests \ No newline at end of file diff --git a/k8s/coturn-dns/staging-coturn-dns.yaml b/k8s/coturn-dns/staging-coturn-dns.yaml deleted file mode 100644 index 9bb64bf..0000000 --- a/k8s/coturn-dns/staging-coturn-dns.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: coturn-dns -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 0 - maxUnavailable: 1 - selector: - matchLabels: - app: coturn-dns - template: - metadata: - labels: - app: coturn-dns - spec: - containers: - - name: coturn-dns - image: {{coturn_dns_image}} - env: - - name: AWS_ACCESS_KEY_ID - value: "AKIA2SXEHOQFBQRGCSST" - - name: AWS_SECRET_ACCESS_KEY - value: "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" - - name: PYTHONUNBUFFERED - value: "1" - - name: HOSTED_ZONE - value: "Z00156242SK162FEXDPVF" - - name: CLUSTER_ID - value: "29062" - - name: POOL_ID - value: "49934" - - name: LINODE_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - resources: - requests: - memory: 32Mi - limits: - memory: 32Mi diff --git a/k8s/coturn-dns/production-coturn-dns.yaml b/k8s/coturn-dns/templates/coturn-dns.yaml similarity index 63% rename from k8s/coturn-dns/production-coturn-dns.yaml rename to k8s/coturn-dns/templates/coturn-dns.yaml index 0a781a3..a4a2640 100644 --- a/k8s/coturn-dns/production-coturn-dns.yaml +++ b/k8s/coturn-dns/templates/coturn-dns.yaml @@ -20,24 +20,24 @@ spec: spec: containers: - name: coturn-dns - image: {{coturn_dns_image}} + image: gcr.io/tough-craft-276813/coturn:latest env: - name: AWS_ACCESS_KEY_ID - value: "AKIA2SXEHOQFBQRGCSST" + valueFrom: + secretKeyRef: + name: aws-user-external-dns + key: username - name: AWS_SECRET_ACCESS_KEY - value: "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" + valueFrom: + secretKeyRef: + name: aws-user-external-dns + key: password - name: PYTHONUNBUFFERED value: "1" - name: HOSTED_ZONE value: "Z00156242SK162FEXDPVF" - - name: CLUSTER_ID - value: "35025" - - name: POOL_ID - value: "53760" - - name: LINODE_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - name: COTURN_DOMAIN_NAME - value: "coturn.video.jamkazam.com" + value: {{ .Values.coturn-domain-name }} resources: requests: memory: 32Mi diff --git a/k8s/coturn-dns/values-staging.yml b/k8s/coturn-dns/values-staging.yml new file mode 100644 index 0000000..1687086 --- /dev/null +++ b/k8s/coturn-dns/values-staging.yml @@ -0,0 +1 @@ +coturn-domain-name: "coturn.staging.video.jamkazam.com" \ No newline at end of file diff --git a/k8s/coturn/Chart.yaml b/k8s/coturn/Chart.yaml new file mode 100644 index 0000000..f817d02 --- /dev/null +++ b/k8s/coturn/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +name: coturn +version: '1.0' diff --git a/k8s/coturn/deployment.yml b/k8s/coturn/templates/deployment.yml similarity index 64% rename from k8s/coturn/deployment.yml rename to k8s/coturn/templates/deployment.yml index c39e176..1c0937d 100644 --- a/k8s/coturn/deployment.yml +++ b/k8s/coturn/templates/deployment.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: coturn-deployment + name: coturn labels: app: coturn spec: @@ -14,17 +14,12 @@ spec: labels: app: coturn spec: - nodeSelector: - lke.linode.com/pool-id: - configMapKeyRef: - name: linode-pool - key: pool hostNetwork: true imagePullSecrets: - name: gcr-json-key containers: - name: coturn - image: gcr.io/tough-craft-276813/coturn:prod-0.1.83 + image: gcr.io/tough-craft-276813/coturn:latest ports: - containerPort: 3478 name: coturn diff --git a/k8s/coturn/gcr-secret.yml b/k8s/coturn/templates/gcr-secret.yml similarity index 100% rename from k8s/coturn/gcr-secret.yml rename to k8s/coturn/templates/gcr-secret.yml diff --git a/k8s/external-dns/overlays/configuration.yaml b/k8s/external-dns/overlays/configuration.yaml index 57b6392..51936cd 100644 --- a/k8s/external-dns/overlays/configuration.yaml +++ b/k8s/external-dns/overlays/configuration.yaml @@ -12,7 +12,6 @@ - --provider=aws - --registry=txt - --source=ingress - - --source=service - --txt-prefix=fmifrruf_ # Random string for hardener TXT entries - op: replace path: /spec/template/spec/containers/0/env diff --git a/k8s/linode-autoscaler/linode-autoscaler-namespace-secrets.yaml b/k8s/linode-autoscaler/linode-autoscaler-namespace-secrets.yaml deleted file mode 100644 index aba9692..0000000 --- a/k8s/linode-autoscaler/linode-autoscaler-namespace-secrets.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: linode-autoscaler ---- -apiVersion: v1 -kind: Secret -metadata: - name: gcr-json-key - namespace: linode-autoscaler -data: - .dockerconfigjson: eyJhdXRocyI6eyJnY3IuaW8iOnsidXNlcm5hbWUiOiJfanNvbl9rZXkiLCJwYXNzd29yZCI6IntcbiAgXCJ0eXBlXCI6IFwic2VydmljZV9hY2NvdW50XCIsXG4gIFwicHJvamVjdF9pZFwiOiBcInRvdWdoLWNyYWZ0LTI3NjgxM1wiLFxuICBcInByaXZhdGVfa2V5X2lkXCI6IFwiYTgwOTJiMzliNGViMzkxZThiMWU4YWNlODZkNWM0NjNlMDQ5ZTcxMVwiLFxuICBcInByaXZhdGVfa2V5XCI6IFwiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXFxuTUlJRXZnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2d3Z2dTa0FnRUFBb0lCQVFDeTE4eGgrSDZ2SDRxSlxcbnMweDdzeW84cksrZEVneS8yNGRVVHFQYjU0S2ZCbXRYUGRLdUdDVC9ac29XQVBxUmhwbWJZWWUxUG85d05lNkVcXG5Yc3RWQ3ZGcTVldjJvbEpGemF1eTI0VUk2YldhWGtRWC9PSFhMaG8vcm4vRUpQZGN3QkJRWjZtdHJ2K3JnTFdRXFxuaGlBSEZNZWFRU2Z3R3JYZU5uS1d1VC9QbEptRHZsaU9SanptOTRyOWZ5d3poQXJKcS9sRk5oMEpXTFRIZnpWVFxcbjZuaEhJck9DUSs2SUFzelZlclU2RzdWZlRBS29FYUZTMU9lTEZ3bFV5aHdjM1NQbTdjZUx4QnF6MjVBUG8zcUFcXG5aRll5ZkxlNDNYYm1LdzFndGEvUW5wblBVdHAzV3JtN3NrOXh5L21hTHg2eGFnVmFVc0dMTmpXblpDamFQVGt3XFxucGU3RkhVNVhBZ01CQUFFQ2dnRUFEQlA2MzVyeW8wMFVCQnl4eTZEYjkyRUtNeWRtNlFZZ2E1Y3NCY3ZxekdhWVxcbmxUbTlvcmhLdDF6dnhQQ24rM0FGcTdLNGdZc0tFTi96amNrQkhtc3d4ckZrY0RHaU1NaWxFZDAxYk5hcnh4TWFcXG5zaXdIN0lwV2gzcDNjbjIwbnZUeHBSeDdIeG0wZHBhb3JHd0NlYmZ6aXYxZmZ4MnVycVVxcy9jcTBoQU5GaEtGXFxuN2JOWWlUWTYvOVp3V3Zjb3JwZXU1OVVnSmF0MmYxMithUlVqajNJdTQ1OVVsUnM2SWhmWFcyY1doTVZIVnlsRlxcbmc1MDBpN3NMckJMQWxxR3E4SG5Ia0hVY0I2c1ducldNQlEzd3lxY0VuT1JqVkkwT3VtYXoxdHBoUEVteEJ5MW5cXG4xMmFyS3JRM043SWlqNm1HL0VYOUhhN0ozdGJGZ2I1WjlYbjNFT2JFQVFLQmdRRFhCcW0rSE1FaDM1QzdKeDdsXFxuaEtkd1J4ODdMaG1CZ0RmR1N4ck5WMEQvTzhBRlRQSXVTRE5lWWk0NzNBdlVqc21uZDZ0UXZ0TkZENnY4VTE2a1xcblJTd3J3QXIxZU00YjhDSVorbm5NS3QwYWg5NkU4VHlPQmRwNVhmczE4TTRaTDl5ZGRPcFZySVZsRGlRQkl1SFJcXG5aS3ZZdmtseHl4aTVVdDZVdGNOa0tTbDlWd0tCZ1FEVTdCQkcvL1dlR0M0TjhlNjFweGZoK29CaU54NlJvQnQ4XFxuKytHUG1rc1J3WllQbkhxQ3RsaTVHWDRVVFFJclRBZUF6Yk96cWU1dDZHN3lQcW5KcUtmUFFuelpFWFZ1N2Q1MVxcbkZGSVU3V0FJVVBzN0F5TktEc1dSRFE3M3EzTTJFTjNWcWp5TVg2RHVVZVRQZkFTakk4Q0NqdTBGdER0enFkbStcXG5TV0RWTERjWEFRS0JnRlJFMURraFk3ODJzcTNtQXdISUh5YXRlTnZra1RKallYaGc3cndTdWZKTkpFL3ZlK29QXFxuZWJJL29BYnRrZVZYb0VmMWFqcFd6czE5K3RVRWgwNnhuVUg0SFZOZWFNZ2lML3NtWXAxVkh4bktyYlpFSklzMFxcbldBN0FlamNGakgvcWRmZHZYbmI5Q2JvMDlIOU5nRnBqcmNWZnJjRGU2MjJWd0kxZlBwZitXYmc1QW9HQkFJcW9cXG52S1R3RlUwQ1pDT1N0U2k1Q3pXUHc4R3lNWWNXWkRCTmZBUGZzQmw5SHpORmJRYm9wdmpMNEM1cVJBcGNOZHFzXFxubXVWYXVibjdqeHpVc0E5eWRPM2xWNWFvNXZmNWtsQmVqbUd3Z0VTS01FR3E5blZKRDJJNXhkQ0daNzRDMStSSVxcbk82d1NycVBrMHdSSHVHRmhiQUhhQUFNaDcwR1FrQXQ2ajhQalNuRUJBb0dCQUswNFY4ZlhQYkNCeExvUmZNYlRcXG5CamV1dFdhZDM2b1REdXZMb0lzTVJNMXZDRjFveHBMK2o0KzcraGJ1cFEvVU1jTHZQTjlSbXdnSlRqeE9QTjViXFxuVGh3VW42VUhmTldsYjBwUXJ3NzY0Z01WKzNFWmdiRXp4N3BBaThRTkVZNWdMTDBRZC8zNGVJbTFleEh1UEp0TVxcbitNTGJKRGR5SjNQRVpMOVlPQjF1S3lDNlxcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cXG5cIixcbiAgXCJjbGllbnRfZW1haWxcIjogXCJhbnNpYmxlLXNhQHRvdWdoLWNyYWZ0LTI3NjgxMy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbVwiLFxuICBcImNsaWVudF9pZFwiOiBcIjEwNDMzNDg3MjExNTQwNjgwNTcxOVwiLFxuICBcImF1dGhfdXJpXCI6IFwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGhcIixcbiAgXCJ0b2tlbl91cmlcIjogXCJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlblwiLFxuICBcImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybFwiOiBcImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0c1wiLFxuICBcImNsaWVudF94NTA5X2NlcnRfdXJsXCI6IFwiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9hbnNpYmxlLXNhJTQwdG91Z2gtY3JhZnQtMjc2ODEzLmlhbS5nc2VydmljZWFjY291bnQuY29tXCJcbn0iLCJlbWFpbCI6ImFueUB2YWxpZC5lbWFpbCIsImF1dGgiOiJYMnB6YjI1ZmEyVjVPbnNLSUNBaWRIbHdaU0k2SUNKelpYSjJhV05sWDJGalkyOTFiblFpTEFvZ0lDSndjbTlxWldOMFgybGtJam9nSW5SdmRXZG9MV055WVdaMExUSTNOamd4TXlJc0NpQWdJbkJ5YVhaaGRHVmZhMlY1WDJsa0lqb2dJbUU0TURreVlqTTVZalJsWWpNNU1XVTRZakZsT0dGalpUZzJaRFZqTkRZelpUQTBPV1UzTVRFaUxBb2dJQ0p3Y21sMllYUmxYMnRsZVNJNklDSXRMUzB0TFVKRlIwbE9JRkJTU1ZaQlZFVWdTMFZaTFMwdExTMWNiazFKU1VWMlowbENRVVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJSVVpCUVZORFFrdG5kMmRuVTJ0QlowVkJRVzlKUWtGUlEza3hPSGhvSzBnMmRrZzBjVXBjYm5Nd2VEZHplVzg0Y2tzclpFVm5lUzh5TkdSVlZIRlFZalUwUzJaQ2JYUllVR1JMZFVkRFZDOWFjMjlYUVZCeFVtaHdiV0paV1dVeFVHODVkMDVsTmtWY2JsaHpkRlpEZGtaeE5XVjJNbTlzU2taNllYVjVNalJWU1RaaVYyRllhMUZZTDA5SVdFeG9ieTl5Ymk5RlNsQmtZM2RDUWxGYU5tMTBjbllyY21kTVYxRmNibWhwUVVoR1RXVmhVVk5tZDBkeVdHVk9ia3RYZFZRdlVHeEtiVVIyYkdsUFVtcDZiVGswY2psbWVYZDZhRUZ5U25FdmJFWk9hREJLVjB4VVNHWjZWbFJjYmpadWFFaEpjazlEVVNzMlNVRnplbFpsY2xVMlJ6ZFdabFJCUzI5RllVWlRNVTlsVEVaM2JGVjVhSGRqTTFOUWJUZGpaVXg0UW5GNk1qVkJVRzh6Y1VGY2JscEdXWGxtVEdVME0xaGliVXQzTVdkMFlTOVJibkJ1VUZWMGNETlhjbTAzYzJzNWVIa3ZiV0ZNZURaNFlXZFdZVlZ6UjB4T2FsZHVXa05xWVZCVWEzZGNibkJsTjBaSVZUVllRV2ROUWtGQlJVTm5aMFZCUkVKUU5qTTFjbmx2TURCVlFrSjVlSGsyUkdJNU1rVkxUWGxrYlRaUldXZGhOV056UW1OMmNYcEhZVmxjYm14VWJUbHZjbWhMZERGNmRuaFFRMjRyTTBGR2NUZExOR2RaYzB0RlRpOTZhbU5yUWtodGMzZDRja1pyWTBSSGFVMU5hV3hGWkRBeFlrNWhjbmg0VFdGY2JuTnBkMGczU1hCWGFETndNMk51TWpCdWRsUjRjRko0TjBoNGJUQmtjR0Z2Y2tkM1EyVmlabnBwZGpGbVpuZ3lkWEp4VlhGekwyTnhNR2hCVGtab1MwWmNiamRpVGxscFZGazJMemxhZDFkMlkyOXljR1YxTlRsVlowcGhkREptTVRJcllWSlZhbW96U1hVME5UbFZiRkp6Tmtsb1psaFhNbU5YYUUxV1NGWjViRVpjYm1jMU1EQnBOM05NY2tKTVFXeHhSM0U0U0c1SWEwaFZZMEkyYzFkdWNsZE5RbEV6ZDNseFkwVnVUMUpxVmtrd1QzVnRZWG94ZEhCb1VFVnRlRUo1TVc1Y2JqRXlZWEpMY2xFelRqZEphV28yYlVjdlJWZzVTR0UzU2pOMFlrWm5ZalZhT1ZodU0wVlBZa1ZCVVV0Q1oxRkVXRUp4YlN0SVRVVm9NelZETjBwNE4yeGNibWhMWkhkU2VEZzNUR2h0UW1kRVprZFRlSEpPVmpCRUwwODRRVVpVVUVsMVUwUk9aVmxwTkRjelFYWlZhbk50Ym1RMmRGRjJkRTVHUkRaMk9GVXhObXRjYmxKVGQzSjNRWEl4WlUwMFlqaERTVm9yYm01TlMzUXdZV2c1TmtVNFZIbFBRbVJ3TlZobWN6RTRUVFJhVERsNVpHUlBjRlp5U1Zac1JHbFJRa2wxU0ZKY2JscExkbGwyYTJ4NGVYaHBOVlYwTmxWMFkwNXJTMU5zT1ZaM1MwSm5VVVJWTjBKQ1J5OHZWMlZIUXpST09HVTJNWEI0Wm1ncmIwSnBUbmcyVW05Q2REaGNiaXNyUjFCdGEzTlNkMXBaVUc1SWNVTjBiR2sxUjFnMFZWUlJTWEpVUVdWQmVtSlBlbkZsTlhRMlJ6ZDVVSEZ1U25GTFpsQlJibnBhUlZoV2RUZGtOVEZjYmtaR1NWVTNWMEZKVlZCek4wRjVUa3RFYzFkU1JGRTNNM0V6VFRKRlRqTldjV3A1VFZnMlJIVlZaVlJRWmtGVGFrazRRME5xZFRCR2RFUjBlbkZrYlN0Y2JsTlhSRlpNUkdOWVFWRkxRbWRHVWtVeFJHdG9XVGM0TW5OeE0yMUJkMGhKU0hsaGRHVk9kbXRyVkVwcVdWaG9aemR5ZDFOMVprcE9Ta1V2ZG1VcmIxQmNibVZpU1M5dlFXSjBhMlZXV0c5RlpqRmhhbkJYZW5NeE9TdDBWVVZvTURaNGJsVklORWhXVG1WaFRXZHBUQzl6YlZsd01WWkllRzVMY21KYVJVcEpjekJjYmxkQk4wRmxhbU5HYWtndmNXUm1aSFpZYm1JNVEySnZNRGxJT1U1blJuQnFjbU5XWm5KalJHVTJNakpXZDBreFpsQndaaXRYWW1jMVFXOUhRa0ZKY1c5Y2JuWkxWSGRHVlRCRFdrTlBVM1JUYVRWRGVsZFFkemhIZVUxWlkxZGFSRUpPWmtGUVpuTkNiRGxJZWs1R1lsRmliM0IyYWt3MFF6VnhVa0Z3WTA1a2NYTmNibTExVm1GMVltNDNhbmg2VlhOQk9YbGtUek5zVmpWaGJ6VjJaalZyYkVKbGFtMUhkMmRGVTB0TlJVZHhPVzVXU2tReVNUVjRaRU5IV2pjMFF6RXJVa2xjYms4MmQxTnljVkJyTUhkU1NIVkhSbWhpUVVoaFFVRk5hRGN3UjFGclFYUTJhamhRYWxOdVJVSkJiMGRDUVVzd05GWTRabGhRWWtOQ2VFeHZVbVpOWWxSY2JrSnFaWFYwVjJGa016WnZWRVIxZGt4dlNYTk5VazB4ZGtOR01XOTRjRXdyYWpRck55dG9ZblZ3VVM5VlRXTk1kbEJPT1ZKdGQyZEtWR3A0VDFCT05XSmNibFJvZDFWdU5sVklaazVYYkdJd2NGRnlkemMyTkdkTlZpc3pSVnBuWWtWNmVEZHdRV2s0VVU1RldUVm5URXd3VVdRdk16UmxTVzB4WlhoSWRWQktkRTFjYml0TlRHSktSR1I1U2pOUVJWcE1PVmxQUWpGMVMzbERObHh1TFMwdExTMUZUa1FnVUZKSlZrRlVSU0JMUlZrdExTMHRMVnh1SWl3S0lDQWlZMnhwWlc1MFgyVnRZV2xzSWpvZ0ltRnVjMmxpYkdVdGMyRkFkRzkxWjJndFkzSmhablF0TWpjMk9ERXpMbWxoYlM1bmMyVnlkbWxqWldGalkyOTFiblF1WTI5dElpd0tJQ0FpWTJ4cFpXNTBYMmxrSWpvZ0lqRXdORE16TkRnM01qRXhOVFF3Tmpnd05UY3hPU0lzQ2lBZ0ltRjFkR2hmZFhKcElqb2dJbWgwZEhCek9pOHZZV05qYjNWdWRITXVaMjl2WjJ4bExtTnZiUzl2TDI5aGRYUm9NaTloZFhSb0lpd0tJQ0FpZEc5clpXNWZkWEpwSWpvZ0ltaDBkSEJ6T2k4dmIyRjFkR2d5TG1kdmIyZHNaV0Z3YVhNdVkyOXRMM1J2YTJWdUlpd0tJQ0FpWVhWMGFGOXdjbTkyYVdSbGNsOTROVEE1WDJObGNuUmZkWEpzSWpvZ0ltaDBkSEJ6T2k4dmQzZDNMbWR2YjJkc1pXRndhWE11WTI5dEwyOWhkWFJvTWk5Mk1TOWpaWEowY3lJc0NpQWdJbU5zYVdWdWRGOTROVEE1WDJObGNuUmZkWEpzSWpvZ0ltaDBkSEJ6T2k4dmQzZDNMbWR2YjJkc1pXRndhWE11WTI5dEwzSnZZbTkwTDNZeEwyMWxkR0ZrWVhSaEwzZzFNRGt2WVc1emFXSnNaUzF6WVNVME1IUnZkV2RvTFdOeVlXWjBMVEkzTmpneE15NXBZVzB1WjNObGNuWnBZMlZoWTJOdmRXNTBMbU52YlNJS2ZRPT0ifX19 -type: kubernetes.io/dockerconfigjson diff --git a/k8s/linode-autoscaler/production-coturn-autoscaler.yaml b/k8s/linode-autoscaler/production-coturn-autoscaler.yaml deleted file mode 100644 index 1d38456..0000000 --- a/k8s/linode-autoscaler/production-coturn-autoscaler.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: coturn-autoscale - namespace: linode-autoscaler -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - app: coturn-autoscale - template: - metadata: - labels: - app: coturn-autoscale - spec: - imagePullSecrets: - - name: gcr-json-key - containers: - - name: coturn-autoscale - image: {{linode_autoscaler_image}} ####### CHANGE THIS TO YOUR ACTUAL DOCKER IMAGE - - env: - - name: LINODE_PERSONAL_ACCCESS_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - # valueFrom: - # secretKeyRef: - # name: linode-personal-access-token-k8s-autoscaler ####### LINODE PERSONAL ACCESS TOKEN SECRET - # key: token - - name: LINODE_LKE_CLUSTER_ID - value: "35025" - - name: LINODE_LKE_CLUSTER_POOL_ID - value: "53760" - - name: AUTOSCALE_TRIGGER - value: "cpu" - - name: AUTOSCALE_TRIGGER_TYPE - value: "used" - - name: AUTOSCALE_UP_PERCENTAGE - value: "60" - - name: AUTOSCALE_DOWN_PERCENTAGE - value: "30" - - name: AUTOSCALE_QUERY_INTERVAL - value: "10" - - name: AUTOSCALE_THRESHOLD_COUNT - value: "3" - - name: AUTOSCALE_NUMBER_OF_NODES - value: "1" - - name: AUTOSCALE_WAIT_TIME_AFTER_SCALING - value: "180" - - name: LINODE_LKE_CLUSTER_POOL_MINIMUM_NODES - value: "3" - resources: - requests: - memory: 32Mi - limits: - memory: 32Mi diff --git a/k8s/linode-autoscaler/production-webrtc-be-autoscaler.yaml b/k8s/linode-autoscaler/production-webrtc-be-autoscaler.yaml deleted file mode 100644 index d7fba7f..0000000 --- a/k8s/linode-autoscaler/production-webrtc-be-autoscaler.yaml +++ /dev/null @@ -1,60 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: webrtc-be-autoscale - namespace: linode-autoscaler -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - app: webrtc-be-autoscale - template: - metadata: - labels: - app: webrtc-be-autoscale - spec: - imagePullSecrets: - - name: gcr-json-key - containers: - - name: webrtc-be-autoscale - image: {{linode_autoscaler_image}} ####### CHANGE THIS TO YOUR ACTUAL DOCKER IMAGE - env: - - name: LINODE_PERSONAL_ACCCESS_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - # valueFrom: - # secretKeyRef: - # name: linode-personal-access-token-k8s-autoscaler ####### LINODE PERSONAL ACCESS TOKEN SECRET - # key: token - - name: LINODE_LKE_CLUSTER_ID - value: "29062" - - name: LINODE_LKE_CLUSTER_POOL_ID - value: "53759" - - name: AUTOSCALE_TRIGGER - value: "cpu" - - name: AUTOSCALE_TRIGGER_TYPE - value: "used" - - name: AUTOSCALE_UP_PERCENTAGE - value: "60" - - name: AUTOSCALE_DOWN_PERCENTAGE - value: "30" - - name: AUTOSCALE_QUERY_INTERVAL - value: "10" - - name: AUTOSCALE_THRESHOLD_COUNT - value: "3" - - name: AUTOSCALE_NUMBER_OF_NODES - value: "1" - - name: AUTOSCALE_WAIT_TIME_AFTER_SCALING - value: "180" - - name: LINODE_LKE_CLUSTER_POOL_MINIMUM_NODES - value: "3" - resources: - requests: - memory: 32Mi - limits: - memory: 32Mi diff --git a/k8s/linode-autoscaler/staging-coturn-autoscaler.yaml b/k8s/linode-autoscaler/staging-coturn-autoscaler.yaml deleted file mode 100644 index ebdf7ff..0000000 --- a/k8s/linode-autoscaler/staging-coturn-autoscaler.yaml +++ /dev/null @@ -1,60 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: coturn-autoscale - namespace: linode-autoscaler -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - app: coturn-autoscale - template: - metadata: - labels: - app: coturn-autoscale - spec: - imagePullSecrets: - - name: gcr-json-key - containers: - - name: coturn-autoscale - image: {{linode_autoscaler_image}} ####### CHANGE THIS TO YOUR ACTUAL DOCKER IMAGE - env: - - name: LINODE_PERSONAL_ACCCESS_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - # valueFrom: - # secretKeyRef: - # name: linode-personal-access-token-k8s-autoscaler ####### LINODE PERSONAL ACCESS TOKEN SECRET - # key: token - - name: LINODE_LKE_CLUSTER_ID - value: "35025" - - name: LINODE_LKE_CLUSTER_POOL_ID - value: "47218" - - name: AUTOSCALE_TRIGGER - value: "cpu" - - name: AUTOSCALE_TRIGGER_TYPE - value: "used" - - name: AUTOSCALE_UP_PERCENTAGE - value: "60" - - name: AUTOSCALE_DOWN_PERCENTAGE - value: "30" - - name: AUTOSCALE_QUERY_INTERVAL - value: "10" - - name: AUTOSCALE_THRESHOLD_COUNT - value: "3" - - name: AUTOSCALE_NUMBER_OF_NODES - value: "1" - - name: AUTOSCALE_WAIT_TIME_AFTER_SCALING - value: "180" - - name: LINODE_LKE_CLUSTER_POOL_MINIMUM_NODES - value: "1" - resources: - requests: - memory: 32Mi - limits: - memory: 32Mi diff --git a/k8s/linode-autoscaler/staging-webrtc-be-autoscaler.yaml b/k8s/linode-autoscaler/staging-webrtc-be-autoscaler.yaml deleted file mode 100644 index 1815365..0000000 --- a/k8s/linode-autoscaler/staging-webrtc-be-autoscaler.yaml +++ /dev/null @@ -1,60 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: webrtc-be-autoscale - namespace: linode-autoscaler -spec: - replicas: 1 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - selector: - matchLabels: - app: webrtc-be-autoscale - template: - metadata: - labels: - app: webrtc-be-autoscale - spec: - imagePullSecrets: - - name: gcr-json-key - containers: - - name: webrtc-be-autoscale - image: {{linode_autoscaler_image}} ####### CHANGE THIS TO YOUR ACTUAL DOCKER IMAGE - env: - - name: LINODE_PERSONAL_ACCCESS_TOKEN - value: "a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4" - # valueFrom: - # secretKeyRef: - # name: linode-personal-access-token-k8s-autoscaler ####### LINODE PERSONAL ACCESS TOKEN SECRET - # key: token - - name: LINODE_LKE_CLUSTER_ID - value: "29062" - - name: LINODE_LKE_CLUSTER_POOL_ID - value: "49934" - - name: AUTOSCALE_TRIGGER - value: "cpu" - - name: AUTOSCALE_TRIGGER_TYPE - value: "used" - - name: AUTOSCALE_UP_PERCENTAGE - value: "60" - - name: AUTOSCALE_DOWN_PERCENTAGE - value: "30" - - name: AUTOSCALE_QUERY_INTERVAL - value: "10" - - name: AUTOSCALE_THRESHOLD_COUNT - value: "3" - - name: AUTOSCALE_NUMBER_OF_NODES - value: "1" - - name: AUTOSCALE_WAIT_TIME_AFTER_SCALING - value: "180" - - name: LINODE_LKE_CLUSTER_POOL_MINIMUM_NODES - value: "1" - resources: - requests: - memory: 32Mi - limits: - memory: 32Mi