File tree 6 files changed +78
-0
lines changed
6 files changed +78
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,41 @@ function bootstrap {
6
6
done
7
7
}
8
8
9
+ function wait_for_it()
10
+ {
11
+ local serviceport=$1
12
+ local service=${serviceport%%:* }
13
+ local port=${serviceport#*: }
14
+ local retry_seconds=5
15
+ local max_try=100
16
+ let i=1
17
+
18
+ nc -z $service $port
19
+ result=$?
20
+
21
+ until [ $result -eq 0 ]; do
22
+ echo " [$i /$max_try ] check for ${service} :${port} ..."
23
+ echo " [$i /$max_try ] ${service} :${port} is not available yet"
24
+ if (( $i == $max_try )) ; then
25
+ echo " [$i /$max_try ] ${service} :${port} is still not available; giving up after ${max_try} tries. :/"
26
+ exit 1
27
+ fi
28
+
29
+ echo " [$i /$max_try ] try in ${retry_seconds} s once again ..."
30
+ let " i++"
31
+ sleep $retry_seconds
32
+
33
+ nc -z $service $port
34
+ result=$?
35
+ done
36
+ echo " [$i /$max_try ] $service :${port} is available."
37
+ }
38
+
39
+ for i in ${SERVICE_PRECONDITION[@]}
40
+ do
41
+ wait_for_it ${i}
42
+ done
43
+
9
44
case " $1 " in
10
45
webserver)
11
46
bootstrap
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ x-airflow-common: &airflow-common
16
16
HDFS_PORT : " 8020"
17
17
INGESTION_API_URL : " http://api:3000"
18
18
SCRIPTS_PATH_PREFIX : /scripts/spark/
19
+ SERVICE_PRECONDITION : airflow-db:5432
19
20
depends_on :
20
21
- airflow-db
21
22
@@ -77,6 +78,7 @@ services:
77
78
command : " hive --service metastore"
78
79
environment :
79
80
NODE_TYPE : metastore
81
+ SERVICE_PRECONDITION : hive-postgres:5432 namenode:50070
80
82
ports :
81
83
- 9083:9083
82
84
Original file line number Diff line number Diff line change 1
1
#! /bin/bash
2
+ function wait_for_it()
3
+ {
4
+ local serviceport=$1
5
+ local service=${serviceport%%:* }
6
+ local port=${serviceport#*: }
7
+ local retry_seconds=5
8
+ local max_try=100
9
+ let i=1
10
+
11
+ nc -z $service $port
12
+ result=$?
13
+
14
+ until [ $result -eq 0 ]; do
15
+ echo " [$i /$max_try ] check for ${service} :${port} ..."
16
+ echo " [$i /$max_try ] ${service} :${port} is not available yet"
17
+ if (( $i == $max_try )) ; then
18
+ echo " [$i /$max_try ] ${service} :${port} is still not available; giving up after ${max_try} tries. :/"
19
+ exit 1
20
+ fi
21
+
22
+ echo " [$i /$max_try ] try in ${retry_seconds} s once again ..."
23
+ let " i++"
24
+ sleep $retry_seconds
25
+
26
+ nc -z $service $port
27
+ result=$?
28
+ done
29
+ echo " [$i /$max_try ] $service :${port} is available."
30
+ }
31
+
32
+ for i in ${SERVICE_PRECONDITION[@]}
33
+ do
34
+ wait_for_it ${i}
35
+ done
36
+
2
37
if [ ! -f populated -a " $NODE_TYPE " == " metastore" ]; then
3
38
schematool -dbType postgres -initSchema
4
39
touch populated
Original file line number Diff line number Diff line change 24
24
value : airflow-postgres-svc.airflow.svc.cluster.local
25
25
- name : POSTGRES_PORT
26
26
value : " 5432"
27
+ - name : SERVICE_PRECONDITION
28
+ value : airflow-postgres-svc.airflow.svc.cluster.local:5432
27
29
- name : EXECUTOR
28
30
value : KubernetesExecutor
29
31
- name : HDFS_HOST
Original file line number Diff line number Diff line change 24
24
value : airflow-postgres-svc.airflow.svc.cluster.local
25
25
- name : POSTGRES_PORT
26
26
value : " 5432"
27
+ - name : SERVICE_PRECONDITION
28
+ value : airflow-postgres-svc.airflow.svc.cluster.local:5432
27
29
- name : EXECUTOR
28
30
value : KubernetesExecutor
29
31
- name : HDFS_HOST
Original file line number Diff line number Diff line change 24
24
env :
25
25
- name : NODE_TYPE
26
26
value : metastore
27
+ - name : SERVICE_PRECONDITION
28
+ value : hive-postgres-svc.dataplatform.svc.cluster.local:5432 namenode-svc.dataplatform.svc.cluster.local:50070
27
29
args :
28
30
- " bash"
29
31
- " -c"
You can’t perform that action at this time.
0 commit comments