Free cookie consent management tool by TermsFeed Appian Custom Resource Definition [Appian on Kubernetes v0.140.1]
Appian Operator
Appian Custom Resource Definition

Overview

This page documents the types that together compose the Appian custom resource definition (CRD) in Appian on Kubernetes for self-managed customers.

The root of the CRD is defined by the Appian type. This documentation is also available by running:

1
kubectl explain appians

Different API versions of the CRD are supported depending on your version of the operator.

v1beta1

v1beta1.Appian

Appian is the schema for Appian custom resources.

Field Description Required
metav1.TypeMeta (Members of metav1.TypeMeta are embedded into this type.)  
metadata
metav1.ObjectMeta
  false
spec
v1beta1.AppianSpec
The desired state of Appian. true
status
v1beta1.AppianStatus
The observed state of Appian. false

v1beta1.AppianList

AppianList contains a list of Appian.

Field Description Required
metav1.TypeMeta (Members of metav1.TypeMeta are embedded into this type.)  
metadata
metav1.ListMeta
  false
items
[]v1beta1.Appian
A list of Appian. true

v1beta1.AppianSpec

AppianSpec defines the desired state of Appian.

Field Description Required
imagePullSecrets
[]string
Names of existing image pull secrets. See Pull an Image from a Private Registry for more info. false
rbac
v1beta1.RBAC
Configuration for creating RBAC resources. false
networkPolicies
v1beta1.NetworkPolicyConfig
Configuration for creating network policy resources. false
appianLicConfigMapName
string
Name of the existing config map containing the appian.lic file. false
k3LicSecretName
string
Name of the existing secret containing the k3.lic file. Defaults to k3lic. Updating this field requires restarting Service Manager's pod(s). false
k4LicSecretName
string
Name of the existing secret containing the k4.lic file. Defaults to k4lic. Updating this field requires restarting Service Manager's pod(s). false
customProperties
map[string]string
Appian's custom properties. See Custom Properties for more info. false
searchServer
v1beta1.SearchServer
Configuration for Search Server. true
dataServer
v1beta1.DataServer
Configuration for Data Server. true
kafka
v1beta1.Kafka
Configuration for Kafka. true
mirrorMaker
*v1beta1.MirrorMaker
Configuration for MirrorMaker. false
zookeeper
v1beta1.Zookeeper
Configuration for Zookeeper. true
serviceManager
v1beta1.ServiceManager
Configuration for Service Manager. true
webapp
v1beta1.Webapp
Configuration for Webapp. true
httpd
*v1beta1.Httpd
Configuration for httpd. false
service
v1beta1.Service
Configuration for creating Appian's service resource. false
ingress
v1beta1.Ingress
Configuration for creating Appian's ingress resource. false
url
string
The scheme, host, and, optionally, port used to access Appian (e.g. https://appian.example.com, http://appian.example.com:32767, etc). Updating this field requires restarting Webapp's pod(s). See Configure Your Site URL for more info. true
version
string
The Low-Code Platform (LCP) version. This field will be required in a future release. This field is immutable. false
additionalLabels
map[string]string
Additional labels for created objects - including pods. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false

v1beta1.AppianStatus

AppianStatus defines the observed state of Appian.

Field Description Required
status
string
Status of Appian. Valid options are Creating, Starting, Ready, Unready, and Terminating. Creating describes a new Appian for which the operator is still creating resources. Starting describes a new Appian for which the operator has finished creating resources but for which all replicas of all components are not yet ready. Ready describes an Appian for which all replicas of all components are ready. Unready describes a previously Ready Appian for which all replicas of all components are no longer ready. Terminating describes an Appian that has been marked for deletion and is in the process of terminating. false

v1beta1.Component

Component defines fields common to all components. Components can be either stateful or stateless. To this end, two other types, StatefulComponent and StatelessComponent, inline this type while adding fields specific to stateful and stateless components, respectively.

Field Description Required
initContainers
[]corev1.Container
A list of initialization containers belonging to the component. Initialization containers satisfy a variety of use cases - including supplying RDBMS/JDBC drivers. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Init Containers for more info. false
env
[]corev1.EnvVar
A list of environment variables to set in the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Define Environment Variables for a Container for more info. false
resources
corev1.ResourceRequirements
Compute resources required by the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the\n\tcomponent's pod(s). See\nResource Management for Pods and Containers for more info. false
additionalVolumes
[]corev1.Volume
Additional volumes for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Volumes for more info. false
additionalVolumeMounts
[]corev1.VolumeMount
Additional volume mounts for the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Volumes for more info. false
sidecarContainers
[]corev1.Container
Sidecar containers for the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false
affinity
*corev1.Affinity
Scheduling constraints for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Affinity and anti-affinity for more info. false
nodeSelector
map[string]string
A selector which must be true for the component's pod(s) to fit on a node. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See nodeSelector for more info. false
tolerations
[]corev1.Toleration
Tolerations for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Taints and Tolerations for more info. false
additionalNetworkPolicyIngressRules
[]networkingv1.NetworkPolicyIngressRule
Additional ingress rules for the component's network policy. Forbidden when spec.networkPolicies.enabled is false. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Network Policies for more info. false
podDisruptionBudget
*v1beta1.PodDisruptionBudgetConfig
The max disruption that can be caused to the component's pod(s). See Pod Disruption Budgets for more info. false
priorityClassName
string
Priority Class for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Pod Priority and Preemption for more info. false
dnsPolicy
corev1.DNSPolicy
DNS policy for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). It will default to ClusterFirst if not specified. See Pod DNS Policy for more info. false
dnsConfig
*corev1.PodDNSConfig
DNS Config for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). This field is required when DNSPolicy is set to None. If DNS Policy is not specified, then ClusterFirst is used. See Pod DNS Config for more info. false
podAnnotations
map[string]string
Annotations to be applied to the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false

