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"

Reply via email to