vars:
  clusterName:
    default: "kibana-standalone"
    description: "Name of the Kind cluster"
  imageRepository:
    default: "docker.elastic.co/kibana/kibana"
    description: "Kibana Docker image repository"
  imageTag:
    default: "9.3.1"
    description: "Kibana Docker image tag"
  elasticsearchUrl:
    default: "http://elasticsearch-master:9200"
    description: "Elasticsearch endpoint Kibana connects to"
from:
  - elastic/elasticsearch/standalone
images:
  preload:
    refs:
      - "{{ .imageRepository }}:{{ .imageTag }}"
kind:
  name: "{{ .clusterName }}"
  nodes:
    - role: control-plane
      extraPortMappings:
        - containerPort: 30601
          hostPort: 30601
components:
  - name: kibana
    type: k8s
    requires:
      - component: elasticsearch
        conditions:
          ready: true
        selector:
          matchLabels:
            app: elasticsearch-master
        timeout: 5m
    k8s:
      manifests:
        - apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: kibana
            labels:
              app: kibana
          spec:
            replicas: 1
            selector:
              matchLabels:
                app: kibana
            template:
              metadata:
                labels:
                  app: kibana
              spec:
                containers:
                  - name: kibana
                    image: "{{ .imageRepository }}:{{ .imageTag }}"
                    ports:
                      - containerPort: 5601
                        name: http
                    env:
                      - name: ELASTICSEARCH_HOSTS
                        value: "{{ .elasticsearchUrl }}"
                      - name: xpack.security.enabled
                        value: "false"
                      - name: NODE_OPTIONS
                        value: "--max-old-space-size=768"
                    resources:
                      requests:
                        cpu: 250m
                        memory: 512Mi
                      limits:
                        cpu: 1000m
                        memory: 1Gi
        - apiVersion: v1
          kind: Service
          metadata:
            name: kibana
            labels:
              app: kibana
          spec:
            type: NodePort
            ports:
              - port: 5601
                targetPort: 5601
                nodePort: 30601
                name: http
            selector:
              app: kibana