v1beta1.DataServer

DataServer defines configuration for Data Server.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Data Server. Valid options are 1 and 3. Defaults to 1. This field is immutable. false
securityTokenSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Data Server's data-server-sec.properties file. If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Data Server's and Webapp's pod(s). false
topology
v1beta1.DataServerTopology
Configuration for Data Server's topology. false

v1beta1.DataServerTopology

DataServerTopology defines configuration for Data Server's topology.

Field Description Required
rtsCount
int32
Number of real-time stores for each Data Server replica. Defaults to 2. Updating this field requires restarting Data Server's pod(s) and requires restarting Webapp's pod(s). See Real-time Store and Configuring the Data Server for more info. false

v1beta1.DataSource

DataSource defines configuration for connecting to a data source. See Provide Data Source Connection Information for more info.

Field Description Required
name
string
  true
type
string
  true
factory
string
  true
driverClassName
string
  true
url
string
  true
username
string
  false
usernameSecretKeyRef
*v1beta1.SecretKeySelector
Reference to the username used to connect to the data source. Mutually exclusive with username. false
password
string
DEPRECATED: This field will be removed in a future release. Use passwordSecretKeyRef instead. Password used to connect to the data source. false
passwordSecretKeyRef
*v1beta1.SecretKeySelector
Reference to the password used to connect to the data source. This field will be required in a future release. false
attributes
map[string]string
  false

v1beta1.DataSourceConfig

DataSourceConfig defines configuration for connecting to the Appian and business data sources.

Field Description Required
primary
v1beta1.DataSource
Configuration for connecting to the Appian data source. true
business
[]v1beta1.DataSource
Configuration for connecting to the business data source(s). false

v1beta1.EngineOverrides

EngineOverrides defines override configurations for an engine.

Field Description Required
initContainers
*[]corev1.Container
A list of initialization containers belonging to the engine. Initialization containers satisfy a variety of use cases - including supplying RDBMS/JDBC drivers. Updating this field requires restarting the engine's pod(s). See Init Containers for more info. false
env
*[]corev1.EnvVar
A list of environment variables to set in the engine's container(s). Updating this field requires restarting the engine's pod(s). See Define Environment Variables for a Container for more info. false
resources
*corev1.ResourceRequirements
Compute resources required by the engine's container(s). Updating this field requires restarting the engine's pod(s). See Resource Management for Pods and Containers for more info. false
additionalVolumes
*[]corev1.Volume
Additional volumes for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Volumes for more info. false
additionalVolumeMounts
*[]corev1.VolumeMount
Additional volume mounts for the engine's container(s). Updating this field requires restarting the engine's pod(s). See Volumes for more info. false
sidecarContainers
*[]corev1.Container
Sidecar containers for the engine's container(s). Updating this field requires restarting the engine's pod(s). false
affinity
*corev1.Affinity
Scheduling constraints for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Affinity and anti-affinity for more info. false
nodeSelector
*map[string]string
A selector which must be true for the engine's pod(s) to fit on a node. Updating this field requires restarting the engine's pod(s). See nodeSelector for more info. false
tolerations
*[]corev1.Toleration
Tolerations for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Taints and Tolerations for more info. false
replicas
*int32
Desired number of replicas for the engine. This field is immutable. false
podDisruptionBudget
*v1beta1.PodDisruptionBudgetConfig
The max disruption that can be caused to the engine's pod(s). See Pod Disruption Budgets for more info. false
priorityClassName
*string
Priority Class for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Pod Priority and Preemption for more info. false
podAnnotations
*map[string]string
Annotations to be applied to the engine's pod(s). Updating this field requires restarting the engine's pod(s). false

v1beta1.HorizontalPodAutoscalerConfig

HorizontalPodAutoscalerConfig defines configuration for creating horizontal pod autoscaler resources.

