TB-58: k8 base scripts
This commit is contained in:
		
							parent
							
								
									b39416232d
								
							
						
					
					
						commit
						73458484c2
					
				@ -1,10 +1,11 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					apiVersion: v1
 | 
				
			||||||
kind: Pod
 | 
					kind: Pod
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: tb-db-schema-deployment
 | 
					  name: tb-db-schema
 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
  containers:
 | 
					  containers:
 | 
				
			||||||
  - name: tb-db-schema-k8
 | 
					  - name: tb-db-schema
 | 
				
			||||||
 | 
					    imagePullPolicy: Always
 | 
				
			||||||
    image: thingsboard/thingsboard-db-schema:k8test
 | 
					    image: thingsboard/thingsboard-db-schema:k8test
 | 
				
			||||||
    env:
 | 
					    env:
 | 
				
			||||||
    - name: SKIP_SCHEMA_CREATION
 | 
					    - name: SKIP_SCHEMA_CREATION
 | 
				
			||||||
@ -2,43 +2,53 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					apiVersion: v1
 | 
				
			||||||
kind: Service
 | 
					kind: Service
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: thingsboard-external
 | 
					  name: tb-external-ip
 | 
				
			||||||
  labels:
 | 
					  labels:
 | 
				
			||||||
    app: thingsboard-external
 | 
					    app: tb-external-ip
 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
  ports:
 | 
					  ports:
 | 
				
			||||||
  - port: 8080
 | 
					  - port: 8080
 | 
				
			||||||
    name: ui
 | 
					    name: ui-port
 | 
				
			||||||
  - port: 1883
 | 
					  - port: 1883
 | 
				
			||||||
    name: mqtt
 | 
					    name: mqtt-port
 | 
				
			||||||
  - port: 5683
 | 
					  - port: 5683
 | 
				
			||||||
    name: coap
 | 
					    name: coap-port
 | 
				
			||||||
  - port: 9001
 | 
					  - port: 9001
 | 
				
			||||||
    name: rpc
 | 
					    name: rpc-port
 | 
				
			||||||
  selector:
 | 
					  selector:
 | 
				
			||||||
    app: thingsboard
 | 
					    app: tb
 | 
				
			||||||
  type: LoadBalancer
 | 
					  type: LoadBalancer
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
apiVersion: v1
 | 
					apiVersion: v1
 | 
				
			||||||
kind: Service
 | 
					kind: Service
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: thingsboard-headless
 | 
					  name: tb-headless
 | 
				
			||||||
  labels:
 | 
					  labels:
 | 
				
			||||||
    app: thingsboard-headless
 | 
					    app: tb-headless
 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
  ports:
 | 
					  ports:
 | 
				
			||||||
  - port: 8080
 | 
					  - port: 8080
 | 
				
			||||||
    name: ui
 | 
					    name: ui-port
 | 
				
			||||||
  - port: 1883
 | 
					  - port: 1883
 | 
				
			||||||
    name: mqtt
 | 
					    name: mqtt-port
 | 
				
			||||||
  - port: 5683
 | 
					  - port: 5683
 | 
				
			||||||
    name: coap
 | 
					    name: coap-port
 | 
				
			||||||
  - port: 9001
 | 
					  - port: 9001
 | 
				
			||||||
    name: rpc
 | 
					    name: rpc-port
 | 
				
			||||||
  selector:
 | 
					  selector:
 | 
				
			||||||
    app: thingsboard
 | 
					    app: tb
 | 
				
			||||||
  clusterIP: None
 | 
					  clusterIP: None
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					apiVersion: policy/v1beta1
 | 
				
			||||||
 | 
					kind: PodDisruptionBudget
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: tb-budget
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    matchLabels:
 | 
				
			||||||
 | 
					      app: tb
 | 
				
			||||||
 | 
					  minAvailable: 2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
apiVersion: v1
 | 
					apiVersion: v1
 | 
				
			||||||
