github.com/replicatedcom/ship@v0.50.0/integration/base/shipapp-helm-values/expected/installer/consul-rendered.yaml (about)

     1  apiVersion: v1
     2  data:
     3    run.sh: |-
     4      @test "Testing Consul cluster has quorum" {
     5        for i in {0..2}; do
     6          for n in {1..30}; do
     7            if [ `kubectl exec ship-consul-$i consul members --namespace=default | grep server | wc -l` -ge "3" ]; then
     8              echo "ship-consul-$i OK. consul members returning at least 3 records."
     9              break
    10            else
    11              echo "ship-consul-$i ERROR. consul members returning less than 3 records."
    12            fi
    13  
    14            if [ "$n" -ge "30" ]; then
    15              echo "Failed $n times to get members from ship-consul-$i"
    16              exit 1
    17            fi
    18            sleep 10
    19          done
    20        done
    21      }
    22  kind: ConfigMap
    23  metadata:
    24    name: ship-consul-tests
    25  ---
    26  apiVersion: v1
    27  kind: Service
    28  metadata:
    29    labels:
    30      component: ship-consul
    31      release: ship
    32    name: ship-consul-ui
    33  spec:
    34    ports:
    35    - name: http
    36      port: 8500
    37    selector:
    38      component: ship-consul
    39    type: NodePort
    40  ---
    41  apiVersion: v1
    42  kind: Service
    43  metadata:
    44    annotations:
    45      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
    46    labels:
    47      component: ship-consul
    48      release: ship
    49    name: ship-consul
    50  spec:
    51    clusterIP: None
    52    ports:
    53    - name: http
    54      port: 8500
    55    - name: rpc
    56      port: 8400
    57    - name: serflan-tcp
    58      port: 8301
    59      protocol: TCP
    60    - name: serflan-udp
    61      port: 8301
    62      protocol: UDP
    63    - name: serfwan-tcp
    64      port: 8302
    65      protocol: TCP
    66    - name: serfwan-udp
    67      port: 8302
    68      protocol: UDP
    69    - name: server
    70      port: 8300
    71    - name: consuldns-tcp
    72      port: 8600
    73    - name: consuldns-udp
    74      port: 8600
    75      protocol: UDP
    76    selector:
    77      component: ship-consul
    78  ---
    79  apiVersion: apps/v1beta1
    80  kind: StatefulSet
    81  metadata:
    82    labels:
    83      component: ship-consul
    84      release: ship
    85    name: ship-consul
    86  spec:
    87    replicas: 3
    88    selector:
    89      matchLabels:
    90        component: ship-consul
    91        release: ship
    92    serviceName: ship-consul
    93    template:
    94      metadata:
    95        labels:
    96          chart: consul-3.5.3
    97          component: ship-consul
    98          heritage: Tiller
    99          release: ship
   100        name: ship-consul
   101      spec:
   102        affinity:
   103          podAntiAffinity:
   104            preferredDuringSchedulingIgnoredDuringExecution:
   105            - podAffinityTerm:
   106                labelSelector:
   107                  matchExpressions:
   108                  - key: component
   109                    operator: In
   110                    values:
   111                    - ship-consul
   112                topologyKey: kubernetes.io/hostname
   113              weight: 1
   114        containers:
   115        - command:
   116          - /bin/sh
   117          - -ec
   118          - |
   119            IP=$(hostname -i)
   120            if [ -e /etc/consul/secrets/gossip-key ]; then
   121              echo "{\"encrypt\": \"$(base64 /etc/consul/secrets/gossip-key)\"}" > /etc/consul/encrypt.json
   122              GOSSIP_KEY="-config-file /etc/consul/encrypt.json"
   123            fi
   124  
   125            for i in $(seq 0 $((${INITIAL_CLUSTER_SIZE} - 1))); do
   126                while true; do
   127                    echo "Waiting for ${STATEFULSET_NAME}-${i}.${STATEFULSET_NAME} to come up"
   128                    ping -W 1 -c 1 ${STATEFULSET_NAME}-${i}.${STATEFULSET_NAME}.${STATEFULSET_NAMESPACE}.svc > /dev/null && break
   129                    sleep 1s
   130                done
   131            done
   132  
   133            PEERS=""
   134            for i in $(seq 0 $((${INITIAL_CLUSTER_SIZE} - 1))); do
   135              NEXT_PEER="$(ping -c 1 ${STATEFULSET_NAME}-${i}.${STATEFULSET_NAME}.${STATEFULSET_NAMESPACE}.svc | awk -F'[()]' '/PING/{print $2}')"
   136              if [ "${NEXT_PEER}" != "${POD_IP}" ]; then
   137                PEERS="${PEERS}${PEERS:+ } -retry-join ${STATEFULSET_NAME}-${i}.${STATEFULSET_NAME}.${STATEFULSET_NAMESPACE}.svc"
   138              fi
   139            done
   140  
   141            exec /bin/consul agent \
   142              -ui \
   143              -domain=consul \
   144              -data-dir=/var/lib/consul \
   145              -server \
   146              -bootstrap-expect=${INITIAL_CLUSTER_SIZE} \
   147              -disable-keyring-file \
   148              -bind=0.0.0.0 \
   149              -advertise=${IP} \
   150              ${PEERS} \
   151              ${GOSSIP_KEY} \
   152              -client=0.0.0.0 \
   153              -dns-port=${DNSPORT} \
   154              -http-port=8500
   155          env:
   156          - name: INITIAL_CLUSTER_SIZE
   157            value: "3"
   158          - name: STATEFULSET_NAME
   159            value: ship-consul
   160          - name: POD_IP
   161            valueFrom:
   162              fieldRef:
   163                fieldPath: status.podIP
   164          - name: STATEFULSET_NAMESPACE
   165            valueFrom:
   166              fieldRef:
   167                fieldPath: metadata.namespace
   168          - name: DNSPORT
   169            value: "8600"
   170          image: consul:1.0.0
   171          imagePullPolicy: Always
   172          livenessProbe:
   173            exec:
   174              command:
   175              - consul
   176              - members
   177              - -http-addr=http://127.0.0.1:8500
   178            initialDelaySeconds: 300
   179            timeoutSeconds: 5
   180          name: ship-consul
   181          ports:
   182          - containerPort: 8500
   183            name: http
   184          - containerPort: 8400
   185            name: rpc
   186          - containerPort: 8301
   187            name: serflan-tcp
   188            protocol: TCP
   189          - containerPort: 8301
   190            name: serflan-udp
   191            protocol: UDP
   192          - containerPort: 8302
   193            name: serfwan-tcp
   194            protocol: TCP
   195          - containerPort: 8302
   196            name: serfwan-udp
   197            protocol: UDP
   198          - containerPort: 8300
   199            name: server
   200          - containerPort: 8600
   201            name: consuldns-tcp
   202          - containerPort: 8600
   203            name: consuldns-udp
   204            protocol: UDP
   205          resources: {}
   206          volumeMounts:
   207          - mountPath: /var/lib/consul
   208            name: datadir
   209          - mountPath: /etc/consul/secrets
   210            name: gossip-key
   211            readOnly: true
   212        securityContext:
   213          fsGroup: 1000
   214        volumes:
   215        - name: gossip-key
   216          secret:
   217            secretName: ship-consul-gossip-key
   218    updateStrategy:
   219      type: RollingUpdate
   220    volumeClaimTemplates:
   221    - metadata:
   222        name: datadir
   223      spec:
   224        accessModes:
   225        - ReadWriteOnce
   226        resources:
   227          requests:
   228            storage: 1Gi
   229  ---
   230  apiVersion: policy/v1beta1
   231  kind: PodDisruptionBudget
   232  metadata:
   233    labels:
   234      component: ship-consul
   235      release: ship
   236    name: ship-consul-pdb
   237  spec:
   238    maxUnavailable: 1
   239    selector:
   240      matchLabels:
   241        component: ship-consul