Field Description Required
minReplicas
*int32
The lower limit for the number of replicas to which the autoscaler can scale down. Defaults to 1. false
maxReplicas
int32
The upper limit for the number of pods that can be set by the autoscaler. Cannot be smaller than minReplicas. true
targetCPUUtilizationPercentage
*int32
The target average CPU utilization (represented as a percentage of requested CPU) over all the pods. If not specified, the default autoscaling policy will be used. false

v1beta1.Httpd

Httpd defines configuration for httpd.

Field Description Required
v1beta1.StatelessComponent (Members of v1beta1.StatelessComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
nslookupImage
*v1beta1.Image
Configuration for the container image for the component's nslookup initialization container(s). The image must have nslookup installed. Defaults to busybox. false
replicas
*int32
Desired number of replicas for httpd. Forbidden when hpa is defined. Defaults to 2. false

v1beta1.Image

Image defines configuration for the component's container image.

Field Description Required
repository
string
The image's repository. true
tag
string
The image's tag. false
pullPolicy
corev1.PullPolicy
The image pull policy. See Updating images for more info. false

v1beta1.Ingress

Ingress defines configuration for creating Appian's ingress resource.

Field Description Required
enabled
bool
Whether ingress is enabled. false
annotations
map[string]string
Annotations for the ingress. false
ingressClassName
*string
Name of the ingress class cluster resource. false
hostname
string
The hostname used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.url. false
staticHostname
string
The hostname for Appian's static content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.webapp.staticUrl. false
dynamicHostname
string
The hostname for Appian's dynamic content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.webapp.dynamicUrl. false
tls
[]networkingv1.IngressTLS
Configuration for TLS. See TLS for more info. false

v1beta1.Kafka

Kafka defines configuration for Kafka.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Kafka. Valid options are 1 and 3. Defaults to 1. This field is immutable. false
mirrorMakerListeners
[]LowercaseRFC1123Subdomain
List of externally addressable hosts used by MirrorMaker. When running multiple replicas of Kafka, the order of the listeners should match the order of Kafka's pods. Updating this field requires restarting Kafka's pod(s). false

v1beta1.MirrorMaker

MirrorMaker defines configuration for MirrorMaker.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
sourceBrokers
[]LowercaseRFC1123Subdomain
List of hosts that point to the Kafka brokers in the source cluster. Updating this field requires restarting MirrorMaker's pod(s). true

v1beta1.NetworkPolicyConfig

NetworkPolicyConfig defines configuration for creating network policy resources.

Field Description Required
enabled
bool
Whether network policy resources are enabled. false

v1beta1.PodDisruptionBudgetConfig

PodDisruptionBudgetConfig defines the max disruption that can be caused to a component's pods. See Pod Disruption Budgets for more info.

Field Description Required
minAvailable
*intstr.IntOrString
The number of pods that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. Mutually exclusive with maxUnavailable. false
maxUnavailable
*intstr.IntOrString
The number of pods that can be unavailable after the eviction. Can be either an absolute number or a percentage. Mutually exclusive with minAvailable. false

v1beta1.RBAC

RBAC defines configuration for creating RBAC resources.

Field Description Required
roles
[]string
Names of existing roles to which Appian should be bound using role bindings. Requires that the controller is deployed with permission to bind to the specified roles. false
clusterRoles
[]string
Names of existing cluster roles to which Appian should be bound using role bindings. Requires that the controller is deployed with permission to bind to the specified cluster roles. false

v1beta1.SearchServer

SearchServer defines configuration for Search Server.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Search Server. Valid options are 1 and 3. Defaults to 1. This field is immutable. false

v1beta1.SecretKeySelector

SecretKeySelector selects a key of a secret.

Field Description Required
name
string
Name of the existing secret to select from. true
key
string
Key of the secret to select from. true

v1beta1.Service

Service defines configuration for creating Appian's service resource.

Field Description Required
annotations
map[string]string
Annotations for the service. false
type
corev1.ServiceType
How the service is exposed. Valid options are ClusterIP, NodePort, and LoadBalancer. Defaults to ClusterIP. See Publishing Services (ServiceTypes) for more info. false
protocol
string
Whether the service exposes Tomcat's http or ajp port when httpd is disabled. Forbidden when spec.httpd routes to Webapp. Valid options are http and ajp. Defaults to http. false
port
int32
The port that will be exposed by this service. Defaults to 8080 if spec.httpd is defined or if protocol is http. Defaults to 8009 otherwise. false
nodePort
int32
The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Forbidden when type is ClusterIP. false
loadBalancerIP
string
IP with which the load balancer will get created when type is LoadBalancer. Forbidden when type is not LoadBalancer. false
sessionAffinity
corev1.ServiceAffinity
Used to maintain session affinity to backend pods. Valid options are None and ClientIP. Defaults to None. false
sessionAffinityConfig
*corev1.SessionAffinityConfig
Configuration for session affinity. false

v1beta1.ServiceManager

ServiceManager defines configuration for Service Manager.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Service Manager. Defaults to 1. This field is immutable. false
engineOverrides
map[string]v1beta1.EngineOverrides
Override configurations for each engine. Valid keys are forums, notifications, notificationsEmail, channels, content, downloadStats, groups, portal, processDesign, analytics, and execution. false
shutdown
v1beta1.ServiceManagerShutdown
Configuration for the Service Manager shutdown job false
auth
*v1beta1.ServiceManagerAuth
DEPRECATED: This field will be removed in a future release. Configuration for Service Manager authentication. false
topology
v1beta1.ServiceManagerTopology
Configuration for Service Manager's topology. false
haExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Service Manager's storage. May be the same as spec.webapp.haExistingClaim. Must differ from spec.webapp.healthCheckExistingClaim. Required when replicas is greater than 1. This field is immutable. See Persistent Volumes for more info. false

v1beta1.ServiceManagerAuth

ServiceManagerAuth defines configuration for Service Manager authentication.

Field Description Required
adminPasswordSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Service Manager's admin password in its password key. If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Service Manager's pod(s). true
serviceManagerConfSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Service Manager's service_manager.conf file. The file should be formatted as follows:

admin {
  username = USERNAME
  salt = SALT
  password = HASHED_PASSWORD
}

If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Service Manager's pod(s).
true

v1beta1.ServiceManagerShutdown

ServiceManagerShutdown defines configuration for the Service Manager shutdown job

Field Description Required
resources
corev1.ResourceRequirements
Compute resources required by the shutdown pod's container. See Resource Management for Pods and Containers for more info. false

v1beta1.ServiceManagerTopology

ServiceManagerTopology defines configuration for Service Manager's topology.

Field Description Required
analyticsExecShardCount
int32
Number of shards of the process analytics and process execution engines. Defaults to 3. This field is immutable. See Add Execution and Analytics Shards for more info. false

v1beta1.StatefulComponent

StatefulComponent defines fields common to all stateful components. Stateful components require stable storage and network identity, are not elastically scalable, cannot be upgraded in-place, etc.

Field Description Required
v1beta1.Component (Members of v1beta1.Component are embedded into this type.)  
volumeClaimTemplateSpec
corev1.PersistentVolumeClaimSpec
Spec for the persistent volume claim template(s) for the component's stateful set(s). This field is immutable. See Volume Claim Templates for more info. true

v1beta1.StatelessComponent

StatelessComponent defines fields common to all stateless components. Stateless components do not require stable storage and network identity, are elastically scalable, can be upgraded in-place, etc.

Field Description Required
v1beta1.Component (Members of v1beta1.Component are embedded into this type.)  
hpa
*v1beta1.HorizontalPodAutoscalerConfig
Configuration for creating horizontal pod autoscaler resources. false

v1beta1.Webapp

Webapp defines configuration for Webapp.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Webapp. Defaults to 1. false
staticUrl
string
The scheme, host, and, optionally, port for Appian's static content URL (e.g. https://appian.example-static.com, http://appian.example-static.com:32767, etc). The scheme must be the same as that defined in spec.url. Must use a different domain from spec.url and dynamicUrl. Updating this field requires restarting Webapp's pod(s). See Configure Your Static and Dynamic Content URLs for more info. false
dynamicUrl
string
The scheme, host, and, optionally, port for Appian's dynamic content URL (e.g. https://appian.example-dynamic.com, http://appian.example-dynamic.com:32767, etc). The scheme must be the same as that defined in spec.url. Must use a different domain from spec.url and staticUrl. Updating this field requires restarting Webapp's pod(s). See Configure Your Static and Dynamic Content URLs for more info. false
applicationContext
string
The application context. Defaults to suite. Updating this field requires restarting Webapp's pod(s). See Application Context for more info. false
dataSources
v1beta1.DataSourceConfig
Configuration for connecting to the Appian and business data sources. Updating this field requires restarting Webapp's pod(s). true
haExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Webapp's storage. May be the same as spec.serviceManager.haExistingClaim. Must differ from spec.webapp.healthCheckExistingClaim. Required when replicas is greater than 1. This field is immutable. See Persistent Volumes for more info. false
healthCheckExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Health Check's storage. Must differ from spec.serviceManager.haExistingClaim and spec.webapp.haExistingClaim. This field is immutable. See Persistent Volumes for more info. false
passwordsPropertiesSecretName
string
Name of an existing secret containing Appian's passwords.properties file. Updating this field requires restarting Webapp's pod(s). See Mail Server Setup for more info. false

v1beta1.Zookeeper

Zookeeper defines configuration for Zookeeper.

Field Description Required
v1beta1.StatefulComponent (Members of v1beta1.StatefulComponent are embedded into this type.)  
image
v1beta1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Zookeeper. Valid options are 1 and 3. Defaults to 1. This field is immutable. false

v1alpha1

v1alpha1.Appian

Appian is the schema for Appian custom resources.

Field Description Required
metav1.TypeMeta (Members of metav1.TypeMeta are embedded into this type.)  
metadata
metav1.ObjectMeta
  false
spec
v1alpha1.AppianSpec
The desired state of Appian. true
status
v1alpha1.AppianStatus
The observed state of Appian. false

v1alpha1.AppianList

AppianList contains a list of Appian.

Field Description Required
metav1.TypeMeta (Members of metav1.TypeMeta are embedded into this type.)  
metadata
metav1.ListMeta
  false
items
[]v1alpha1.Appian
A list of Appian. true

v1alpha1.AppianSpec

AppianSpec defines the desired state of Appian.

Field Description Required
imagePullSecrets
[]string
Names of existing image pull secrets. See Pull an Image from a Private Registry for more info. false
rbac
v1alpha1.RBAC
Configuration for creating RBAC resources. false
networkPolicies
v1alpha1.NetworkPolicyConfig
Configuration for creating network policy resources. false
appianLicConfigMapName
string
Name of the existing config map containing the appian.lic file. false
k3LicSecretName
string
Name of the existing secret containing the k3.lic file. Defaults to k3lic. Updating this field requires restarting Service Manager's pod(s). false
k4LicSecretName
string
Name of the existing secret containing the k4.lic file. Defaults to k4lic. Updating this field requires restarting Service Manager's pod(s). false
customProperties
map[string]string
Appian's custom properties. See Custom Properties for more info. false
searchServer
v1alpha1.SearchServer
Configuration for Search Server. true
dataServer
v1alpha1.DataServer
Configuration for Data Server. true
kafka
v1alpha1.Kafka
Configuration for Kafka. true
mirrorMaker
*v1alpha1.MirrorMaker
Configuration for MirrorMaker. false
zookeeper
v1alpha1.Zookeeper
Configuration for Zookeeper. true
serviceManager
v1alpha1.ServiceManager
Configuration for Service Manager. true
webapp
v1alpha1.Webapp
Configuration for Webapp. true
httpd
*v1alpha1.Httpd
Configuration for httpd. false
service
v1alpha1.Service
Configuration for creating Appian's service resource. false
ingress
v1alpha1.Ingress
Configuration for creating Appian's ingress resource. false
version
string
The Low-Code Platform (LCP) version. This field will be required in a future release. This field is immutable. false
additionalLabels
map[string]string
Additional labels for created objects - including pods. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false

v1alpha1.AppianStatus

AppianStatus defines the observed state of Appian.

Field Description Required
status
string
Status of Appian. Valid options are Creating, Starting, Ready, Unready, and Terminating. Creating describes a new Appian for which the operator is still creating resources. Starting describes a new Appian for which the operator has finished creating resources but for which all replicas of all components are not yet ready. Ready describes an Appian for which all replicas of all components are ready. Unready describes a previously Ready Appian for which all replicas of all components are no longer ready. Terminating describes an Appian that has been marked for deletion and is in the process of terminating. false

v1alpha1.Component

Component defines fields common to all components. Components can be either stateful or stateless. To this end, two other types, StatefulComponent and StatelessComponent, inline this type while adding fields specific to stateful and stateless components, respectively.

Field Description Required
initContainers
[]corev1.Container
A list of initialization containers belonging to the component. Initialization containers satisfy a variety of use cases - including supplying RDBMS/JDBC drivers. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Init Containers for more info. false
env
[]corev1.EnvVar
A list of environment variables to set in the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Define Environment Variables for a Container for more info. false
resources
corev1.ResourceRequirements
Compute resources required by the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Resource Management for Pods and Containers for more info. false
additionalVolumes
[]corev1.Volume
Additional volumes for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Volumes for more info. false
additionalVolumeMounts
[]corev1.VolumeMount
Additional volume mounts for the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Volumes for more info. false
sidecarContainers
[]corev1.Container
Sidecar containers for the component's container(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false
affinity
*corev1.Affinity
Scheduling constraints for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Affinity and anti-affinity for more info. false
nodeSelector
map[string]string
A selector which must be true for the component's pod(s) to fit on a node. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See nodeSelector for more info. false
tolerations
[]corev1.Toleration
Tolerations for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Taints and Tolerations for more info. false
additionalNetworkPolicyIngressRules
[]networkingv1.NetworkPolicyIngressRule
Additional ingress rules for the component's network policy. Forbidden when spec.networkPolicies.enabled is false. For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Network Policies for more info. false
podDisruptionBudget
*v1alpha1.PodDisruptionBudgetConfig
The max disruption that can be caused to the component's pod(s). See Pod Disruption Budgets for more info. false
priorityClassName
string
Priority Class for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). See Pod Priority and Preemption for more info. false
dnsPolicy
corev1.DNSPolicy
DNS policy for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). It will default to ClusterFirst if not specified. See Pod DNS Policy for more info. false
dnsConfig
*corev1.PodDNSConfig
DNS Config for the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). This field is required when DNSPolicy is set to None. If DNS Policy is not specified, then ClusterFirst is used. See Pod DNS Config for more info. false
podAnnotations
map[string]string
Annotations to be applied to the component's pod(s). For stateful components, updating this field requires restarting the component's pod(s). Otherwise, updating this field will automatically restart the component's pod(s). false