kind: ConfigMap
 | 
					kind: ConfigMap
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
@ -53,12 +63,12 @@ kind: StatefulSet
 | 
				
			|||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: tb
 | 
					  name: tb
 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
  serviceName: "thingsboard-headless"
 | 
					  serviceName: "tb-headless"
 | 
				
			||||||
  replicas: 2
 | 
					  replicas: 2
 | 
				
			||||||
  template:
 | 
					  template:
 | 
				
			||||||
    metadata:
 | 
					    metadata:
 | 
				
			||||||
      labels:
 | 
					      labels:
 | 
				
			||||||
        app: thingsboard
 | 
					        app: tb
 | 
				
			||||||
    spec:
 | 
					    spec:
 | 
				
			||||||
      terminationGracePeriodSeconds: 10
 | 
					      terminationGracePeriodSeconds: 10
 | 
				
			||||||
      affinity:
 | 
					      affinity:
 | 
				
			||||||
@ -69,20 +79,21 @@ spec:
 | 
				
			|||||||
                  - key: "app"
 | 
					                  - key: "app"
 | 
				
			||||||
                    operator: In
 | 
					                    operator: In
 | 
				
			||||||
                    values:
 | 
					                    values:
 | 
				
			||||||
                    - thingsboard-headless
 | 
					                    - tb-headless
 | 
				
			||||||
              topologyKey: "kubernetes.io/hostname"
 | 
					              topologyKey: "kubernetes.io/hostname"
 | 
				
			||||||
      containers:
 | 
					      containers:
 | 
				
			||||||
      - name: thingsboard
 | 
					      - name: tb
 | 
				
			||||||
 | 
					        imagePullPolicy: Always
 | 
				
			||||||
        image: thingsboard/application:k8test
 | 
					        image: thingsboard/application:k8test
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
        - containerPort: 8080
 | 
					        - containerPort: 8080
 | 
				
			||||||
          name: ui
 | 
					          name: ui-port
 | 
				
			||||||
        - containerPort: 1883
 | 
					        - containerPort: 1883
 | 
				
			||||||
          name: mqtt
 | 
					          name: mqtt-port
 | 
				
			||||||
        - containerPort: 5683
 | 
					        - containerPort: 5683
 | 
				
			||||||
          name: coap
 | 
					          name: coap-port
 | 
				
			||||||
        - containerPort: 9001
 | 
					        - containerPort: 9001
 | 
				
			||||||
          name: rpc
 | 
					          name: rpc-port
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
        - name: ZOOKEEPER_ENABLED
 | 
					        - name: ZOOKEEPER_ENABLED
 | 
				
			||||||
          valueFrom:
 | 
					          valueFrom:
 | 
				
			||||||
