apiVersion: apps/v1 kind: StatefulSet metadata: name: jupiter namespace: nearle labels: app: jupiter spec: serviceName: "jupiter" replicas: 3 selector: matchLabels: app: jupiter template: metadata: labels: app: jupiter 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: jupiter topologyKey: kubernetes.io/hostname topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: app: jupiter containers: - name: jupiter image: nearlecommerce/jupiter:v2.7.57 imagePullPolicy: Always securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL ports: - containerPort: 1009 env: - name: PORT value: "1009" - name: TZ value: "Asia/Kolkata" volumeMounts: - name: tz-config mountPath: /etc/localtime readOnly: true - name: tz-data mountPath: /usr/share/zoneinfo readOnly: true envFrom: - configMapRef: name: nearle-config - secretRef: name: app-secrets volumes: - name: tz-config hostPath: path: /usr/share/zoneinfo/Asia/Kolkata - name: tz-data hostPath: path: /usr/share/zoneinfo --- apiVersion: v1 kind: Service metadata: name: jupiter namespace: nearle labels: app: jupiter spec: type: NodePort ports: - port: 80 targetPort: 1009 nodePort: 30822 protocol: TCP selector: app: jupiter