from:
  - postgresql/standalone
  - elastic/elasticsearch/standalone
  - gravitee.io/oss/apim/base
components:
  - name: postgresql
    namespace: gravitee
    k8s:
      manifests:
        - apiVersion: v1
          kind: Service
          metadata:
            name: postgresql
            labels:
              app: postgresql
          spec:
            type: ClusterIP
            ports:
              - port: 5432
                targetPort: 5432
                name: postgresql
            selector:
              app: postgresql
  - name: elasticsearch
    namespace: gravitee
    helm:
      values:
        service:
          type: ClusterIP
          nodePort: null
  - name: apim
    requires:
      - component: postgresql
        conditions:
          ready: true
        selector:
          matchLabels:
            app: postgresql
        timeout: 15m
      - component: elasticsearch
        conditions:
          ready: true
        selector:
          matchLabels:
            app: elasticsearch-master
        timeout: 15m
    helm:
      values:
        management:
          type: jdbc
        jdbc:
          url: jdbc:postgresql://postgresql:5432/gravitee
          driver: https://repo1.maven.org/maven2/org/postgresql/postgresql/42.7.4/postgresql-42.7.4.jar
          username: postgres
          password: postgres
        gateway:
          ingress:
            enabled: false
          ingressController:
            enabled: true
          servers:
            - type: http
              port: 8082
              service:
                type: NodePort
                nodePort: 30082
                externalPort: 82
              ingress:
                enabled: false
            - type: http
              port: 8084
              service:
                type: NodePort
                nodePort: 30084
                externalPort: 84
              ingress:
                enabled: false
              ssl:
                keystore:
                  type: pem
                  secret: secret://kubernetes/tls-server
                clientAuth: request
          service:
            type: NodePort
          services:
            sync:
              kubernetes:
                enabled: true
          reporters:
            elasticsearch:
              enabled: true
          env:
            - name: gravitee_ratelimit_type
              value: jdbc
            - name: gravitee_ratelimit_jdbc_uri
              value: "jdbc:postgresql://postgresql:5432/gravitee"
            - name: gravitee_ratelimit_jdbc_username
              value: postgres
            - name: gravitee_ratelimit_jdbc_password
              value: postgres
