images:
  preload:
    refs:
      - graviteeio/apim-gateway:latest-debian
      - graviteeio/kubernetes-operator:latest
kind:
  name: gravitee-gateway
  nodes:
    - role: control-plane
      extraPortMappings:
        - containerPort: 80
          hostPort: 80
        - containerPort: 443
          hostPort: 443
        - containerPort: 9092
          hostPort: 9092
features:
  lb:
    enabled: true
  dns:
    enabled: true
helm:
  repos:
    - name: graviteeio
      url: https://helm.gravitee.io
components:
  - name: gko
    type: helm
    namespace: gravitee
    helm:
      chart: graviteeio/gko
      values:
        gatewayAPI:
          controller:
            enabled: true
            applycRDs: true
  - name: gateway-class-parameters
    type: k8s
    namespace: gravitee
    k8s:
      manifests:
        - apiVersion: gravitee.io/v1alpha1
          kind: GatewayClassParameters
          metadata:
            name: gravitee-gateway
          spec:
            kubernetes:
              deployment:
                template:
                  spec:
                    containers:
                      - name: gateway
                        image: graviteeio/apim-gateway:latest-debian
                    securityContext:
                      runAsNonRoot: true
                      runAsUser: 1001
    requires:
      - component: gko
        conditions:
          ready: true
        selector:
          matchLabels:
            control-plane: controller-manager
  - name: gateway-class
    type: k8s
    namespace: gravitee
    k8s:
      manifests:
        - apiVersion: gateway.networking.k8s.io/v1
          kind: GatewayClass
          metadata:
            name: gravitee-gateway
          spec:
            controllerName: apim.gravitee.io/gateway
            parametersRef:
              kind: GatewayClassParameters
              group: gravitee.io
              name: gravitee-gateway
              namespace: gravitee
    requires:
      - component: gateway-class-parameters
