#
# 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.
#
schema_version: 1

name: "docker.io/apache/incubator-kie-kogito-data-index-ephemeral"
version: "main"
from: "registry.access.redhat.com/ubi8/openjdk-17-runtime:1.19"
description: "Runtime image for Kogito Data Index Service for ephemeral PostgreSQL persistence provider"

labels:
  - name: "org.kie.kogito.version"
    value: "999-SNAPSHOT"
  - name: "maintainer"
    value: "Apache KIE <dev@kie.apache.org>"
  - name: "io.k8s.description"
    value: "Runtime image for Kogito Data Index Service for ephemeral PostgreSQL persistence provider"
  - name: "io.k8s.display-name"
    value: "Kogito Data Index Service - ephemeral PostgreSQL"
  - name: "io.openshift.tags"
    value: "kogito,data-index,data-index-ephemeral"
  - name: "io.openshift.expose-services"
    value: "8080:http"

envs:
  - name: "SCRIPT_DEBUG"
    example: "true"
    description: "If set to true, ensures that the bash scripts are executed with the -x option, printing the commands and their arguments as they are executed. Also debug JVM initialization."
  - name: "KOGITO_DATA_INDEX_QUARKUS_PROFILE"
    value: "http-events-support"
    description: "Allows to change the event connection type. The possible values are :`kafka-events-support` or `http-events-support`(default)"

modules:
  repositories:
    - path: modules
  install:
    - name: org.kie.kogito.system.user
    - name: org.kie.kogito.logging
    - name: org.kie.kogito.dynamic.resources
    - name: org.kie.kogito.launch.scripts
    - name: org.kie.kogito.dataindex.community.ephemeral
    - name: org.kie.kogito.dataindex.common
    - name: org.kie.kogito.security.custom.truststores

ports:
  - value: 8080

run:
  workdir: "/home/kogito"
  user: 1001
  cmd:
    - "/home/kogito/kogito-app-launch.sh"