@ -102,4 +113,16 @@ spec:
 | 
				
			|||||||
        command:
 | 
					        command:
 | 
				
			||||||
        - sh
 | 
					        - sh
 | 
				
			||||||
        - -c
 | 
					        - -c
 | 
				
			||||||
        - ./run_thingsboard.sh
 | 
					        - ./run_thingsboard.sh
 | 
				
			||||||
 | 
					#        readinessProbe:
 | 
				
			||||||
 | 
					#          httpGet:
 | 
				
			||||||
 | 
					#            path: /login
 | 
				
			||||||
 | 
					#            port: ui-port
 | 
				
			||||||
 | 
					#          initialDelaySeconds: 30
 | 
				
			||||||
 | 
					#          periodSeconds: 10
 | 
				
			||||||
 | 
					        livenessProbe:
 | 
				
			||||||
 | 
					          httpGet:
 | 
				
			||||||
 | 
					            path: /login
 | 
				
			||||||
 | 
					            port: ui-port
 | 
				
			||||||
 | 
					          initialDelaySeconds: 30
 | 
				
			||||||
 | 
					          periodSeconds: 10
 | 
				
			||||||
							
								
								
									
										55
									
								
								docker/zookeeper/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docker/zookeeper/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					FROM ubuntu:16.04 
 | 
				
			||||||
 | 
					ENV ZK_USER=zookeeper \
 | 
				
			||||||
 | 
					ZK_DATA_DIR=/var/lib/zookeeper/data \
 | 
				
			||||||
 | 
					ZK_DATA_LOG_DIR=/var/lib/zookeeper/log \
 | 
				
			||||||
 | 
					ZK_LOG_DIR=/var/log/zookeeper \
 | 
				
			||||||
 | 
					JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG GPG_KEY=C823E3E5B12AF29C67F81976F5CECB3CB5E9BD2D
 | 
				
			||||||
 | 
					ARG ZK_DIST=zookeeper-3.4.9
 | 
				
			||||||
 | 
					RUN set -x \
 | 
				
			||||||
 | 
					    && apt-get update \
 | 
				
			||||||
 | 
					    && apt-get install -y openjdk-8-jre-headless wget netcat-openbsd \
 | 
				
			||||||
 | 
						&& wget -q "http://www.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz" \
 | 
				
			||||||
 | 
					    && wget -q "http://www.apache.org/dist/zookeeper/$ZK_DIST/$ZK_DIST.tar.gz.asc" \
 | 
				
			||||||
 | 
					    && export GNUPGHOME="$(mktemp -d)" \
 | 
				
			||||||
 | 
					    && gpg --keyserver ha.pool.sks-keyservers.net --recv-key "$GPG_KEY" \
 | 
				
			||||||
 | 
					    && gpg --batch --verify "$ZK_DIST.tar.gz.asc" "$ZK_DIST.tar.gz" \
 | 
				
			||||||
 | 
					    && tar -xzf "$ZK_DIST.tar.gz" -C /opt \
 | 
				
			||||||
 | 
					    && rm -r "$GNUPGHOME" "$ZK_DIST.tar.gz" "$ZK_DIST.tar.gz.asc" \
 | 
				
			||||||
 | 
					    && ln -s /opt/$ZK_DIST /opt/zookeeper \
 | 
				
			||||||
 | 
					    && rm -rf /opt/zookeeper/CHANGES.txt \
 | 
				
			||||||
 | 
					    /opt/zookeeper/README.txt \
 | 
				
			||||||
 | 
					    /opt/zookeeper/NOTICE.txt \
 | 
				
			||||||
 | 
					    /opt/zookeeper/CHANGES.txt \
 | 
				
			||||||
 | 
					    /opt/zookeeper/README_packaging.txt \
 | 
				
			||||||
 | 
					    /opt/zookeeper/build.xml \
 | 
				
			||||||
 | 
					    /opt/zookeeper/config \
 | 
				
			||||||
 | 
					    /opt/zookeeper/contrib \
 | 
				
			||||||
 | 
					    /opt/zookeeper/dist-maven \
 | 
				
			||||||
 | 
					    /opt/zookeeper/docs \
 | 
				
			||||||
 | 
					    /opt/zookeeper/ivy.xml \
 | 
				
			||||||
 | 
					    /opt/zookeeper/ivysettings.xml \
 | 
				
			||||||
 | 
					    /opt/zookeeper/recipes \
 | 
				
			||||||
 | 
					    /opt/zookeeper/src \
 | 
				
			||||||
 | 
					    /opt/zookeeper/$ZK_DIST.jar.asc \
 | 
				
			||||||
 | 
					    /opt/zookeeper/$ZK_DIST.jar.md5 \
 | 
				
			||||||
 | 
					    /opt/zookeeper/$ZK_DIST.jar.sha1 \
 | 
				
			||||||
 | 
						&& apt-get autoremove -y wget \
 | 
				
			||||||
 | 
						&& rm -rf /var/lib/apt/lists/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Copy configuration generator script to bin
 | 
				
			||||||
 | 
					COPY zkGenConfig.sh zkOk.sh /opt/zookeeper/bin/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create a user for the zookeeper process and configure file system ownership 
 | 
				
			||||||
 | 
					# for nessecary directories and symlink the distribution as a user executable
 | 
				
			||||||
 | 
					RUN set -x \
 | 
				
			||||||
 | 
						&& useradd $ZK_USER \
 | 
				
			||||||
 | 
					    && [ `id -u $ZK_USER` -eq 1000 ] \
 | 
				
			||||||
 | 
					    && [ `id -g $ZK_USER` -eq 1000 ] \
 | 
				
			||||||
 | 
					    && mkdir -p $ZK_DATA_DIR $ZK_DATA_LOG_DIR $ZK_LOG_DIR /usr/share/zookeeper /tmp/zookeeper /usr/etc/ \
 | 
				
			||||||
 | 
						&& chown -R "$ZK_USER:$ZK_USER" /opt/$ZK_DIST $ZK_DATA_DIR $ZK_LOG_DIR $ZK_DATA_LOG_DIR /tmp/zookeeper \
 | 
				
			||||||
 | 
						&& ln -s /opt/zookeeper/conf/ /usr/etc/zookeeper \
 | 
				
			||||||
 | 
						&& ln -s /opt/zookeeper/bin/* /usr/bin \
 | 
				
			||||||
 | 
						&& ln -s /opt/zookeeper/$ZK_DIST.jar /usr/share/zookeeper/ \
 | 
				
			||||||
 | 
						&& ln -s /opt/zookeeper/lib/* /usr/share/zookeeper 
 | 
				
			||||||
							
								
								
									
										12
									
								
								docker/zookeeper/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docker/zookeeper/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					VERSION=k8test
 | 
				
			||||||
 | 
					PROJECT=thingsboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build:
 | 
				
			||||||
 | 
						docker build --pull -t ${PROJECT}/k8szk:${VERSION} .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					push: build
 | 
				
			||||||
 | 
						docker push ${PROJECT}/k8szk:${VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: all build push
 | 
				
			||||||
							
								
								
									
										151
									
								
								docker/zookeeper/zkGenConfig.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										151
									
								
								docker/zookeeper/zkGenConfig.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,151 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ZK_USER=${ZK_USER:-"zookeeper"}
 | 
				
			||||||
 | 
					ZK_LOG_LEVEL=${ZK_LOG_LEVEL:-"INFO"}
 | 
				
			||||||
 | 
					ZK_DATA_DIR=${ZK_DATA_DIR:-"/var/lib/zookeeper/data"}
 | 
				
			||||||
 | 
					ZK_DATA_LOG_DIR=${ZK_DATA_LOG_DIR:-"/var/lib/zookeeper/log"}
 | 
				
			||||||
 | 
					ZK_LOG_DIR=${ZK_LOG_DIR:-"var/log/zookeeper"}
 | 
				
			||||||
 | 
					ZK_CONF_DIR=${ZK_CONF_DIR:-"/opt/zookeeper/conf"}
 | 
				
			||||||
 | 
					ZK_CLIENT_PORT=${ZK_CLIENT_PORT:-2181}
 | 
				
			||||||
 | 
					ZK_SERVER_PORT=${ZK_SERVER_PORT:-2888}
 | 
				
			||||||
 | 
					ZK_ELECTION_PORT=${ZK_ELECTION_PORT:-3888}
 | 
				
			||||||
 | 
					ZK_TICK_TIME=${ZK_TICK_TIME:-2000}
 | 
				
			||||||
 | 
					ZK_INIT_LIMIT=${ZK_INIT_LIMIT:-10}
 | 
				
			||||||
 | 
					ZK_SYNC_LIMIT=${ZK_SYNC_LIMIT:-5}
 | 
				
			||||||
 | 
					ZK_HEAP_SIZE=${ZK_HEAP_SIZE:-2G}
 | 
				
			||||||
 | 
					ZK_MAX_CLIENT_CNXNS=${ZK_MAX_CLIENT_CNXNS:-60}
 | 
				
			||||||
 | 
					ZK_MIN_SESSION_TIMEOUT=${ZK_MIN_SESSION_TIMEOUT:- $((ZK_TICK_TIME*2))}
 | 
				
			||||||
 | 
					ZK_MAX_SESSION_TIMEOUT=${ZK_MAX_SESSION_TIMEOUT:- $((ZK_TICK_TIME*20))}
 | 
				
			||||||
 | 
					ZK_SNAP_RETAIN_COUNT=${ZK_SNAP_RETAIN_COUNT:-3}
 | 
				
			||||||
 | 
					ZK_PURGE_INTERVAL=${ZK_PURGE_INTERVAL:-0}
 | 
				
			||||||
 | 
					ID_FILE="$ZK_DATA_DIR/myid"
 | 
				
			||||||
 | 
					ZK_CONFIG_FILE="$ZK_CONF_DIR/zoo.cfg"
 | 
				
			||||||
 | 
					LOGGER_PROPS_FILE="$ZK_CONF_DIR/log4j.properties"
 | 
				
			||||||
 | 
					JAVA_ENV_FILE="$ZK_CONF_DIR/java.env"
 | 
				
			||||||
 | 
					HOST=`hostname -s`
 | 
				
			||||||
 | 
					DOMAIN=`hostname -d`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function print_servers() {
 | 
				
			||||||
 | 
						 for (( i=1; i<=$ZK_REPLICAS; i++ ))
 | 
				
			||||||
 | 
						do
 | 
				
			||||||
 | 
							echo "server.$i=$NAME-$((i-1)).$DOMAIN:$ZK_SERVER_PORT:$ZK_ELECTION_PORT"
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function validate_env() {
 | 
				
			||||||
 | 
					    echo "Validating environment"
 | 
				
			||||||
 | 
						if [ -z $ZK_REPLICAS ]; then
 | 
				
			||||||
 | 
							echo "ZK_REPLICAS is a mandatory environment variable"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [[ $HOST =~ (.*)-([0-9]+)$ ]]; then
 | 
				
			||||||
 | 
							NAME=${BASH_REMATCH[1]}
 | 
				
			||||||
 | 
							ORD=${BASH_REMATCH[2]}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "Failed to extract ordinal from hostname $HOST"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						MY_ID=$((ORD+1))
 | 
				
			||||||
 | 
						echo "ZK_REPLICAS=$ZK_REPLICAS"
 | 
				
			||||||
 | 
					    echo "MY_ID=$MY_ID"
 | 
				
			||||||
 | 
					    echo "ZK_LOG_LEVEL=$ZK_LOG_LEVEL"
 | 
				
			||||||
 | 
					    echo "ZK_DATA_DIR=$ZK_DATA_DIR"
 | 
				
			||||||
 | 
					    echo "ZK_DATA_LOG_DIR=$ZK_DATA_LOG_DIR"
 | 
				
			||||||
 | 
					    echo "ZK_LOG_DIR=$ZK_LOG_DIR"
 | 
				
			||||||
 | 
					    echo "ZK_CLIENT_PORT=$ZK_CLIENT_PORT"
 | 
				
			||||||
 | 
					    echo "ZK_SERVER_PORT=$ZK_SERVER_PORT"
 | 
				
			||||||
 | 
					    echo "ZK_ELECTION_PORT=$ZK_ELECTION_PORT"
 | 
				
			||||||
 | 
					    echo "ZK_TICK_TIME=$ZK_TICK_TIME"
 | 
				
			||||||
 | 
					    echo "ZK_INIT_LIMIT=$ZK_INIT_LIMIT"
 | 
				
			||||||
 | 
					    echo "ZK_SYNC_LIMIT=$ZK_SYNC_LIMIT"
 | 
				
			||||||
 | 
					    echo "ZK_MAX_CLIENT_CNXNS=$ZK_MAX_CLIENT_CNXNS"
 | 
				
			||||||
 | 
					    echo "ZK_MIN_SESSION_TIMEOUT=$ZK_MIN_SESSION_TIMEOUT"
 | 
				
			||||||
 | 
					    echo "ZK_MAX_SESSION_TIMEOUT=$ZK_MAX_SESSION_TIMEOUT"
 | 
				
			||||||
 | 
					    echo "ZK_HEAP_SIZE=$ZK_HEAP_SIZE"
 | 
				
			||||||
 | 
					    echo "ZK_SNAP_RETAIN_COUNT=$ZK_SNAP_RETAIN_COUNT"
 | 
				
			||||||
 | 
					    echo "ZK_PURGE_INTERVAL=$ZK_PURGE_INTERVAL"
 | 
				
			||||||
 | 
					    echo "ENSEMBLE"
 | 
				
			||||||
 | 
					    print_servers
 | 
				
			||||||
 | 
					    echo "Environment validation successful"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create_config() {
 | 
				
			||||||
 | 
						rm -f $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "Creating ZooKeeper configuration"
 | 
				
			||||||
 | 
					    echo "#This file was autogenerated by k8szk DO NOT EDIT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
						echo "clientPort=$ZK_CLIENT_PORT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "dataDir=$ZK_DATA_DIR" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "dataLogDir=$ZK_DATA_LOG_DIR" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "tickTime=$ZK_TICK_TIME" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "initLimit=$ZK_INIT_LIMIT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "syncLimit=$ZK_SYNC_LIMIT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "maxClientCnxns=$ZK_MAX_CLIENT_CNXNS" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "minSessionTimeout=$ZK_MIN_SESSION_TIMEOUT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "maxSessionTimeout=$ZK_MAX_SESSION_TIMEOUT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "autopurge.snapRetainCount=$ZK_SNAP_RETAIN_COUNT" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    echo "autopurge.purgeInteval=$ZK_PURGE_INTERVAL" >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ $ZK_REPLICAS -gt 1 ]; then
 | 
				
			||||||
 | 
					    	print_servers >> $ZK_CONFIG_FILE
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    echo "Wrote ZooKeeper configuration file to $ZK_CONFIG_FILE"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create_data_dirs() {
 | 
				
			||||||
 | 
						echo "Creating ZooKeeper data directories and setting permissions"
 | 
				
			||||||
 | 
					    if [ ! -d $ZK_DATA_DIR  ]; then
 | 
				
			||||||
 | 
					        mkdir -p $ZK_DATA_DIR
 | 
				
			||||||
 | 
					        chown -R $ZK_USER:$ZK_USER $ZK_DATA_DIR
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ! -d $ZK_DATA_LOG_DIR  ]; then
 | 
				
			||||||
 | 
					        mkdir -p $ZK_DATA_LOG_DIR
 | 
				
			||||||
 | 
					        chown -R $ZK_USER:$ZK_USER $ZK_DATA_LOG_DIR
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ! -d $ZK_LOG_DIR  ]; then
 | 
				
			||||||
 | 
					        mkdir -p $ZK_LOG_DIR
 | 
				
			||||||
 | 
					        chown -R $ZK_USER:$ZK_USER $ZK_LOG_DIR
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if [ ! -f $ID_FILE ]; then
 | 
				
			||||||
 | 
					        echo $MY_ID >> $ID_FILE
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    echo "Created ZooKeeper data directories and set permissions in $ZK_DATA_DIR"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create_log_props () {
 | 
				
			||||||
 | 
						rm -f $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
					    echo "Creating ZooKeeper log4j configuration"
 | 
				
			||||||
 | 
						echo "zookeeper.root.logger=CONSOLE" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "zookeeper.console.threshold="$ZK_LOG_LEVEL >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "log4j.rootLogger=\${zookeeper.root.logger}" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "log4j.appender.CONSOLE.Threshold=\${zookeeper.console.threshold}" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n" >> $LOGGER_PROPS_FILE
 | 
				
			||||||
 | 
						echo "Wrote log4j configuration to $LOGGER_PROPS_FILE"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create_java_env() {
 | 
				
			||||||
 | 
					    rm -f $JAVA_ENV_FILE
 | 
				
			||||||
 | 
					    echo "Creating JVM configuration file"
 | 
				
			||||||
 | 
					    echo "ZOO_LOG_DIR=$ZK_LOG_DIR" >> $JAVA_ENV_FILE
 | 
				
			||||||
 | 
					    echo "JVMFLAGS=\"-Xmx$ZK_HEAP_SIZE -Xms$ZK_HEAP_SIZE\"" >> $JAVA_ENV_FILE
 | 
				
			||||||
 | 
					    echo "Wrote JVM configuration to $JAVA_ENV_FILE"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					validate_env && create_config && create_log_props && create_data_dirs && create_java_env
 | 
				
			||||||
							
								
								
									
										26
									
								
								docker/zookeeper/zkOk.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								docker/zookeeper/zkOk.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# zkOk.sh uses the ruok ZooKeeper four letter work to determine if the instance
 | 
				
			||||||
 | 
					# is health. The $? variable will be set to 0 if server responds that it is 
 | 
				
			||||||
 | 
					# healthy, or 1 if the server fails to respond.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ZK_CLIENT_PORT=${ZK_CLIENT_PORT:-2181}
 | 
				
			||||||
 | 
					OK=$(echo ruok | nc 127.0.0.1 $ZK_CLIENT_PORT)
 | 
				
			||||||
 | 
					if [ "$OK" == "imok" ]; then
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -20,7 +20,7 @@ metadata:
 | 
				
			|||||||
  name: zk-config
 | 
					  name: zk-config
 | 
				
			||||||
data:
 | 
					data:
 | 
				
			||||||
  ensemble: "zk-0;zk-1;zk-2"
 | 
					  ensemble: "zk-0;zk-1;zk-2"
 | 
				
			||||||
  jvm.heap: "1G"
 | 
					  jvm.heap: "500m"
 | 
				
			||||||
  tick: "2000"
 | 
					  tick: "2000"
 | 
				
			||||||
  init: "10"
 | 
					  init: "10"
 | 
				
			||||||
  sync: "5"
 | 
					  sync: "5"
 | 
				
			||||||
@ -65,11 +65,11 @@ spec:
 | 
				
			|||||||
      containers:
 | 
					      containers:
 | 
				
			||||||
      - name: k8szk
 | 
					      - name: k8szk
 | 
				
			||||||
        imagePullPolicy: Always
 | 
					        imagePullPolicy: Always
 | 
				
			||||||
        image: gcr.io/google_samples/k8szk:v1
 | 
					        image: thingsboard/k8szk:k8test
 | 
				
			||||||
        resources:
 | 
					        resources:
 | 
				
			||||||
          requests:
 | 
					          requests:
 | 
				
			||||||
            memory: "0.5Gi"
 | 
					            memory: "500Mi"
 | 
				
			||||||
            cpu: "0.2"
 | 
					            cpu: "250m"
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
        - containerPort: 2181
 | 
					        - containerPort: 2181
 | 
				
			||||||
          name: client
 | 
					          name: client
 | 
				
			||||||
@ -83,6 +83,8 @@ spec:
 | 
				
			|||||||
            configMapKeyRef:
 | 
					            configMapKeyRef:
 | 
				
			||||||
              name: zk-config
 | 
					              name: zk-config
 | 
				
			||||||
              key: ensemble
 | 
					              key: ensemble
 | 
				
			||||||
 | 
					        - name : ZK_REPLICAS
 | 
				
			||||||
 | 
					          value: "3"
 | 
				
			||||||
        - name : ZK_HEAP_SIZE
 | 
					        - name : ZK_HEAP_SIZE
 | 
				
			||||||
          valueFrom:
 | 
					          valueFrom:
 | 
				
			||||||
            configMapKeyRef:
 | 
					            configMapKeyRef:
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user