apiVersion: apps/v1 kind: StatefulSet metadata: name: titan namespace: nearle labels: app: titan spec: serviceName: "titan" replicas: 3 selector: matchLabels: app: titan template: metadata: labels: app: titan 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: titan topologyKey: kubernetes.io/hostname topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: app: titan containers: - name: backend image: groomgear/groomgear:v1.0.41 imagePullPolicy: Always ports: - containerPort: 1006 --- apiVersion: v1 kind: Service metadata: name: titan namespace: nearle labels: app: titan spec: type: ClusterIP ports: - port: 80 targetPort: 1006 protocol: TCP selector: app: titan --- apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: titan-route namespace: nearle labels: app: titan spec: parentRefs: - name: gateway namespace: alaska hostnames: - "titan.nearle.app" rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: titan port: 80