| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | apiVersion: apps/v1kind: StatefulSetmetadata:  name: consul-server  labels:    name: consul-serverspec:  serviceName: consul-server  selector:    matchLabels:      name: consul-server  replicas: 3  template:    metadata:      labels:        name: consul-server    spec:      terminationGracePeriodSeconds: 10      containers:        - name: consul          image: consul:latest          imagePullPolicy: IfNotPresent          args:            - "agent"            - "-server"            - "-bootstrap-expect=3"            - "-ui"            - "-data-dir=/consul/data"            - "-bind=0.0.0.0"            - "-client=0.0.0.0"            - "-advertise=$(POD_IP)"            - "-retry-join=consul-server-0.consul-server.$(NAMESPACE).svc.cluster.local"            - "-retry-join=consul-server-1.consul-server.$(NAMESPACE).svc.cluster.local"            - "-retry-join=consul-server-2.consul-server.$(NAMESPACE).svc.cluster.local"            - "-domain=cluster.local"            - "-disable-host-node-id"          env:            - name: POD_IP              valueFrom:                fieldRef:                  fieldPath: status.podIP            - name: NAMESPACE              valueFrom:                fieldRef:                  fieldPath: metadata.namespace          ports:            - containerPort: 8500              name: http            - containerPort: 8400              name: rpc            - containerPort: 8443              name: https-port            - containerPort: 8301              name: serf-lan            - containerPort: 8302              name: serf-wan            - containerPort: 8600              name: consul-dns            - containerPort: 8300              name: server
 |