This is an automated email from the ASF dual-hosted git repository. ptuomola pushed a commit to branch FINERACT-1419 in repository https://gitbox.apache.org/repos/asf/fineract.git
commit f9b629ebc45809531d087a1d53ce5b9cbcb65fe0 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"
