Chapter 1. Deploying Red Hat build of Quarkus applications to OpenShift Container Platform
Red Hat OpenShift Container Platform is a Kubernetes-based platform for developing and running containerized applications. Quarkus offers the ability to automatically generate OpenShift Container Platform resources based on sane defaults and user-supplied configuration.
As an application developer, you can deploy your Red Hat build of Quarkus applications to Red Hat OpenShift Container Platform. This functionality is provided by the quarkus-openshift
extension, which supports multiple deployment options:
1.1. Overview of OpenShift Container Platform build strategies
- Docker build
- This strategy builds the artifacts outside the OpenShift Container Platform cluster, locally or in a CI environment, and provides them to the OpenShift Container Platform build system together with a Dockerfile. The artifacts include JAR files or a native executable. The container gets built inside the OpenShift Container Platform cluster and is provided as an image stream.
The OpenShift Container Platform Docker build strategy is the preferred build strategy because it supports Quarkus applications targeted for JVM or compiled to native executables. However, for compatibility with earlier Quarkus versions, the default build strategy is S2I. To select the OpenShift Container Platform Docker build strategy, use the quarkus.openshift.build-strategy
property.
- Source to Image (S2I)
- The build process is performed inside the OpenShift Container Platform cluster. Red Hat build of Quarkus fully supports using S2I to deploy Red Hat build of Quarkus as a JVM application.
- Binary S2I
- This strategy uses a JAR file as input to the S2I build process, which speeds up the building and deploying of your application.
1.1.1. Build strategies supported by Quarkus
The following table outlines the build strategies that Red Hat build of Quarkus supports:
Build strategy | Support for Red Hat build of Quarkus tools | Support for JVM | Support for native | Support for JVM Serverless | Support for native Serverless |
---|---|---|---|---|---|
Docker build | YES | YES | YES | YES | YES |
S2I Binary | YES | YES | NO | NO | NO |
Source S2I | NO | YES | NO | NO | NO |
1.2. Bootstrapping the project
First, you need a new project that contains the OpenShift extension. Then, before you build and deploy our application, you must log into an OpenShift cluster.
1.2.1. Adding the OpenShift extension
To build and deploy your applications as a container image that runs inside your OpenShift Container Platform cluster, you must add the Red Hat build of Quarkus OpenShift extension quarkus-openshift
as a dependency to your project.
This extension also generates OpenShift Container Platform resources such as image streams, build configuration, deployment, and service definitions. If your application includes the quarkus-smallrye-health
extension, OpenShift Container Platform can access the health endpoint and verify the startup, liveness, and readiness of your application.
From Red Hat build of Quarkus 3.8, the DeploymentConfig
object, deprecated in OpenShift, is also deprecated in Red Hat build of Quarkus. Deployment
is the default and preferred deployment kind for the quarkus-openshift
extension. If you redeploy applications that you deployed before by using DeploymentConfig
, by default, those applications use Deployment
but do not remove the previous DeploymentConfig
. This leads to a deployment of both new and old applications, so, you must remove the old DeploymentConfig
manually. However, if you want to continue to use DeploymentConfig
, it is still possible to do so by explicitly setting quarkus.openshift.deployment-kind
to DeploymentConfig
.
Prerequisites
- You have a Quarkus Maven project.
Procedure
To add the
quarkus-openshift
extension to your project, use one of the following methods:Configure the
pom.xml
file:pom.xml
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-openshift</artifactId> </dependency>
Enter the following command on the OpenShift Container Platform CLI:
./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-openshift"
Enter the following command on the Quarkus CLI:
quarkus extension add 'quarkus-openshift'
1.3. Logging in to an OpenShift Container Platform cluster
You can log in to an OpenShift Container Platform cluster by using the OpenShift CLI (oc
). For more information, see Getting started with the OpenShift CLI:
Example: Log in by using the OpenShift CLI
oc login -u myUsername 1
- 1
- You are prompted for the required information such as server URL, password, and so on.
Alternatively, you can log in by using the API token:
Example: Log in by using the OpenShift CLI with API token
oc login --token=myToken --server=myServerUrl
You can request the token by using the Copy Login Command link in the OpenShift web console.
Finally, you do not need to use the OpenShift CLI at all. Instead, set the quarkus.kubernetes-client.api-server-url
config property and authenticate with the quarkus.kubernetes-client.token
, or quarkus.kubernetes-client.username
and quarkus.kubernetes-client.password
respectively:
Using the Quarkus CLI:
quarkus build quarkus deploy openshift
Using Maven:
./mvnw install -Dquarkus.kubernetes-client.api-server-url=myServerUrl -Dquarkus.kubernetes-client.token=myToken
Using Gradle:
./gradlew build -Dquarkus.kubernetes-client.api-server-url=myServerUrl -Dquarkus.kubernetes-client.token=myToken
1.3.1. Switching to the required OpenShift Container Platform project
You can use the Red Hat OpenShift Container Platform CLI to create applications and manage your OpenShift Container Platform projects. Use the information provided to create an OpenShift Container Platform project or to switch to an existing one.
Prerequisites
-
You have access to an OpenShift Container Platform cluster and the latest compatible version of the
oc
tool installed.
Procedure
Log in to the
oc
tool:oc login
To show the current project space, enter the following command:
oc project -q
Use one of the following steps to go to the required OpenShift Container Platform project:
If the project already exists, switch to the project:
oc project <project_name>
If the project does not exist, create a new project:
oc new-project <project_name>
1.4. Building and deploying
You can build and deploy by using any of the following deployment options:
1.4.1. Non-S2I builds
The OpenShift extension is configured to use container-image-s2i. However, it is still possible to use other container image extensions, such as:
When a non-s2i container image extension is used, an ImageStream
is created that is pointing to an external dockerImageRepository
. The image is built and pushed to the registry and the ImageStream
populates the tags that are available in the dockerImageRepository
.
To select which extension will be used for building the image:
quarkus.container-image.builder=docker
or
quarkus.container-image.builder=jib
1.5. Customizing
All available customization options are available in the OpenShift configuration options.
Some examples are provided in the sections below:
1.5.1. Exposing routes
To expose a Route
for the Quarkus application:
quarkus.openshift.route.expose=true
You do not need to add this property in the application.properties
file. Instead, you can pass it as a command-line argument:
./mvnw clean package -Dquarkus.openshift.route.expose=true
The same applies to all properties listed below.
1.5.1.1. Securing the Route resource
To secure the incoming connections, OpenShift provides several types of TLS termination to serve certifications.
For more information about how to secure routes, see OpenShift Container Platform documentation.
The following example shows how to configure a secured Route by using passthrough termination by adding the "quarkus.openshift.route.tls" properties:
quarkus.openshift.route.expose=true quarkus.openshift.route.target-port=https ## Route TLS configuration: quarkus.openshift.route.tls.termination=passthrough quarkus.openshift.route.tls.insecure-edge-termination-policy=None
1.5.2. Labels
To add a label in the generated resources:
quarkus.openshift.labels.foo=bar
1.5.3. Annotations
To add an annotation in the generated resources:
quarkus.openshift.annotations.foo=bar
1.5.4. Environment variables
OpenShift Container Platform provides multiple ways of defining environment variables:
- Key/value pairs
- Import all values from a Secret or ConfigMap
- Interpolate a single value identified by a given field in a Secret or ConfigMap
- Interpolate a value from a field within the same resource
1.5.4.1. Environment variables from key/value pairs
To add a key/value pair as an environment variable in the generated resources:
quarkus.openshift.env.vars.my-env-var=foobar
The above command adds MY_ENV_VAR=foobar
as an environment variable. The key my-env-var
will convert to uppercase and dashes will be replaced by underscores resulting in MY_ENV_VAR
.
1.5.4.2. Environment variables from Secret
To add all key/value pairs of Secret
as environment variables, apply the following configuration, separating each Secret
to be used as source by a comma (,
):
quarkus.openshift.env.secrets=my-secret,my-other-secret
which generates the following in the container definition:
envFrom: - secretRef: name: my-secret optional: false - secretRef: name: my-other-secret optional: false
The following code extracts a value identified by the keyName
field from the my-secret
Secret into a foo
environment variable:
quarkus.openshift.env.mapping.foo.from-secret=my-secret quarkus.openshift.env.mapping.foo.with-key=keyName
which generates the following in the env
section of your container:
- env: - name: FOO valueFrom: secretKeyRef: key: keyName name: my-secret optional: false
1.5.4.3. Environment variables from ConfigMap
To add all key/value pairs from ConfigMap
as environment variables, apply the following configuration, separating each ConfigMap
to be used as source by a comma (,
):
quarkus.openshift.env.configmaps=my-config-map,another-config-map
which generates the following in the container definition:
envFrom: - configMapRef: name: my-config-map optional: false - configMapRef: name: another-config-map optional: false
The following extracts a value identified by the keyName
field from the my-config-map
ConfigMap into a foo
environment variable:
quarkus.openshift.env.mapping.foo.from-configmap=my-configmap quarkus.openshift.env.mapping.foo.with-key=keyName
which generates the following in the env
section of your container:
- env: - name: FOO valueFrom: configMapKeyRef: key: keyName name: my-configmap optional: false
1.5.4.4. Environment variables from fields
You can also use the value from another field to add a new environment variable by specifying the path of the field to be used as a source. For example:
quarkus.openshift.env.fields.foo=metadata.name
1.5.4.5. Changing the generated deployment resource
Beside generating a Deployment
resource, you can also choose to get either a DeploymentConfig
, StatefulSet
, Job
, or a CronJob
resource instead by using application.properties
:
quarkus.openshift.deployment-kind=StatefulSet
1.5.4.5.1. Generating Job resources
If you want to generate a Job resource, you need to add the following property by using the application.properties
:
quarkus.openshift.deployment-kind=Job
If you are using the Picocli extension, by default the Job resource will be generated.
You can provide the arguments that Kubernetes Job uses through the quarkus.openshift.arguments
property. For example, adding the property quarkus.openshift.arguments=A,B
.
Finally, the Kubernetes job will be launched every time that it is installed in OpenShift. For more information about how to run Kubernetes jobs, see Running an example job.
You can configure the rest of the Kubernetes Job configuration by using the properties under quarkus.openshift.job.xxx
. For more information, see quarkus.openshift.job.parallelism.
1.5.4.5.2. Generating CronJob resources
If you want to generate a CronJob resource, you need to add the following property by using the application.properties
file:
quarkus.openshift.deployment-kind=CronJob # Cron expression to run the job every hour quarkus.openshift.cron-job.schedule=0 * * * *
CronJob resources require the Cron expression to specify when to launch the job through the quarkus.openshift.cron-job.schedule
property. If thet are not provided, the build fails.
You can configure the rest of the Kubernetes CronJob configuration by using the properties under quarkus.openshift.cron-job.xxx
(for more information, see quarkus.openshift.cron-job.parallelism).
1.5.4.6. Validation
A conflict between two definitions, for example, mistakenly assigning both a value and specifying that a variable is derived from a field, results in an error being thrown at build time. You can fix the issue before you deploy your application to your cluster, where it might be more difficult to diagnose the source of the issue.
Similarly, two redundant definitions, for example, defining an injection from the same secret twice, does not cause an issue but reports a warning to inform you that you might not have intended to duplicate that definition.
1.5.4.6.1. Backwards compatibility
Previous versions of the OpenShift extension supported a different syntax to add environment variables. The older syntax is still supported but is deprecated, and it is advised that you migrate to the new syntax.
Old | New | ||
Plain variable |
|
| |
From field |
|
| |
All from |
|
| |
All from |
|
| |
From one |
|
| |
|
| ||
From one |
|
| |
|
|
If you redefine the same variable by using the new syntax while keeping the old syntax, only the new version is kept, and a warning will be issued to alert you of the problem. For example, if you define both `quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension generates an environment variable `MY_ENV_VAR=newValue` and issues a warning.
1.5.5. Mounting volumes
The OpenShift extension allows you to configure both volumes and mounts for the application. You can mount any volume with a simple configuration:
quarkus.openshift.mounts.my-volume.path=/where/to/mount
This will add a mount to my pod for volume my-volume
to path /where/to/mount
. You can configure the volumes themselves as shown in the sections below:
1.5.5.1. Secret volumes
quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret
1.5.5.2. ConfigMap volumes
quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-config-map
1.5.5.3. Persistent volume claims
quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc
1.6. Configuration Reference
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property | Type | Default |
The optional list of Secret names to load environment variables from.
Environment variable: | list of string | |
The optional list of ConfigMap names to load environment variables from.
Environment variable: | list of string | |
The map associating environment variable names to their associated field references they take their value from.
Environment variable: | Map<String,String> | |
The environment variable value
Environment variable: | string | |
The optional name of the Secret from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The optional name of the ConfigMap from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The key identifying the field from which the value is extracted.
Environment variable: | string |
required
|
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The name of the group this component belongs too.
Environment variable: | string | |
The name of the application. This value will be used for naming Kubernetes resources like: - Deployment - Service and so on …
Environment variable: | string | |
The version of the application.
Environment variable: | string | |
The namespace the generated resources should belong to. If not value is set, then the 'namespace' field will not be added to the 'metadata' section of the generated manifests. This in turn means that when the manifests are applied to a cluster, the namespace will be resolved from the current Kubernetes context (see organize-cluster-access-kubeconfig for more details).
Environment variable: | string | |
Custom labels to add to all resources.
Environment variable: | Map<String,String> | |
Custom annotations to add to all resources.
Environment variable: | Map<String,String> | |
The type of service that will be generated for the application
Environment variable: |
|
|
Whether to add the build timestamp to the Kubernetes annotations This is a very useful way to have manifests of successive builds of the same application differ - thus ensuring that Kubernetes will apply the updated resources.
Environment variable: | boolean |
|
If
Environment variable: | boolean |
|
If
Environment variable: | boolean |
|
Working directory.
Environment variable: | string | |
The commands.
Environment variable: | list of string | |
The arguments.
Environment variable: | list of string | |
The service account.
Environment variable: | string | |
If set, it will change the name of the container according to the configuration.
Environment variable: | string | |
The port number. Refers to the container port.
Environment variable: | int | |
The host port.
Environment variable: | int | |
The application path (refers to web application path).
Environment variable: | string |
|
The protocol.
Environment variable: |
|
|
The nodePort to which this port should be mapped to. This only takes affect when the serviceType is set to node-port.
Environment variable: | int | |
If enabled, the port will be configured to use the schema HTTPS.
Environment variable: | boolean |
|
Image pull policy.
Environment variable: |
|
|
The image pull secret.
Environment variable: | list of string | |
Enable generation of image pull secret, when the container image username and password are provided.
Environment variable: | boolean |
|
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
When true (the default), emit a set of annotations to identify services that should be scraped by prometheus for metrics. In configurations that use the Prometheus operator with ServiceMonitor, annotations may not be necessary.
Environment variable: | boolean |
|
When true (the default), emit a set of annotations to identify services that should be scraped by prometheus for metrics. In configurations that use the Prometheus operator with ServiceMonitor, annotations may not be necessary.
Environment variable: | boolean |
|
Define the annotation prefix used for scrape values, this value will be used as the base for other annotation name defaults. Altering the base for generated annotations can make it easier to define re-labeling rules and avoid unexpected knock-on effects. The default value is
Environment variable: | string |
|
Define the annotation used to indicate services that should be scraped. By default,
Environment variable: | string | |
Define the annotation used to indicate the path to scrape. By default,
Environment variable: | string | |
Define the annotation used to indicate the port to scrape. By default,
Environment variable: | string | |
Define the annotation used to indicate the scheme to use for scraping By default,
Environment variable: | string | |
The name of the volumeName to mount.
Environment variable: | string | |
The path to mount.
Environment variable: | string | |
Path within the volumeName from which the container’s volumeName should be mounted.
Environment variable: | string | |
ReadOnly.
Environment variable: | boolean |
|
The name of the secret to mount.
Environment variable: | string |
required
|
Default mode. When specifying an octal number, leading zero must be present.
Environment variable: | string |
|
The path where the file will be mounted.
Environment variable: | string |
required
|
It must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used.
Environment variable: | int |
|
Optional
Environment variable: | boolean |
|
The name of the ConfigMap to mount.
Environment variable: | string |
required
|
Default mode. When specifying an octal number, leading zero must be present.
Environment variable: | string |
|
The path where the file will be mounted.
Environment variable: | string |
required
|
It must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used.
Environment variable: | int |
|
Optional
Environment variable: | boolean |
|
EmptyDir volumes.
Environment variable: | list of string | |
Git repository URL.
Environment variable: | string |
required
|
The directory of the repository to mount.
Environment variable: | string | |
The commit hash to use.
Environment variable: | string | |
The name of the claim to mount.
Environment variable: | string |
required
|
Default mode. When specifying an octal number, leading zero must be present.
Environment variable: | string |
|
Optional
Environment variable: | boolean |
|
The name of the disk to mount.
Environment variable: | string |
required
|
The partition.
Environment variable: | int | |
Filesystem type.
Environment variable: | string |
|
Whether the volumeName is read only or not.
Environment variable: | boolean |
|
The share name.
Environment variable: | string |
required
|
The secret name.
Environment variable: | string |
required
|
Whether the volumeName is read only or not.
Environment variable: | boolean |
|
The name of the disk to mount.
Environment variable: | string |
required
|
The URI of the vhd blob object OR the resourceID of an Azure managed data disk if Kind is Managed
Environment variable: | string |
required
|
Kind of disk.
Environment variable: |
|
|
Disk caching mode.
Environment variable: |
|
|
File system type.
Environment variable: | string |
|
Whether the volumeName is read only or not.
Environment variable: | boolean |
|
The optional list of Secret names to load environment variables from.
Environment variable: | list of string | |
The optional list of ConfigMap names to load environment variables from.
Environment variable: | list of string | |
The map associating environment variable names to their associated field references they take their value from.
Environment variable: | Map<String,String> | |
The environment variable value
Environment variable: | string | |
The optional name of the Secret from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The optional name of the ConfigMap from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The key identifying the field from which the value is extracted.
Environment variable: | string |
required
|
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The container image.
Environment variable: | string | |
Working directory.
Environment variable: | string | |
The commands
Environment variable: | list of string | |
The arguments
Environment variable: | list of string | |
The service account.
Environment variable: | string | |
The host under which the application is going to be exposed.
Environment variable: | string | |
The port number. Refers to the container port.
Environment variable: | int | |
The host port.
Environment variable: | int | |
The application path (refers to web application path).
Environment variable: | string |
|
The protocol.
Environment variable: |
|
|
The nodePort to which this port should be mapped to. This only takes affect when the serviceType is set to node-port.
Environment variable: | int | |
If enabled, the port will be configured to use the schema HTTPS.
Environment variable: | boolean |
|
Image pull policy.
Environment variable: |
|
|
The image pull secrets.
Environment variable: | list of string | |
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The name of the volumeName to mount.
Environment variable: | string | |
The path to mount.
Environment variable: | string | |
Path within the volumeName from which the container’s volumeName should be mounted.
Environment variable: | string | |
ReadOnly.
Environment variable: | boolean |
|
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
The optional list of Secret names to load environment variables from.
Environment variable: | list of string | |
The optional list of ConfigMap names to load environment variables from.
Environment variable: | list of string | |
The map associating environment variable names to their associated field references they take their value from.
Environment variable: | Map<String,String> | |
The environment variable value
Environment variable: | string | |
The optional name of the Secret from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The optional name of the ConfigMap from which a value is to be extracted. Mutually exclusive with
Environment variable: | string | |
The key identifying the field from which the value is extracted.
Environment variable: | string |
required
|
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The optional prefix to use when adding the environment variable to the container.
Environment variable: | string | |
The container image.
Environment variable: | string | |
Working directory.
Environment variable: | string | |
The commands
Environment variable: | list of string | |
The arguments
Environment variable: | list of string | |
The service account.
Environment variable: | string | |
The host under which the application is going to be exposed.
Environment variable: | string | |
The port number. Refers to the container port.
Environment variable: | int | |
The host port.
Environment variable: | int | |
The application path (refers to web application path).
Environment variable: | string |
|
The protocol.
Environment variable: |
|
|
The nodePort to which this port should be mapped to. This only takes affect when the serviceType is set to node-port.
Environment variable: | int | |
If enabled, the port will be configured to use the schema HTTPS.
Environment variable: | boolean |
|
Image pull policy.
Environment variable: |
|
|
The image pull secrets.
Environment variable: | list of string | |
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The port number to use when configuring the
Environment variable: | int | |
The port name for selecting the port of the
Environment variable: | string | |
The http path to use for the probe. For this to work, the container port also needs to be set. Assuming the container port has been set (as per above comment), if execAction or tcpSocketAction are not set, an HTTP probe will be used automatically even if no path is set (which will result in the root path being used). If Smallrye Health is used, the path will automatically be set according to the health check path.
Environment variable: | string | |
The scheme of the
Environment variable: | string | |
The command to use for the probe.
Environment variable: | string | |
The tcp socket to use for the probe (the format is host:port).
Environment variable: | string | |
The gRPC port to use for the probe (the format is either port or port:service).
Environment variable: | string | |
If enabled and
Environment variable: | boolean |
|
The amount of time to wait before starting to probe.
Environment variable: |
| |
The period in which the action should be called.
Environment variable: |
| |
The amount of time to wait for each action.
Environment variable: |
| |
The success threshold to use.
Environment variable: | int |
|
The failure threshold to use.
Environment variable: | int |
|
The name of the volumeName to mount.
Environment variable: | string | |
The path to mount.
Environment variable: | string | |
Path within the volumeName from which the container’s volumeName should be mounted.
Environment variable: | string | |
ReadOnly.
Environment variable: | boolean |
|
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
The ip address.
Environment variable: | string | |
The hostnames to resolve to the ip.
Environment variable: | list of string | |
The key of the nodeSelector.
Environment variable: | string |
required
|
The value of the nodeSelector.
Environment variable: | string |
required
|
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
CPU Requirements
Environment variable: | string | |
Memory Requirements
Environment variable: | string | |
If set, the secret will mounted to the application container and its contents will be used for application configuration.
Environment variable: | string | |
If set, the config map will be mounted to the application container and its contents will be used for application configuration.
Environment variable: | string | |
The name of the role.
Environment variable: | string | |
The namespace of the role.
Environment variable: | string | |
Labels to add into the Role resource.
Environment variable: | Map<String,String> | |
API groups of the policy rule.
Environment variable: | list of string | |
Non resource URLs of the policy rule.
Environment variable: | list of string | |
Resource names of the policy rule.
Environment variable: | list of string | |
Resources of the policy rule.
Environment variable: | list of string | |
Verbs of the policy rule.
Environment variable: | list of string | |
The name of the cluster role.
Environment variable: | string | |
Labels to add into the ClusterRole resource.
Environment variable: | Map<String,String> | |
API groups of the policy rule.
Environment variable: | list of string | |
Non resource URLs of the policy rule.
Environment variable: | list of string | |
Resource names of the policy rule.
Environment variable: | list of string | |
Resources of the policy rule.
Environment variable: | list of string | |
Verbs of the policy rule.
Environment variable: | list of string | |
The name of the service account.
Environment variable: | string | |
The namespace of the service account.
Environment variable: | string | |
Labels of the service account.
Environment variable: | Map<String,String> | |
If true, this service account will be used in the generated Deployment resource.
Environment variable: | boolean | |
Name of the RoleBinding resource to be generated. If not provided, it will use the application name plus the role ref name.
Environment variable: | string | |
Labels to add into the RoleBinding resource.
Environment variable: | Map<String,String> | |
The name of the Role resource to use by the RoleRef element in the generated Role Binding resource. By default, it’s "view" role name.
Environment variable: | string | |
If the Role sets in the
Environment variable: | boolean | |
The "name" resource to use by the Subject element in the generated Role Binding resource.
Environment variable: | string | |
The "kind" resource to use by the Subject element in the generated Role Binding resource. By default, it uses the "ServiceAccount" kind.
Environment variable: | string |
|
The "apiGroup" resource that matches with the "kind" property. By default, it’s empty.
Environment variable: | string | |
The "namespace" resource to use by the Subject element in the generated Role Binding resource. By default, it will use the same as provided in the generated resources.
Environment variable: | string | |
Name of the ClusterRoleBinding resource to be generated. If not provided, it will use the application name plus the role ref name.
Environment variable: | string | |
Labels to add into the RoleBinding resource.
Environment variable: | Map<String,String> | |
The name of the ClusterRole resource to use by the RoleRef element in the generated ClusterRoleBinding resource.
Environment variable: | string |
required
|
The "name" resource to use by the Subject element in the generated Role Binding resource.
Environment variable: | string | |
The "kind" resource to use by the Subject element in the generated Role Binding resource. By default, it uses the "ServiceAccount" kind.
Environment variable: | string |
|
The "apiGroup" resource that matches with the "kind" property. By default, it’s empty.
Environment variable: | string | |
The "namespace" resource to use by the Subject element in the generated Role Binding resource. By default, it will use the same as provided in the generated resources.
Environment variable: | string | |
The SELinux level label that applies to the container.
Environment variable: | string | |
The SELinux role label that applies to the container.
Environment variable: | string | |
The SELinux type label that applies to the container.
Environment variable: | string | |
The SELinux user label that applies to the container.
Environment variable: | string | |
The name of the GMSA credential spec to use.
Environment variable: | string | |
GMSACredentialSpec is where the GMSA admission webhook (windows-gsma) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.
Environment variable: | string | |
The UserName in Windows to run the entrypoint of the container process.
Environment variable: | string | |
HostProcess determines if a container should be run as a 'Host Process' container.
Environment variable: | boolean | |
The UID to run the entrypoint of the container process.
Environment variable: | long | |
The GID to run the entrypoint of the container process.
Environment variable: | long | |
Indicates that the container must run as a non-root user.
Environment variable: | boolean | |
A list of groups applied to the first process run in each container, in addition to the container’s primary GID. If unspecified, no groups will be added to any container.
Environment variable: | list of long | |
A special supplemental group that applies to all containers in a pod.
Environment variable: | long | |
Sysctls hold a list of namespaced sysctls used for the pod.
Environment variable: | Map<String,String> | |
It holds policies that will be used for applying fsGroup to a volume when volume is mounted. Values: OnRootMismatch, Always
Environment variable: | on-root-mismatch: It indicates that volume’s ownership and permissions will be changed only when permission and ownership of root directory does not match with expected permissions on the volume. always: It indicates that volume’s ownership and permissions should always be changed whenever volume is mounted inside a Pod. This the default behavior. | |
Switch used to control whether non-idempotent fields are included in generated kubernetes resources to improve git-ops compatibility.
Environment variable: | boolean |
|
Whether the vcs-uri annotation should be added to the generated configuration.
Environment variable: | boolean |
|
Optional override of the vcs-uri annotation.
Environment variable: | string | |
The OpenShift flavor / version to use. Older versions of OpenShift have minor differences in the labels and fields they support. This option allows users to have their manifests automatically aligned to the OpenShift 'flavor' they use.
Environment variable: |
|
|
The kind of the deployment resource to use. Supported values are 'Deployment', 'StatefulSet', 'Job', 'CronJob' and 'DeploymentConfig'. Defaults to 'DeploymentConfig' if
Environment variable: |
| |
The number of desired pods
Environment variable: | int |
|
The nodePort to set when serviceType is set to nodePort
Environment variable: | int | |
If true, the service will be exposed
Environment variable: | boolean |
|
The host under which the application is going to be exposed
Environment variable: | string | |
The target named port. If not provided, it will be deducted from the Service resource ports. Options are: "http" and "https".
Environment variable: | string |
|
Custom annotations to add to exposition (route or ingress) resources
Environment variable: | Map<String,String> | |
Custom labels to add to exposition (route or ingress) resources
Environment variable: | Map<String,String> | |
The cert authority certificate contents.
Environment variable: | string | |
The certificate contents.
Environment variable: | string | |
The contents of the ca certificate of the final destination.
Environment variable: | string | |
The desired behavior for insecure connections to a route.
Environment variable: | string | |
The key file contents.
Environment variable: | string | |
The termination type.
Environment variable: | string | |
Specifies the maximum desired number of pods the job should run at any given time.
Environment variable: | int | |
Specifies the desired number of successfully finished pods the job should be run with.
Environment variable: | int | |
CompletionMode specifies how Pod completions are tracked.
Environment variable: |
|
|
Specifies the number of retries before marking this job failed.
Environment variable: | int | |
Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer.
Environment variable: | long | |
Limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted.
Environment variable: | int | |
Suspend specifies whether the Job controller should create Pods or not.
Environment variable: | boolean |
|
Restart policy when the job container fails.
Environment variable: |
|
|
The schedule in Cron format, see Cron.
Environment variable: | string | |
The time zone for the job schedule. The default value is the local time of the kube-controller-manager.
Environment variable: | string | |
ConcurrencyPolicy describes how the job will be handled.
Environment variable: |
|
|
Deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.
Environment variable: | long | |
The number of failed finished jobs to retain. The default value is 1.
Environment variable: | int | |
The number of successful finished jobs to retain. The default value is 3.
Environment variable: | int | |
Specifies the maximum desired number of pods the job should run at any given time.
Environment variable: | int | |
Specifies the desired number of successfully finished pods the job should be run with.
Environment variable: | int | |
CompletionMode specifies how Pod completions are tracked.
Environment variable: |
|
|
Specifies the number of retries before marking this job failed.
Environment variable: | int | |
Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer.
Environment variable: | long | |
Limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted.
Environment variable: | int | |
Suspend specifies whether the Job controller should create Pods or not.
Environment variable: | boolean |
|
Restart policy when the job container fails.
Environment variable: |
|
|
If true, the debug mode in pods will be enabled.
Environment variable: | boolean |
|
The transport to use.
Environment variable: | string |
|
If enabled, it means the JVM will wait for the debugger to attach before executing the main class. If false, the JVM will immediately execute the main class, while listening for the debugger connection.
Environment variable: | string |
|
It specifies the address at which the debug socket will listen.
Environment variable: | int |
|
If true, the init task will be generated. Otherwise, the init task resource generation will be skipped.
Environment variable: | boolean |
|
The init task image to use by the init container.
Environment variable: | string |
|
Image pull policy.
Environment variable: |
|
|
If true, the init task will be generated. Otherwise, the init task resource generation will be skipped.
Environment variable: | boolean |
|
The init task image to use by the init container.
Environment variable: | string |
|
Image pull policy.
Environment variable: |
|
|
If set to true, Quarkus will attempt to deploy the application to the target Kubernetes cluster
Environment variable: | boolean |
|
If deploy is enabled, it will follow this strategy to update the resources to the target Kubernetes cluster.
Environment variable: |
|
|
To write duration values, use the standard java.time.Duration
format. See the Duration#parse() Java API documentation for more information.
You can also use a simplified format, starting with a number:
- If the value is only a number, it represents time in seconds.
-
If the value is a number followed by
ms
, it represents time in milliseconds.
In other cases, the simplified format is translated to the java.time.Duration
format for parsing:
-
If the value is a number followed by
h
,m
, ors
, it is prefixed withPT
. -
If the value is a number followed by
d
, it is prefixed withP
.