v1alpha1.DataServer

DataServer defines configuration for Data Server.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Data Server. Valid options are 1 and 3. Defaults to 1. This field is immutable. false
securityTokenSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Data Server's data-server-sec.properties file. If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Data Server's and Webapp's pod(s). false
topology
v1alpha1.DataServerTopology
Configuration for Data Server's topology. false

v1alpha1.DataServerTopology

DataServerTopology defines configuration for Data Server's topology.

Field Description Required
rtsCount
int32
Number of real-time stores for each Data Server replica. Defaults to 2. Updating this field requires restarting the Data Server's pod(s) and requires restarting Webapp's pod(s). See Real-time Store and Configuring the Data Server for more info. false

v1alpha1.DataSource

DataSource defines configuration for connecting to a data source. See Provide Data Source Connection Information for more info.

Field Description Required
name
string
  true
type
string
  true
factory
string
  true
driverClassName
string
  true
url
string
  true
username
string
  false
usernameSecretKeyRef
*v1alpha1.SecretKeySelector
Reference to the username used to connect to the data source. Mutually exclusive with username. false
password
string
DEPRECATED: This field will be removed in a future release. Use passwordSecretKeyRef instead. Password used to connect to the data source. false
passwordSecretKeyRef
*v1alpha1.SecretKeySelector
Reference to the password used to connect to the data source. This field will be required in a future release. false
attributes
map[string]string
  false

