| #!/bin/sh |
| |
| # cd kubernetes-scripts |
| echo "Starting ActiveMQ, Eureka, PostgreSQL and Cassandra ..." |
| kubectl apply -f activemq.yml |
| kubectl apply -f eureka.yml |
| kubectl apply -f postgres.yml |
| kubectl apply -f cassandra.yml |
| |
| cassandra_ip="" |
| postgres_ip="" |
| eureka_ip="" |
| activemq_ip="" |
| |
| echo "" |
| echo "Sharing Cassandra, PostgreSQL, Eureka and ActiveMQ IP addresses..." |
| while [[ ${#cassandra_ip} -eq 0 || ${#postgres_ip} -eq 0 || ${#eureka_ip} -eq 0 || ${#activemq_ip} -eq 0 ]] ; do |
| cassandra_ip=$(kubectl describe service cassandra-cluster | grep 'LoadBalancer Ingress' \ |
| | grep -Eo '[0-9.]*') |
| postgres_ip=$(kubectl describe service postgresdb-cluster | grep 'LoadBalancer Ingress'\ |
| | grep -Eo '[0-9.]*') |
| eureka_ip=$(kubectl describe service eureka-cluster | grep 'LoadBalancer Ingress'\ |
| | grep -Eo '[0-9.]*') |
| activemq_ip=$(kubectl describe service activemq-cluster | grep 'LoadBalancer Ingress'\ |
| | grep -Eo '[0-9.]*') |
| done |
| |
| |
| echo "" |
| echo "Creating default fineract service configuration" |
| kubectl create configmap external-tools-config \ |
| --from-literal=ribbon.listOfServers=${eureka_ip}:9090 \ |
| --from-literal=eureka.client.serviceUrl.defaultZone=http://${eureka_ip}:8761/eureka \ |
| --from-literal=postgresql.host=${postgres_ip} \ |
| --from-literal=activemq.brokerUrl=tcp://${activemq_ip}:61616 \ |
| --from-literal=cassandra.contactPoints=${cassandra_ip}:9042 |
| |
| kubectl create configmap provisioner-datasource-config \ |
| --from-literal=spring.datasource.url=jdbc:postgresql://${postgres_ip}:5432/seshat |
| |
| kubectl apply -f config.yml |
| |
| config_param=$( java -cp ../external_tools/lang-0.1.0-BUILD-SNAPSHOT.jar \ |
| org.apache.fineract.cn.lang.security.RsaKeyPairFactory UNIX | \ |
| sed -e 's/^[ \t]*//' | awk '{print "--from-literal="$1}' ) |
| kubectl create configmap secret-config ${config_param} |
| |
| echo "" |
| echo "Starting Provisioner... " |
| kubectl apply -f provisioner.yml |
| echo "Waiting for provisioner to initialize seshat database... " |
| provisioner_pod="" |
| while [[ ${#provisioner_pod} -eq 0 ]] ; do |
| provisioner_pod=$(kubectl get pods -l app=provisioner-ms --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}') |
| done |
| sleep 5 |
| while ! kubectl logs ${provisioner_pod} | grep -q "Started ProvisionerApplication in"; do |
| sleep 1 |
| done |
| |
| echo "" |
| echo "Start remaining Fineract CN microservices... " |
| kubectl apply -f identity.yml |
| kubectl apply -f rhythm.yml |
| kubectl apply -f office.yml |
| kubectl apply -f customer.yml |
| kubectl apply -f accounting.yml |
| kubectl apply -f portfolio.yml |
| kubectl apply -f deposit.yml |
| kubectl apply -f teller.yml |
| kubectl apply -f reporting.yml |
| kubectl apply -f cheques.yml |
| kubectl apply -f payroll.yml |
| kubectl apply -f group.yml |
| kubectl apply -f notifications.yml |