apiVersion: apps/v1 kind: StatefulSet metadata: name: atlantis namespace: nearle labels: app: atlantis spec: serviceName: "atlantis" replicas: 2 selector: matchLabels: app: atlantis template: metadata: labels: app: atlantis spec: tolerations: - key: dedicated operator: Equal value: apps effect: NoSchedule affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.workolik/app operator: In values: - "true" podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchLabels: app: atlantis topologyKey: kubernetes.io/hostname topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: app: atlantis containers: - name: backend image: nearlecommerce/atlantis:v0.0.41 imagePullPolicy: Always ports: - containerPort: 3000 env: - name: PORT value: "3000" envFrom: - configMapRef: name: nearle-config - secretRef: name: app-secrets --- apiVersion: v1 kind: Service metadata: name: atlantis namespace: nearle labels: app: atlantis spec: type: NodePort ports: - port: 80 targetPort: 3000 nodePort: 30825 protocol: TCP selector: app: atlantis --- apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: atlantis-route namespace: nearle labels: app: atlantis spec: parentRefs: - name: gateway namespace: alaska hostnames: - "atlantis.nearle.app" rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: atlantis port: 80