v1alpha1.DataSourceConfig

DataSourceConfig defines configuration for connecting to the Appian and business data sources.

Field Description Required
primary
v1alpha1.DataSource
Configuration for connecting to the Appian data source. true
business
[]v1alpha1.DataSource
Configuration for connecting to the business data source(s). false

v1alpha1.EngineOverrides

EngineOverrides defines override configurations for an engine.

Field Description Required
initContainers
*[]corev1.Container
A list of initialization containers belonging to the engine. Initialization containers satisfy a variety of use cases - including supplying RDBMS/JDBC drivers. Updating this field requires restarting the engine's pod(s). See Init Containers for more info. false
env
*[]corev1.EnvVar
A list of environment variables to set in the engine's container(s). Updating this field requires restarting the engine's pod(s). See Define Environment Variables for a Container for more info. false
resources
*corev1.ResourceRequirements
Compute resources required by the engine's container(s). Updating this field requires restarting the engine's pod(s). See Resource Management for Pods and Containers for more info. false
additionalVolumes
*[]corev1.Volume
Additional volumes for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Volumes for more info. false
additionalVolumeMounts
*[]corev1.VolumeMount
Additional volume mounts for the engine's container(s). Updating this field requires restarting the engine's pod(s). See Volumes for more info. false
sidecarContainers
*[]corev1.Container
Sidecar containers for the engine's container(s). Updating this field requires restarting the engine's pod(s). false
affinity
*corev1.Affinity
Scheduling constraints for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Affinity and anti-affinity for more info. false
nodeSelector
*map[string]string
A selector which must be true for the engine's pod(s) to fit on a node. Updating this field requires restarting the engine's pod(s). See nodeSelector for more info. false
tolerations
*[]corev1.Toleration
Tolerations for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Taints and Tolerations for more info. false
replicas
*int32
Desired number of replicas for the engine. This field is immutable. false
podDisruptionBudget
*v1alpha1.PodDisruptionBudgetConfig
The max disruption that can be caused to the engine's pod(s). See Pod Disruption Budgets for more info. false
priorityClassName
*string
Priority Class for the engine's pod(s). Updating this field requires restarting the engine's pod(s). See Pod Priority and Preemption for more info. false
podAnnotations
*map[string]string
Annotations to be applied to the engine's pod(s). Updating this field requires restarting the engine's pod(s). false

