---
# Source: selenium-grid/templates/hub-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: browserstack-turboscale-grid
  namespace: <GridNamespace>
  labels:
    name: browserstack-turboscale-grid
spec:
  replicas: 1
  selector:
    matchLabels:
      name: browserstack-turboscale-grid
  template:
    metadata:
      labels:
        name: browserstack-turboscale-grid
      annotations:
         "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      containers:
        - name: browserstack-turboscale-grid
          image: public.ecr.aws/v4a1k5d3/browserstack/selenium-hub:<HubImageVersion>
          imagePullPolicy: Always
          env:
            - name: CLUSTER_NAME
              value: "<ClusterName>"
            - name: ENABLE_K8S
              value: "true"
            - name: BSTACK_URL
              value: "<BstackURL>"
            - name: K8S_NAMESPACE
              value: "<GridNamespace>"
            - name: BSTACK_USERNAME
              valueFrom:
                secretKeyRef:
                  name: browserstack-secret
                  key: bstack-username
            - name: BSTACK_ACCESSKEY
              valueFrom:
                secretKeyRef:
                  name: browserstack-secret
                  key: bstack-accesskey
            - name: GRID_NAME
              value: "<GridName>"
            - name: GRID_PROFILE
              value: "<GridProfileID>"
            - name: REGION
              value: "<Region>"
            - name: CLOUD_PROVIDER
              value: "<CloudProvider>"
            - name: IMAGE_VERSION
              value: "<BrowserImageVersion>"
            - name: PRIVATE_GRID
              value: "<PrivateGrid>"
            - name: LOADBALANCER_TYPE
              value: "NodePort"
            - name: PLAYWRIGHT_VERSION
              value: "1.37.1"
            - name: HA_ENABLED
              value: "<EnableHubHa>"
            - name: REDIS_NAMESPACE
              value: "<HubHaNameSpace>"
            - name: KAFKA_NAMESPACE
              value: "<HubHaNameSpace>"
            - name: REDIS_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: browserstack-secret
                  key: redis-password
            - name: KAFKA_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: browserstack-secret
                  key: kafka-password
          ports:
            - containerPort: 4444
              protocol: TCP
            - containerPort: 4442
              protocol: TCP
            - containerPort: 4443
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /readyz
              port: 4444
            initialDelaySeconds: 10
            periodSeconds: 10
            timeoutSeconds: 10
            successThreshold: 1
            failureThreshold: 10
          readinessProbe:
            httpGet:
              path: <ReadinessProbePath>
              port: 4444
            initialDelaySeconds: 12
            periodSeconds: 10
            timeoutSeconds: 10
            successThreshold: 1
            failureThreshold: 10
          resources:
            requests:
              cpu: "0.5"
              memory: 1Gi
