Skip to content

Operator Configuration

Configuration Properties

Any Operator's configuration defined in application.properties can be overridden via env variable but in uppercase and dot is replaced by underscore.

Important Configurations

Environment Variable Default Description
APP_OPERATOR_ROUTER_MODE disabled Router module. Values: ingress or openshift or disabled
APP_OPERATOR_PROVIDER_CRD_ENABLED true If false CRD is not watched
APP_OPERATOR_PROVIDER_ENV_ENABLED false If true then operator expects website definition via ENV variable. See example
APP_OPERATOR_URL Operator's URL - used to generate API links in REST API
APP_OPERATOR_IMAGE_INIT_NAME quay.io/spaship/content-git-init Init image name
APP_OPERATOR_IMAGE_INIT_VERSION 1.3.6 Init image version
APP_OPERATOR_IMAGE_API_NAME quay.io/spaship/content-git-api Api image name
APP_OPERATOR_IMAGE_API_VERSION 1.3.6 Api image version
APP_OPERATOR_IMAGE_HTTPD_NAME quay.io/spaship/httpd Httpd image name
APP_OPERATOR_IMAGE_HTTPD_VERSION 1.3.6 Httpd image version
APP_OPERATOR_CONTENT_ENVS Operator's website environment overrides. Useful for defining default deployment overrides for particular environments e.g. prod
QUARKUS_OIDC_AUTH_SERVER_URL Open ID Connect Auth Server for REST API authentication. See Complete reference
QUARKUS_OIDC_CLIENT_ID Open ID Connect Client ID
JAVA_OPTIONS Additional JAVA Options
EVENT_SOURCING_ENABLED true turn on or off event sourcing functionality
EVENT_LOGGING_ENABLED true turn on or off event logging functionality

Environment Defaults

It's common to have defined deployment defaults for particular environment. Typically production.

The value of APP_OPERATOR_CONTENT_ENVS property can define in JSON format the default values for env section for all websites. Each website but can override this default in its website.yaml spec.

If the deployed website is preview website created from Merge Request then preview name is used.

The env name can be also regexp but exact match (e.g. prod env name) overrides the regexp.

Example:

{
  "envs": {
    ".*": {
      "deployment": {
        "httpd": {
          "resources": {
            "requests": { "cpu": "100m", "memory": "100Mi"},
            "limits":   { "cpu": "150m", "memory": "150Mi"}
          }
        }
      }
    },
    "preview": {
      "deployment": {
        "httpd": {
          "resources": {
            "requests": { "cpu": "10m", "memory": "50Mi"},
            "limits":   { "cpu": "50m", "memory": "50Mi"}
          }
        },
        "api": {
          "resources": {
            "requests": { "cpu": "10m", "memory": "50Mi"},
            "limits":   { "cpu": "50m", "memory": "50Mi"}
          }
        }
      }
    },
    "prod": {
      "deployment": {
        "replicas": 2,
        "httpd": {
          "resources": {
            "requests": { "cpu": "100m", "memory": "150Mi"},
            "limits":   { "cpu": "500m", "memory": "250Mi"}
          }
        }
      }
    }
  }
}

Compressed:

{"envs":{".*":{"deployment":{"httpd":{"resources":{"requests":{"cpu":"100m","memory":"100Mi"},"limits":{"cpu":"150m","memory":"150Mi"}}}}},"preview":{"deployment":{"httpd":{"resources":{"requests":{"cpu":"10m","memory":"50Mi"},"limits":{"cpu":"50m","memory":"50Mi"}}},"api":{"resources":{"requests":{"cpu":"10m","memory":"50Mi"},"limits":{"cpu":"50m","memory":"50Mi"}}}}},"prod":{"deployment":{"replicas":2,"httpd":{"resources":{"requests":{"cpu":"100m","memory":"150Mi"},"limits":{"cpu":"500m","memory":"250Mi"}}}}}}}