diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index 1a979a8..24b96c2 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -45,7 +45,7 @@ pipelines: artifacts: - "*.tar" - step: - name: Push COTURN docker image to GCR + name: Push docker images to GCR image: google/cloud-sdk:alpine script: # Authenticating with the service account key file diff --git a/k8s/linode-autoscaler/config/video-cluster-kubeconfig.yaml b/k8s/linode-autoscaler/config/video-cluster-kubeconfig.yaml new file mode 100644 index 0000000..d51a180 --- /dev/null +++ b/k8s/linode-autoscaler/config/video-cluster-kubeconfig.yaml @@ -0,0 +1,25 @@ + +apiVersion: v1 +kind: Config +preferences: {} + +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1EWXhOakUyTXpreU1sb1hEVE14TURZeE5ERTJNemt5TWxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2ZBClJFVzlLNUhUMlRSbWxkTE45OUxzLzhiN2ZPVDZJckhqL3F1ZERZWVhBbFN4dG41aVMvYTdVM3BxckZ2VXhIZ0UKL1ZZM2xyWVFYM1VTYkswTjdVZU04OVV3QWs1Y2p0N3pXbTBhOVJrZThJeXFKZGt1QUtSdGlQYUNDc2pDdHovLwozVGRuei9NRStCSSsvOEc2MmRjVVBoL0Z3U3ZHeVV3M1ZrWG9qK0RMV1VwOUhid1kxRkxlYXlwMC9mWUtZdzdQCnh6UUhPZ3dFS1VyaENlWE83Yzg4Tm4wdlVVOHFLbmZpbmNINjFXVGhxQU5zVkMySTRxWUVjOExWSy9TYmtqdkYKL0ZhWDRKVXBxY0w2THgyd1A2L3U0ejQxYmVsUWJtUW5XZ3d1RHc4dDU4eXB6OGZzZWxCRS92di9sVEZOeVVzWApvSVdicEY2K2hlWHJudE1GWWlVQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZDSXpORCtMbUxQT1k5U0Jxc0kvTVgxajkxYVFNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFBWW5jeFk4YTNiak8wZWp2Qy9BQVhvS09va1B4dnZKcEpiZTdnT1NmM2EwcDR0bmcxdgpQV1lOZmlKalZhL20ySHJPWlF6cW9qVTJKZmtqT09vcmlIYnFCM2Z2M2h6MFNidW1pR1Y5bHpwUXhwSFFrUUFJCldJYjJ3ek5EQmQ0YTVITmRmR1VCaWxaZC9zR3k2Q21qNTRxZHpHSm5xWThJUDkrUXhESUl0UStqSGQ1ZitYdGMKYXh0eEpvVjB3cjIzVkp0MjZJQjExMUJPZW02UmZOeHVDNkdtdUVSYWRBLzA1M0lQSEhyMVZ4UXFFVTNXWjJNMwpJZEEzSmt3RWU1dTdUbFhCT0RRdVJuWGdwUHZGMk9mY2dDajZETUVrdXNnT2tVUWxPdG4ycUt5VVNLdUlZRko1CjQrVFNma2FmSGw2aU5lSTFGcGpWbkdoSDZNZ0RaWXd2ZC9QTwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + server: https://9a870b0b-5da8-4282-9100-06d7be6a8920.cpc1-us-central.linodelke.net:443 + name: lke29062 + +users: +- name: lke29062-admin + user: + as-user-extra: {} + token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImNjbnpYTTk1VWdmZ0YzV3B2RzR1eUYtdmtRWEF4Z2xFZTFPMlJGSThMak0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsa2UtYWRtaW4tdG9rZW4tbmQ4Y3QiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGtlLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNTE5ODFmNDEtZjMyYi00M2JjLWJhNDctOTRmOGE4ZDQxMjllIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmxrZS1hZG1pbiJ9.Ma62VuZAFxaMW-rpgnNlg6-ur3y7yCue841m3sNgO_kn6ISr2VUDqDAgXIqyc6LP3qhuIf_h6dVAqAPVHhQGnSRtK_q5b_n96A90VBwY5iYkhx4RF_uqxXmkYwG1-01YMctsTN2mPvnllruNF9z0ZxMiGaF4lbSZczM-L4Rwwt-5SlzBelPvPosUqQWfzrNVMO83YBK5Wk6pO_GXpFC1TAkBDe7oridIA9H8MD_qpqoNo76ZmVXxp9XGc0w0BM9ZRYsnSUNxl_Yha_D7V4pTU5GSFrn0MaNNHZGd2UFPU0fkHcLudE7cqGqlvawXA3AWKBC3La9Dl9rGNBPlAHtf7A + +contexts: +- context: + cluster: lke29062 + namespace: default + user: lke29062-admin + name: lke29062-ctx + +current-context: lke29062-ctx diff --git a/k8s/linode-autoscaler/local.sh b/k8s/linode-autoscaler/local.sh new file mode 100755 index 0000000..2b66bf1 --- /dev/null +++ b/k8s/linode-autoscaler/local.sh @@ -0,0 +1,15 @@ +docker run -v ${PWD}/k8s/video-cluster-kubeconfig.yaml:/root/.kube/config \ +-e LINODE_PERSONAL_ACCCESS_TOKEN='a821bb97039cbd8b259e19ef9f7ea7a4e295a7399e00709fc27cad2b1f3742f4' \ +-e LINODE_LKE_CLUSTER_ID='29062' \ +-e LINODE_LKE_CLUSTER_POOL_ID='47218' \ +-e LINODE_LKE_CLUSTER_POOL_MINIMUM_NODES='1' \ +-e AUTOSCALE_TRIGGER='cpu' \ +-e AUTOSCALE_TRIGGER_TYPE='used' \ +-e AUTOSCALE_UP_PERCENTAGE='60' \ +-e AUTOSCALE_DOWN_PERCENTAGE='30' \ +-e AUTOSCALE_RESOURCE_REQUEST_UP_PERCENTAGE='70' \ +-e AUTOSCALE_RESOURCE_REQUEST_DOWN_PERCENTAGE='70' \ +-e AUTOSCALE_QUERY_INTERVAL='10' \ +-e AUTOSCALE_THRESHOLD_COUNT='3' \ +-e AUTOSCALE_NUMBER_OF_NODES='1' \ +-e AUTOSCALE_WAIT_TIME_AFTER_SCALING='180' meezaan/linode-k8s-autoscaler \ No newline at end of file diff --git a/k8s/linode-autoscaler/webrtc-be-autoscaler.yaml b/k8s/linode-autoscaler/webrtc-be-autoscaler.yaml index e69de29..b6c5afd 100644 --- a/k8s/linode-autoscaler/webrtc-be-autoscaler.yaml +++ b/k8s/linode-autoscaler/webrtc-be-autoscaler.yaml @@ -0,0 +1,57 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8s-autoscaler + namespace: default ####### Change this to the actual namespace +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app: k8s-autoscale + template: + metadata: + labels: + app: k8s-autoscale + spec: + containers: + - name: k8s-autoscale + command: ["/bin/sleep"] + args: ["300"] + image: gcr.io/tough-craft-276813/linode-autoscaler:prod-0.1.5 ###{{linode_autoscaler_image}} ####### CHANGE THIS TO YOUR ACTUAL DOCKER IMAGE + env: + - name: LINODE_PERSONAL_ACCCESS_TOKEN + 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: "46308" + - name: AUTOSCALE_TRIGGER + value: "cpu" + - name: AUTOSCALE_TRIGGER_TYPE + value: "used" + - name: AUTOSCALE_UP_PERCENTAGE + value: "10" + - name: AUTOSCALE_DOWN_PERCENTAGE + value: "30" + - name: AUTOSCALE_QUERY_INTERVAL + value: "30" + - name: AUTOSCALE_THRESHOLD_COUNT + value: "3" + - name: AUTOSCALE_NUMBER_OF_NODES + value: "1" + - name: AUTOSCALE_WAIT_TIME_AFTER_SCALING + value: "150" + resources: + requests: + memory: 32Mi + limits: + memory: 32Mi \ No newline at end of file diff --git a/k8s/metrics/metrics.yaml b/k8s/metrics/metrics.yaml new file mode 100644 index 0000000..312ccde --- /dev/null +++ b/k8s/metrics/metrics.yaml @@ -0,0 +1,5 @@ +apiService: + create: true +extraArgs: + kubelet-preferred-address-types: InternalIP + kubelet-insecure-tls: \ No newline at end of file