v1alpha1.HorizontalPodAutoscalerConfig

HorizontalPodAutoscalerConfig defines configuration for creating horizontal pod autoscaler resources.

Field Description Required
minReplicas
*int32
The lower limit for the number of replicas to which the autoscaler can scale down. Defaults to 1. false
maxReplicas
int32
The upper limit for the number of pods that can be set by the autoscaler. Cannot be smaller than minReplicas. true
targetCPUUtilizationPercentage
*int32
The target average CPU utilization (represented as a percentage of requested CPU) over all the pods. If not specified, the default autoscaling policy will be used. false

v1alpha1.Httpd

Httpd defines configuration for httpd.

Field Description Required
v1alpha1.StatelessComponent (Members of v1alpha1.StatelessComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
nslookupImage
*v1alpha1.Image
Configuration for the container image for the component's nslookup initialization container(s). The image must have nslookup installed. Defaults to busybox. false
replicas
*int32
Desired number of replicas for httpd. Forbidden when hpa is defined. Defaults to 2. false

v1alpha1.Image

Image defines configuration for the component's container image.

Field Description Required
repository
string
The image's repository. true
tag
string
The image's tag. false
pullPolicy
corev1.PullPolicy
The image pull policy. See Updating images for more info. false

v1alpha1.Ingress

Ingress defines configuration for creating Appian's ingress resource.

Field Description Required
enabled
bool
Whether ingress is enabled. false
annotations
map[string]string
Annotations for the ingress. false
ingressClassName
*string
Name of the ingress class cluster resource. false
hostname
string
The hostname used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.webapp.url. false
staticHostname
string
The hostname for Appian's static content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.webapp.staticUrl. false
dynamicHostname
string
The hostname for Appian's dynamic content URL used to create the ingress. Useful if you'd like ingress to use an internal hostname different from that used to access Appian. Defaults to the hostname defined in spec.webapp.dynamicUrl. false
tls
[]networkingv1.IngressTLS
Configuration for TLS. See TLS for more info. false

v1alpha1.Kafka

Kafka defines configuration for Kafka.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Kafka. Valid options are 1 and 3. Defaults to 1. This field is immutable. false
mirrorMakerListeners
[]LowercaseRFC1123Subdomain
List of externally addressable hosts used by MirrorMaker. When running multiple replicas of Kafka, the order of the listeners should match the order of Kafka's pods. Updating this field requires restarting Kafka's pod(s). false

v1alpha1.MirrorMaker

MirrorMaker defines configuration for MirrorMaker.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
sourceBrokers
[]LowercaseRFC1123Subdomain
List of hosts that point to the Kafka brokers in the source cluster. Updating this field requires restarting MirrorMaker's pod(s). true

v1alpha1.NetworkPolicyConfig

NetworkPolicyConfig defines configuration for creating network policy resources.

Field Description Required
enabled
bool
Whether network policy resources are enabled. false

v1alpha1.PodDisruptionBudgetConfig

PodDisruptionBudgetConfig defines the max disruption that can be caused to a component's pods. See Pod Disruption Budgets for more info.

Field Description Required
minAvailable
*intstr.IntOrString
The number of pods that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. Mutually exclusive with maxUnavailable. false
maxUnavailable
*intstr.IntOrString
The number of pods that can be unavailable after the eviction. Can be either an absolute number or a percentage. Mutually exclusive with minAvailable. false

v1alpha1.RBAC

RBAC defines configuration for creating RBAC resources.

Field Description Required
roles
[]string
Names of existing roles to which Appian should be bound using role bindings. Requires that the controller is deployed with permission to bind to the specified roles. false
clusterRoles
[]string
Names of existing cluster roles to which Appian should be bound using role bindings. Requires that the controller is deployed with permission to bind to the specified cluster roles. false

v1alpha1.SearchServer

SearchServer defines configuration for Search Server.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Search Server. Valid options are 1 and 3. Defaults to 1. This field is immutable. false

v1alpha1.SecretKeySelector

SecretKeySelector selects a key of a secret.

Field Description Required
name
string
Name of the existing secret to select from. true
key
string
Key of the secret to select from. true

v1alpha1.Service

Service defines configuration for creating Appian's service resource.

Field Description Required
annotations
map[string]string
Annotations for the service. false
type
corev1.ServiceType
How the service is exposed. Valid options are ClusterIP, NodePort, and LoadBalancer. Defaults to ClusterIP. See Publishing Services (ServiceTypes) for more info. false
protocol
string
Whether the service exposes Tomcat's http or ajp port when httpd is disabled. Forbidden when httpd routes to Webapp. Valid options are http and ajp. Defaults to http. false
port
int32
The port that will be exposed by this service. Defaults to 8080 if spec.httpd is defined or if protocol is http. Defaults to 8009 otherwise. false
nodePort
int32
The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Forbidden when type is ClusterIP. false
loadBalancerIP
string
IP with which the load balancer will get created when type is LoadBalancer. Forbidden when type is not LoadBalancer. false
sessionAffinity
corev1.ServiceAffinity
Used to maintain session affinity to backend pods. Valid options are None and ClientIP. Defaults to None. false
sessionAffinityConfig
*corev1.SessionAffinityConfig
Configuration for session affinity. false

v1alpha1.ServiceManager

ServiceManager defines configuration for Service Manager.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Service Manager. Defaults to 1. This field is immutable. false
engineOverrides
map[string]v1alpha1.EngineOverrides
Override configurations for each engine. Valid keys are forums, notifications, notificationsEmail, channels, content, downloadStats, groups, portal, processDesign, analytics, and execution. false
shutdown
v1alpha1.ServiceManagerShutdown
Configuration for the Service Manager shutdown job false
auth
*v1alpha1.ServiceManagerAuth
DEPRECATED: This field will be removed in a future release. Configuration for Service Manager authentication. false
topology
v1alpha1.ServiceManagerTopology
Configuration for Service Manager's topology. false
haExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Service Manager's storage. May be the same as spec.webapp.haExistingClaim. Must differ from spec.webapp.healthCheckExistingClaim. Required when replicas is greater than 1. This field is immutable. See Persistent Volumes for more info. false

v1alpha1.ServiceManagerAuth

ServiceManagerAuth defines configuration for Service Manager authentication.

Field Description Required
adminPasswordSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Service Manager's admin password in its password key. If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Service Manager's pod(s). true
serviceManagerConfSecretName
string
DEPRECATED: This field will be removed in a future release. Name of the existing secret containing Service Manager's service_manager.conf file. The file should be formatted as follows:

admin {
  username = USERNAME
  salt = SALT
  password = HASHED_PASSWORD
}

If omitted, the operator will create a secret with a random, secure value. Updating this field requires restarting Service Manager's pod(s).
true

v1alpha1.ServiceManagerShutdown

ServiceManagerShutdown defines configuration for the Service Manager shutdown job

Field Description Required
resources
corev1.ResourceRequirements
Compute resources required by the shutdown pod's container. See Resource Management for Pods and Containers for more info. false

v1alpha1.ServiceManagerTopology

ServiceManagerTopology defines configuration for Service Manager's topology.

Field Description Required
analyticsExecShardCount
int32
Number of shards of the process analytics and process execution engines. Defaults to 3. This field is immutable. See Add Execution and Analytics Shards for more info. false

v1alpha1.StatefulComponent

StatefulComponent defines fields common to all stateful components. Stateful components require stable storage and network identity, are not elastically scalable, cannot be upgraded in-place, etc.

Field Description Required
v1alpha1.Component (Members of v1alpha1.Component are embedded into this type.)  
volumeClaimTemplateSpec
corev1.PersistentVolumeClaimSpec
Spec for the persistent volume claim template(s) for the component's stateful set(s). This field is immutable. See Volume Claim Templates for more info. true

v1alpha1.StatelessComponent

StatelessComponent defines fields common to all stateless components. Stateless components do not require stable storage and network identity, are elastically scalable, can be upgraded in-place, etc.

Field Description Required
v1alpha1.Component (Members of v1alpha1.Component are embedded into this type.)  
hpa
*v1alpha1.HorizontalPodAutoscalerConfig
Configuration for creating horizontal pod autoscaler resources. false

v1alpha1.Webapp

Webapp defines configuration for Webapp.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Webapp. Defaults to 1. false
url
string
The scheme, host, and, optionally, port used to access Appian (e.g. https://appian.example.com, http://appian.example.com:32767, etc). Updating this field requires restarting Webapp's pod(s). See Configure Your Site URL for more info. true
staticUrl
string
The scheme, host, and, optionally, port for Appian's static content URL (e.g. https://appian.example-static.com, http://appian.example-static.com:32767, etc). The scheme must be the same as that defined in url. Must use a different domain from url and dynamicUrl. Updating this field requires restarting Webapp's pod(s). See Configure Your Static and Dynamic Content URLs for more info. false
dynamicUrl
string
The scheme, host, and, optionally, port for Appian's dynamic content URL (e.g. https://appian.example-dynamic.com, http://appian.example-dynamic.com:32767, etc). The scheme must be the same as that defined in url. Must use a different domain from url and staticUrl. Updating this field requires restarting Webapp's pod(s). See Configure Your Static and Dynamic Content URLs for more info. false
applicationContext
string
The application context. Defaults to suite. Updating this field requires restarting Webapp's pod(s). See Application Context for more info. false
dataSources
v1alpha1.DataSourceConfig
Configuration for connecting to the Appian and business data sources. Updating this field requires restarting Webapp's pod(s). true
haExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Webapp's storage. May be the same as spec.serviceManager.haExistingClaim. Must differ from spec.webapp.healthCheckExistingClaim. Required when replicas is greater than 1. This field is immutable. See Persistent Volumes for more info. false
healthCheckExistingClaim
string
Name of an existing ReadWriteMany (RWX) persistent volume claim to be used for Health Check's storage. Must differ from spec.serviceManager.haExistingClaim and spec.webapp.haExistingClaim. This field is immutable. See Persistent Volumes for more info. false
passwordsPropertiesSecretName
string
Name of an existing secret containing Appian's passwords.properties file. Updating this field requires restarting Webapp's pod(s). See Mail Server Setup for more info. false

v1alpha1.Zookeeper

Zookeeper defines configuration for Zookeeper.

Field Description Required
v1alpha1.StatefulComponent (Members of v1alpha1.StatefulComponent are embedded into this type.)  
image
v1alpha1.Image
Configuration for the component's container image. This field is immutable. true
replicas
int32
Desired number of replicas for Zookeeper. Valid options are 1 and 3. Defaults to 1. This field is immutable. false
Open in Github Built: Fri, Mar 01, 2024 (07:35:35 PM)

Appian Custom Resource Definition

FEEDBACK