# 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: mifos-community
  name: mifos-community
spec:
  ports:
  - protocol: TCP
    port: 9090
    targetPort: 80
  selector:
    app: mifos-community
    tier: frontend
  type: LoadBalancer

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mifos-community
  labels:
    app: mifos-community
spec:
  selector:
    matchLabels:
      app: mifos-community
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mifos-community
        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: mifos-community
        image: openmf/community-app:latest
        resources:
          limits:
            cpu: "1000m"
            memory: "1Gi"
          requests:
            cpu: "200m"
            memory: "0.5Gi"
        livenessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 90
          periodSeconds: 1
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 90
          periodSeconds: 1
        ports:
        - containerPort: 80
          name: mifos-community
