Gateway

This chart deploys and executes a stateful set of API gateways using gradle run command with build.gradle and application.properties files populated using given value parameters.

Gateway definition values are typically loaded from a url when calling this chart. The chart also deploys a headless service as well as a load balancer service for external access.

Containers

Init Container

Chart contains an initialization container, which retrieves certifications required.

Main Container

Main container of this chart is a Java based process, which executes actual gateway and typically has liveness probes enabled.

Configuration

Local Configuration

Chart contains:

  • 1 x config map containing build/execution files mounted on /app/config

  • 1 x environment config map that can be used to add environment variables

  • 1 x secret that can be used to add secret files mounted on /app/secrets

  • 1 x environment secret that can be used to add environment variables

Global Configuration

Chart containers also have access to:

  • global-config: Mounted on /app/globalconfig including key-value pairs and extra lines to include in application.properties files

  • global-config-env: A config map that can be used to add environment variables for all namespace deployments

  • global-secrets: Mounted on /app/globalsecrets including key-secret pairs and extra lines to include in application.properties files

  • global-secrets-env: A secret that can be used to add environment variables for all namespace deployments

Configuration

The following table lists the configurable parameters of the Controller-gateway chart and their default values.

Parameter
Description
Default

id

unique id of the gateway

"x"

namespace

namespace to deploy on

"controller"

tier

tier annotation to use for deployment

"controller"

unit

unit annotation to use for deployment

"gateway"

scope

scope annotation to use for deployment

"admin"

language

language annotation to use for deployment

"java"

image

docker image to use for main container

"gradle:openj9"

imagePullPolicy

"IfNotPresent"

cloud

cloud vendor to use for deployment (e.g. gcp, aws)

"TBD"

poolSelector

node pool selector annotation specific to cloud vendor

"TBD"

pool

node pool to deploy on

"admin-gateway-pool"

strategyType

deployment strategy to use

"Recreate"

replicaCount

number of replicas to deploy

1

podManagementPolicy

policy for launching / terminating stateful set pods

"Parallel"

useProbes

whether main container should use liveness, etc. probes

true

useOTLP

whether opentelemetry should be enabled

false

otlpInstrument

opentelemetry auto-instrumentation

"monitoring/grpc-instrumentation"

lbPort

port for load balancer service

443

lbAnnotations.dummy

"yes"

jvmArgs

JVM parameters such as -Xms128m

""

initMemoryRequest

memory request for init container

"256Mi"

initCpuRequest

cpu request for init container

"250m"

initDiskRequest

ephemeral storage request for init container

"0"

initMemoryLimit

memory limit for init container

"512Mi"

initCpuLimit

cpu limit for init container

"500m"

initDiskLimit

ephemeral storage limit for init container

"0"

memoryRequest

memory request for main container

"256Mi"

cpuRequest

cpu request for main container

"250m"

diskRequest

ephemeral storage request for main container

"0"

memoryLimit

memory limit for main container

"512Mi"

cpuLimit

cpu limit for main container

"500m"

diskLimit

ephemeral storage limit for main container

"0"

disableMavenCentral

whether gradle should access maven central

false

mavenUrl

url for Rierino maven packages

"https://maven.pkg.github.com/rierino/maven"

rierinoVersion

Rierino package version to deploy

"0.1.1"

application

application name to use

"TBD"

gatewayId

gateway id to use (as used in gateway system, channel, etc. configurations)

"TBD"

logLevel

logging level for the main container

"ERROR"

port

port to use for web services

0

scheme

scheme to use for web services

"HTTP"

useDiscovery

whether the gateway should use service discovery to access some runners

false

consulHost

Consul host (if useDiscovery)

"${dollar}{{rierino.system.consul.main.host}}"

consulPort

Consul port (if useDiscovery)

"${dollar}{{rierino.system.consul.main.port}}"

useCert

whether the gateway should generate and use a certificate (requires additional parameters)

false

valueLoaderClass

Java class name for key-value lookups

"com.rierino.runner.loader.PropertiesKVLoader"

valueLoaderProperties.path

File path for key-value lookups

"/app/globalconfig/properties"

valueLoaderProperties.dynamic

Whether key-values can change over time

"true"

secretLoaderClass

Java class name for key-secret lookups

"com.rierino.runner.loader.PropertiesKVLoader"

secretLoaderProperties.path

File path for key-secret lookups

"/app/globalsecrets/properties"

secretLoaderProperties.dynamic

Whether key-secrets can change over time

"true"

adminCoreBaseUrl

url for admin core runner to load gateway configurations

"${dollar}{{rierino.system.admincore.url}}"

adminCoreSecure

whether admin core runner uses service discovery

"${dollar}{{rierino.system.admincore.balanced}}"

adminCoreBalanced

whether admin core runner uses https protocol

"${dollar}{{rierino.system.admincore.secure}}"

authEnabled

whether gateway should service authentication APIs

true

requestEnabled

whether gateway should service request APIs

true

commandEnabled

whether gateway should service command APIs

true

controlEnabled

whether gateway should service control APIs

true

fileEnabled

whether gateway should service file APIs

true

trackerEnabled

whether gateway should service tracker APIs

true

gateway_extra_properties

extra application.properties to include

"# No extra properties"

quiet

whether gradle run should be quiet or not

false

Last updated