Skip to content

Commit

Permalink
Recreate cekit descriptors and prod modules removed from upstream (#6)
Browse files Browse the repository at this point in the history
* restore cekit descriptors for productized builds

* recreate prod modules that were removed from upstream

* update versions to OSL 1.32.0

* use kogito.maven 3.9.3 module for swf-builder and swf-devmode images

* add org.kie.kogito.maven.prod module which gets maven from Brew to avoid license complaince problems (lookaside cache)
  • Loading branch information
rgdoliveira authored Jan 24, 2024
1 parent 2552312 commit ffc0c60
Show file tree
Hide file tree
Showing 11 changed files with 567 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
#
# 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.
#


#import
source "${KOGITO_HOME}"/launch/logging.sh

if [ "${SCRIPT_DEBUG}" = "true" ] ; then
set -x
SHOW_JVM_SETTINGS="-XshowSettings:properties"
log_info "Script debugging is enabled, allowing bash commands and their arguments to be printed as they are executed"
log_info "JVM settings debug is enabled."
printenv
fi

# Configuration scripts
# Any configuration script that needs to run on image startup must be added here.
CONFIGURE_SCRIPTS=(
"${KOGITO_HOME}"/launch/kogito-data-index-common.sh
"${KOGITO_HOME}"/launch/configure-custom-truststore.sh
)
source "${KOGITO_HOME}"/launch/configure.sh
#############################################

DYNAMIC_RESOURCES_OPTS="$(${JBOSS_CONTAINER_JAVA_JVM_MODULE}/java-default-options) $(${JBOSS_CONTAINER_JAVA_JVM_MODULE}/debug-options)"

# shellcheck disable=SC2086
exec java ${SHOW_JVM_SETTINGS} ${DYNAMIC_RESOURCES_OPTS} ${JAVA_OPTIONS} ${KOGITO_DATA_INDEX_PROPS} ${CUSTOM_TRUSTSTORE_ARGS} \
-Djava.library.path="${KOGITO_HOME}"/lib \
-Dquarkus.http.host=0.0.0.0 \
-Dquarkus.http.port=8080 \
-jar "${KOGITO_HOME}"/bin/quarkus-app/quarkus-run.jar

31 changes: 31 additions & 0 deletions modules/prod/kogito-data-index-ephemeral/configure
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/sh
#
# 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.
#
set -e

SOURCES_DIR=/tmp/artifacts
SCRIPT_DIR=$(dirname "${0}")
ADDED_DIR="${SCRIPT_DIR}"/added

mkdir -p "${KOGITO_HOME}"/bin/quarkus-app
unzip "${SOURCES_DIR}"/data-index-service-inmemory-image-build.zip -d "${KOGITO_HOME}"/bin/quarkus-app/

cp -v "${ADDED_DIR}"/kogito-app-launch.sh "${KOGITO_HOME}"
chmod +x-w "${KOGITO_HOME}"/kogito-app-launch.sh

34 changes: 34 additions & 0 deletions modules/prod/kogito-data-index-ephemeral/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#
# 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: org.kie.kogito.dataindex.prod.ephemeral
version: "1.32.0"

artifacts:
# data-index-service-inmemory-1.44.0.Final-redhat-00005-image-build.zip
- name: data-index-service-inmemory-image-build.zip
md5: 0a20dc69640c479331de64c9ae237b79

execute:
- script: configure

packages:
install:
- pam

31 changes: 31 additions & 0 deletions modules/prod/kogito-maven/3.9.x-prod/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# 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: org.kie.kogito.maven.prod
version: "3.9.3"

envs:
- name: "MAVEN_VERSION"
value: "3.9.3"

artifacts:
- name: apache-maven-3.9.3-bin.tar.gz
url: https://download.devel.redhat.com/brewroot/packages/org.apache.maven-apache-maven/3.9.3/1/maven/org/apache/maven/apache-maven/3.9.3/apache-maven-3.9.3-bin.tar.gz
md5: f3fbff830d9a0dc2c6c99a76e27d0c01

32 changes: 32 additions & 0 deletions modules/prod/kogito-swf-builder-runtime/configure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
#
# 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.
#

set -e

SOURCES_DIR=/tmp/artifacts

mkdir -p "${KOGITO_HOME}"/.m2/repository

# Unzip Quarkus app and Maven repository
unzip "${SOURCES_DIR}"/kogito-builder-quarkus-app-image-build.zip -d "${KOGITO_HOME}"
unzip "${SOURCES_DIR}"/kogito-builder-maven-repository-image-build.zip -d "${KOGITO_HOME}"/.m2/repository

chown -R 1001:0 "${KOGITO_HOME}"
chmod -R ug+rwX "${KOGITO_HOME}"
33 changes: 33 additions & 0 deletions modules/prod/kogito-swf-builder-runtime/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#
# 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: org.kie.kogito.swf.builder.runtime.osl
version: "1.32.0"
description: "OpenShift Serverless Logic builder module with required extensions"

artifacts:
- name: kogito-builder-quarkus-app-image-build.zip
# kogito-builder-quarkus-app-1.44.0.Final-redhat-00005-image-build.zip
md5: d892071be9df1426a6233bf95a777a43
- name: kogito-builder-maven-repository-image-build.zip
# kogito-builder-maven-repository-1.44.0.Final-redhat-00005-image-build.zip
md5: 5e6f90ef7e6f9cc15dd87146e55e708f

execute:
- script: configure.sh
31 changes: 31 additions & 0 deletions modules/prod/kogito-swf-devmode-runtime/configure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
#
# 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.
#

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCES_DIR=/tmp/artifacts

# Unzip Quarkus app and Maven repository
unzip "${SOURCES_DIR}"/kogito-devmode-quarkus-app-image-build.zip -d "${KOGITO_HOME}"
unzip "${SOURCES_DIR}"/kogito-devmode-maven-repository-image-build.zip -d "${KOGITO_HOME}"/.m2/repository

chown -R 1001:0 "${KOGITO_HOME}"
chmod -R ug+rwX "${KOGITO_HOME}"
50 changes: 50 additions & 0 deletions modules/prod/kogito-swf-devmode-runtime/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#
# 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: org.kie.kogito.swf.devmode.runtime.osl
version: "1.32.0"
description: "OpenShift Serverless Logic devmode with required extensions"

envs:
- name: QUARKUS_KOGITO_DEVSERVICES_ENABLED
description: Whether to enable Kogito Devservices or not. Default to "false" since Data Index needs Docker.
value: "false"
- name: QUARKUS_DEVSERVICES_ENABLED
description: Whether to enable Quarkus Devservices or not. Default to "false" since the Kafka broker needs Docker.
value: "false"
- name: QUARKUS_KUBERNETES_CLIENT_DEVSERVICES_ENABLED
description: Whether to enable Kogito Devservices or not. Default to "false" since Kubernetes objects are managed by the Kogito Serverless Operator.
value: "false"
- name: QUARKUS_CONTINUOUS_TESTING
description: Whether to enable Quarkus continous testing on DevMode or not. Default to "disabled".
value: "disabled"
- name: KOGITO_CODEGEN_PROCESS_FAILONERROR
description: Boolean flag that will prevent Dev Mode to crash if the provided workflow is wrong.
value: "false"

artifacts:
- name: kogito-devmode-quarkus-app-image-build.zip
# kogito-devmode-quarkus-app-1.44.0.Final-redhat-00005-image-build.zip
md5: af446cec2a7da68c1d1565b7a804e50c
- name: kogito-devmode-maven-repository-image-build.zip
# kogito-devmode-maven-repository-1.44.0.Final-redhat-00005-image-build.zip
md5: 8d8bf6b104da6b6dc0dd81c415231c39

execute:
- script: configure.sh
94 changes: 94 additions & 0 deletions prod-logic-data-index-ephemeral-rhel8-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#
# 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: "openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8"
version: "1.32.0"
from: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
description: "Red Hat build of Runtime image for Kogito Data Index Service for ephemeral PostgreSQL persistence provider"

labels:
- name: "com.redhat.component"
value: "openshift-serverless-1-logic-data-index-ephemeral-rhel8-container"
- name: "maintainer"
value: "serverless-logic <[email protected]>"
- name: "io.k8s.description"
value: "Red Hat build of Runtime image for Kogito Data Index Service for ephemeral PostgreSQL persistence provider"
- name: "io.k8s.display-name"
value: "Red Hat build of Kogito Data Index Service - ephemeral PostgreSQL"
- name: "io.openshift.tags"
value: "logic-data-index,kogito,data-index,data-index-ephemeral"
- name: "io.openshift.expose-services"
value: "8080:http"
- name: "org.kie.kogito.version"
value: "999-SNAPSHOT"

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.image.dependencies
- name: org.kie.kogito.system.user
- name: org.kie.kogito.logging
- name: org.kie.kogito.openjdk.headless
version: "17"
- name: org.kie.kogito.dynamic.resources
- name: org.kie.kogito.launch.scripts
- name: org.kie.kogito.dataindex.prod.ephemeral
version: "1.32.0"
- name: org.kie.kogito.dataindex.common
- name: org.kie.kogito.security.custom.truststores
- name: org.kie.kogito.pkg-update

packages:
manager: microdnf
content_sets_file: content_sets.yaml

osbs:
configuration:
container:
platforms:
only:
- x86_64
- aarch64
- ppc64le
compose:
pulp_repos: true
extra_dir: osbs-extra/logic-data-index-ephemeral-rhel8
repository:
name: containers/openshift-serverless-1-logic-data-index-ephemeral
branch: openshift-serverless-1.32-rhel-8

ports:
- value: 8080

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

Loading

0 comments on commit ffc0c60

Please sign in to comment.