github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/zookeeper/manifest.yaml (about)

     1  ---
     2  apiVersion: v1
     3  kind: Namespace
     4  metadata:
     5    name: zookeeper-system
     6    labels:
     7      app.kubernetes.io/name: zookeeper
     8      app.kubernetes.io/instance: my-zookeeper
     9  ---
    10  # Source: zookeeper/templates/svc-headless.yaml
    11  apiVersion: v1
    12  kind: Service
    13  metadata:
    14    name: my-zookeeper-headless
    15    namespace: zookeeper-system
    16    labels:
    17      app.kubernetes.io/name: zookeeper
    18      app.kubernetes.io/instance: my-zookeeper
    19      app.kubernetes.io/component: zookeeper
    20  spec:
    21    type: ClusterIP
    22    clusterIP: None
    23    publishNotReadyAddresses: true
    24    ports:
    25      - name: tcp-client
    26        port: 2181
    27        targetPort: client
    28      - name: follower
    29        port: 2888
    30        targetPort: follower
    31      - name: tcp-election
    32        port: 3888
    33        targetPort: election
    34    selector:
    35      app.kubernetes.io/name: zookeeper
    36      app.kubernetes.io/instance: my-zookeeper
    37      app.kubernetes.io/component: zookeeper
    38  ---
    39  # Source: zookeeper/templates/svc.yaml
    40  apiVersion: v1
    41  kind: Service
    42  metadata:
    43    name: my-zookeeper
    44    namespace: zookeeper-system
    45    labels:
    46      app.kubernetes.io/name: zookeeper
    47  
    48      app.kubernetes.io/instance: my-zookeeper
    49  
    50      app.kubernetes.io/component: zookeeper
    51  spec:
    52    type: ClusterIP
    53    ports:
    54      - name: tcp-client
    55        port: 2181
    56        targetPort: client
    57      - name: follower
    58        port: 2888
    59        targetPort: follower
    60      - name: tcp-election
    61        port: 3888
    62        targetPort: election
    63    selector:
    64      app.kubernetes.io/name: zookeeper
    65      app.kubernetes.io/instance: my-zookeeper
    66      app.kubernetes.io/component: zookeeper
    67  ---
    68  # Source: zookeeper/templates/statefulset.yaml
    69  apiVersion: apps/v1
    70  kind: StatefulSet
    71  metadata:
    72    name: my-zookeeper
    73    namespace: zookeeper-system
    74    labels:
    75      app.kubernetes.io/name: zookeeper
    76      app.kubernetes.io/instance: my-zookeeper
    77      app.kubernetes.io/component: zookeeper
    78      role: zookeeper
    79  spec:
    80    serviceName: my-zookeeper-headless
    81    replicas: 3
    82    podManagementPolicy: Parallel
    83    updateStrategy:
    84      type: RollingUpdate
    85    selector:
    86      matchLabels:
    87        app.kubernetes.io/name: zookeeper
    88        app.kubernetes.io/instance: my-zookeeper
    89        app.kubernetes.io/component: zookeeper
    90    template:
    91      metadata:
    92        name: my-zookeeper
    93        labels:
    94          app.kubernetes.io/name: zookeeper
    95          app.kubernetes.io/instance: my-zookeeper
    96          app.kubernetes.io/component: zookeeper
    97      spec:
    98        serviceAccountName: default
    99        securityContext:
   100          fsGroup: 1001
   101        affinity:
   102          podAntiAffinity:
   103            preferredDuringSchedulingIgnoredDuringExecution:
   104              - podAffinityTerm:
   105                  labelSelector:
   106                    matchLabels:
   107                      app.kubernetes.io/name: zookeeper
   108                      app.kubernetes.io/instance: my-zookeeper
   109                      app.kubernetes.io/component: zookeeper
   110                  namespaces:
   111                    - "zookeeper-system"
   112                  topologyKey: kubernetes.io/hostname
   113                weight: 1
   114        containers:
   115          - name: zookeeper
   116            image: docker.io/bitnami/zookeeper:3.7.0-debian-10-r106
   117            imagePullPolicy: "IfNotPresent"
   118            securityContext:
   119              runAsUser: 1001
   120            command:
   121              - bash
   122              - -ec
   123              - |
   124                # Execute entrypoint as usual after obtaining ZOO_SERVER_ID
   125                # check ZOO_SERVER_ID in persistent volume via myid
   126                # if not present, set based on POD hostname
   127                if [[ -f "/bitnami/zookeeper/data/myid" ]]; then
   128                  export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)"
   129                else
   130                  HOSTNAME=`hostname -s`
   131                  if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then
   132                    ORD=${BASH_REMATCH[2]}
   133                    export ZOO_SERVER_ID=$((ORD + 1 ))
   134                  else
   135                    echo "Failed to get index from hostname $HOST"
   136                    exit 1
   137                  fi
   138                fi
   139                exec /entrypoint.sh /run.sh
   140            resources:
   141              requests:
   142                cpu: 250m
   143                memory: 256Mi
   144            env:
   145              - name: BITNAMI_DEBUG
   146                value: "false"
   147              - name: ZOO_DATA_LOG_DIR
   148                value: ""
   149              - name: ZOO_PORT_NUMBER
   150                value: "2181"
   151              - name: ZOO_TICK_TIME
   152                value: "2000"
   153              - name: ZOO_INIT_LIMIT
   154                value: "10"
   155              - name: ZOO_SYNC_LIMIT
   156                value: "5"
   157              - name: ZOO_MAX_CLIENT_CNXNS
   158                value: "60"
   159              - name: ZOO_4LW_COMMANDS_WHITELIST
   160                value: "srvr, mntr, ruok"
   161              - name: ZOO_LISTEN_ALLIPS_ENABLED
   162                value: "no"
   163              - name: ZOO_AUTOPURGE_INTERVAL
   164                value: "0"
   165              - name: ZOO_AUTOPURGE_RETAIN_COUNT
   166                value: "3"
   167              - name: ZOO_MAX_SESSION_TIMEOUT
   168                value: "40000"
   169              - name: ZOO_SERVERS
   170                value: my-zookeeper-0.my-zookeeper-headless.zookeeper-system.svc.cluster.local:2888:3888::1
   171              - name: ZOO_ENABLE_AUTH
   172                value: "no"
   173              - name: ZOO_HEAP_SIZE
   174                value: "1024"
   175              - name: ZOO_LOG_LEVEL
   176                value: "ERROR"
   177              - name: ALLOW_ANONYMOUS_LOGIN
   178                value: "yes"
   179              - name: POD_NAME
   180                valueFrom:
   181                  fieldRef:
   182                    apiVersion: v1
   183                    fieldPath: metadata.name
   184            ports:
   185              - name: client
   186                containerPort: 2181
   187              - name: follower
   188                containerPort: 2888
   189              - name: election
   190                containerPort: 3888
   191            livenessProbe:
   192              exec:
   193                command: [ '/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok' ]
   194              initialDelaySeconds: 30
   195              periodSeconds: 10
   196              timeoutSeconds: 5
   197              successThreshold: 1
   198              failureThreshold: 6
   199            readinessProbe:
   200              exec:
   201                command: [ '/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok' ]
   202              initialDelaySeconds: 5
   203              periodSeconds: 10
   204              timeoutSeconds: 5
   205              successThreshold: 1
   206              failureThreshold: 6
   207            volumeMounts:
   208              - name: data
   209                mountPath: /bitnami/zookeeper
   210    volumeClaimTemplates:
   211      - metadata:
   212          name: data
   213        spec:
   214          accessModes:
   215            - "ReadWriteOnce"
   216          resources:
   217            requests:
   218              storage: "10Gi"
   219          storageClassName: local-hostpath