This is an automated email from the ASF dual-hosted git repository.
ptuomola pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new b53fae8 Adding UI to K8s deployment (FINERACT-1419)
b53fae8 is described below
commit b53fae870e72fc8f61bedfdc72d2ebe705eee776
Author: Vic Romero <[email protected]>
AuthorDate: Sun Oct 31 23:47:57 2021 -0600
Adding UI to K8s deployment (FINERACT-1419)
---
docker-compose.yml | 11 ++-
kubernetes/fineract-mifoscommunity-deployment.yml | 85 +++++++++++++++++++++++
kubernetes/kubectl-shutdown.sh | 1 +
kubernetes/kubectl-startup.sh | 17 ++++-
4 files changed, 111 insertions(+), 3 deletions(-)
diff --git a/docker-compose.yml b/docker-compose.yml
index 2513129..714b1c9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -38,10 +38,15 @@ services:
build:
context: .
target: fineract
+ healthcheck:
+ test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of
Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1;
printf "-"; done; echo -e " >> Fineract server has started";' ]
+ timeout: 10s
+ retries: 10
ports:
- 8443:8443
depends_on:
- - fineractmysql
+ fineractmysql:
+ condition: service_healthy
environment:
- DRIVERCLASS_NAME=org.drizzle.jdbc.DrizzleDriver
- PROTOCOL=jdbc
@@ -64,7 +69,9 @@ services:
restart: always
ports:
- 9090:80
-
+ depends_on:
+ fineract-server:
+ condition: service_healthy
# https://issues.apache.org/jira/browse/FINERACT-762
# To use an altnerative JDBC driver (which is faster, but not allowed to be
default in Apache distribution)
diff --git a/kubernetes/fineract-mifoscommunity-deployment.yml
b/kubernetes/fineract-mifoscommunity-deployment.yml
new file mode 100644
index 0000000..3bf4321
--- /dev/null
+++ b/kubernetes/fineract-mifoscommunity-deployment.yml
@@ -0,0 +1,85 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+
+
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ app: fineract-mifoscommunity
+ name: fineract-mifoscommunity
+spec:
+ ports:
+ - protocol: TCP
+ port: 80
+ targetPort: 80
+ selector:
+ app: fineract-mifoscommunity
+ tier: frontend
+ type: LoadBalancer
+
+---
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: fineract-mifoscommunity
+ labels:
+ app: fineract-mifoscommunity
+spec:
+ selector:
+ matchLabels:
+ app: fineract-mifoscommunity
+ tier: frontend
+ strategy:
+ type: Recreate
+ template:
+ metadata:
+ labels:
+ app: fineract-mifoscommunity
+ tier: frontend
+ spec:
+ initContainers:
+ - name: init-myservice
+ image: busybox:1.28
+ command: ['sh', '-c', 'echo -e "Checking for the availability of
Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1;
printf "-"; done; echo -e " >> Fineract server has started";']
+ containers:
+ - name: fineract-mifoscommunity
+ image: openmf/community-app:latest
+ resources:
+ limits:
+ cpu: "1000m"
+ memory: "1Gi"
+ requests:
+ cpu: "200m"
+ memory: "0.5Gi"
+ livenessProbe:
+ httpGet:
+ path: /#
+ port: 9090
+ initialDelaySeconds: 90
+ periodSeconds: 1
+ readinessProbe:
+ httpGet:
+ path: /#
+ port: 9090
+ initialDelaySeconds: 90
+ periodSeconds: 1
+ ports:
+ - containerPort: 80
+ name: fineract-mifoscommunity
diff --git a/kubernetes/kubectl-shutdown.sh b/kubernetes/kubectl-shutdown.sh
index ba21d32..8d64d23 100755
--- a/kubernetes/kubectl-shutdown.sh
+++ b/kubernetes/kubectl-shutdown.sh
@@ -22,3 +22,4 @@ kubectl delete secret fineract-tenants-db-secret
kubectl delete -f fineractmysql-configmap.yml
kubectl delete -f fineractmysql-deployment.yml
kubectl delete -f fineract-server-deployment.yml
+kubectl delete -f fineract-mifoscommunity-deployment.yml
diff --git a/kubernetes/kubectl-startup.sh b/kubernetes/kubectl-startup.sh
index bc164a7..f52306f 100755
--- a/kubernetes/kubectl-startup.sh
+++ b/kubernetes/kubectl-startup.sh
@@ -52,4 +52,19 @@ while [[ ${fineract_server_status} -ne 'Running' ]]; do
fineract_server_status=$(kubectl get pods ${fineract_server_pod}
--no-headers -o custom-columns=":status.phase")
done
-echo "Fineract server is up and running"
\ No newline at end of file
+echo "Fineract server is up and running"
+
+echo "Starting Mifos Community UI..."
+kubectl apply -f fineract-mifoscommunity-deployment.yml
+
+fineract_mifoscommunity_pod=""
+while [[ ${#fineract_mifoscommunity_pod} -eq 0 ]]; do
+ fineract_mifoscommunity_pod=$(kubectl get pods -l tier=backend --template
'{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
+done
+
+fineract_mifoscommunity_status=$(kubectl get pods
${fineract_mifoscommunity_pod} --no-headers -o custom-columns=":status.phase")
+while [[ ${fineract_mifoscommunity_status} -ne 'Running' ]]; do
+ sleep 1
+ fineract_mifoscommunity_status=$(kubectl get pods
${fineract_mifoscommunity_pod} --no-headers -o custom-columns=":status.phase")
+done
+echo "Mifos Community UI is up and running"