Appian Custom Resource Definitions

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 the command kubectl explain appians.

Appian

Appian is the Schema for the appians API

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

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
[]Appian
Items is a list of Appian. true

AppianSpec

AppianSpec defines the desired state of Appian

Field Description Required
imagePullSecrets
[]string
ImagePullSecrets is an array of strings referring to the names of Kubernetes secrets of the docker-registry type. See Pull an Image from a Private Registry for more info. false
rbac
RBAC
RBAC defines information needed to create Kubernetes RBAC resources. false
networkPolicies
NetworkPolicyConfig
NetworkPolicyConfig defines configuration information for NetworkPolicy resources across the entire Appian deployment. false
k3LicSecretName
string
K3LicSecretName is a reference to a Kubernetes Secret containing the k3.lic file. This field is immutable. Defaults to k3lic. false
k4LicSecretName
string
K4LicSecretName is a reference to a Kubernetes Secret containing the k4.lic file. This field is immutable. Defaults to k4lic. false
customProperties
map[string]string
CustomProperties defines arbitrary key-value pairs to inject into the custom.properties file shared by all components. See Custom properties for more info. false
searchServer
SearchServer
SearchServer defines the desired state of Search Server. true
dataServer
DataServer
DataServer defines the desired state of Data Server. true
kafka
Kafka
Kafka defines the desired state of Kafka. true
zookeeper
Zookeeper
Zookeeper defines the desired state of Zookeeper. true
serviceManager
ServiceManager
ServiceManager defines the desired state of Service Manager. true
webapp
Webapp
Webapp defines the desired state of Webapp. true
httpd
*Httpd
Httpd defines the desired state of Httpd. false
service
Service
Service defines configuration options for the Kubernetes Service used to route traffic to Appian. false
ingress
Ingress
Ingress defines configuration options for the Kubernetes Ingress used to route traffic to Appian. false

AppianStatus

AppianStatus defines the observed state of Appian

Field Description Required
status
Status
Status denotes the status of the Appian deployment. Valid values are Creating, Starting, Ready, Unready, and Terminating. Creating denotes a new Appian custom resource for which all of the secondary resources have not yet been created. Starting denotes the status of a new Appian custom resource after all of its secondary resources have been created but before all replicas of all of its components are ready. Ready denotes that all replicas of all components are ready. Unready denotes a previously ready Appian deployment that now has one or more unavailable replicas of one or more components. Terminating denotes that the Appian deployment has been marked for deletion and is in the process of being shut down. false

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
InitContainers defines init containers for the given component. Init containers satisfy a variety of uses cases - including supplying RDBMS/JDBC drivers. See Init Containers for more info. This field is immutable. false
env
[]corev1.EnvVar
Env is an array of EnvVar. See Define Environment Variables for a Container for more info. false
resources
corev1.ResourceRequirements
Resources describes compute resource requests and limits for the container. See Resource requests and limits of Pod and Container for more info. false
additionalVolumes
[]corev1.Volume
AdditionalVolumes defines additional volumes for the given component. See Volumes for more info. This field is immutable. false
sidecarContainers
[]corev1.Container
SidecarContainers defines sidecar containers for the given component. This field is immutable. false
affinity
*corev1.Affinity
Affinity is a group of affinity scheduling rules. If unspecified, the given component's pods are configured with inter-pod anti-affinity so that no two replicas of the component are located on the same node. See Affinity and anti-affinity for more info. false
nodeSelector
map[string]string
NodeSelector is a map of key-value pairs that a node must have as labels in order for the pod to be eligible to run on the node. See nodeSelector for more info. false
tolerations
[]corev1.Toleration
Tolerations is an array of Tolerations that allow the pod to schedule onto nodes with matching Taints. See Taints and Tolerations for more info. false
additionalNetworkPolicyIngressRules
[]networkingv1.NetworkPolicyIngressRule
AdditionalNetworkPolicyIngressRules defines additional NetworkPolicyIngressRules to be added to the given component's NetworkPolicy when NetworkPolicy resources are enabled. See Network Policies for more info. Forbidden when .spec.networkPolicies.enabled is disabled. false

DataServer

DataServer defines the desired state of Data Server.

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
replicas
int32
Replicas defines the desired number of replicas for Data Server. This field is immutable. Defaults to 1. false
securityTokenSecretName
string
SecurityTokenSecretName is a reference to a Kubernetes Secret containing Data Server's data-server-sec.properties file. If omitted, the controller will create the Secret with a default value. Omitting this field should only be done for non-production deployments. This field is immutable. false
topology
DataServerTopology
Topology defines information about Data Server's topology. This field is immutable. false

DataServerTopology

DataServerTopology defines information about Data Server's topology.

Field Description Required
rtsCount
int32
RTSCount is the number of real-time stores for each Data Server replica. See Real time store and Configuring the Data Server for more info. Defaults to 2. false

DataSource

DataSource defines information used to connect to a data source. See Provide data source connection for more info.

Field Description Required
name
string
  true
driverClassName
string
  true
url
string
  true
username
string
  true
password
string
  true
validationQuery
string
  true

DataSourceConfig

DataSourceConfig defines information used to connect to the primary and business data sources.

Field Description Required
primary
DataSource
Primary defines information used to connect to the primary data source. true
business
[]DataSource
Business defines information used to connect to the business data source(s). false

HorizontalPodAutoscalerConfig

HorizontalPodAutoscalerConfig defines configuration settings for Horizontal Pod Autoscaler

Field Description Required
minReplicas
int32
MinReplicas defines the lower limit for the number of replicas to which the autoscaler can scale down. Defaults to 1. false
maxReplicas
int32
MaxReplicas defines the upper limit for the number of replicas to which the autoscaler can scale up. Cannot be smaller than minReplicas. true
targetCPUUtilizationPercentage
*int32
TargetCPUUtilizationPercentage defines the target average CPU utilization (represented as a percentage of requested CPU) over all the pods. false

Httpd

Httpd defines the desired state of Httpd.

Field Description Required
StatelessComponent (Members of StatelessComponent are embedded into this type.)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
nslookupImage
Image
NslookupImage defines information about the Docker image to be used for the nslookup init container. The image must have nslookup installed. Defaults to busybox. false
replicas
*int32
Replicas defines the desired number of replicas for Httpd. Forbidden when .spec.httpd.hpa is defined. Defaults to 2. false

Image

Image defines information about the Docker image to be used.

Field Description Required
repository
string
Repository is the repository of the Docker image. false
tag
string
Tag is the tag of the Docker image. false
pullPolicy
corev1.PullPolicy
PullPolicy is the pull policy of the Docker image. See Updating images for more info. false

Ingress

Ingress defines configuration options for the Kubernetes Ingress used to route traffic to Appian.

Field Description Required
enabled
bool
Enabled defines whether or not Ingress is enabled. false
annotations
map[string]string
Annotations defines key-value pairs to use as annotations on the Ingress resource. false
hostname
string
Hostname defines the hostname used to construct the Ingress resource. 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
StaticHostname defines the hostname for Appian's static content URL used to construct the Ingress resource. 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
DynamicHostname defines the hostname for Appian's dynamic content URL used to construct the Ingress resource. 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

Kafka

Kafka defines the desired state of Kafka.

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type.)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
replicas
int32
Replicas defines the desired number of replicas for Kafka. This field is immutable. Defaults to 1. false

NetworkPolicyConfig

NetworkPolicyConfig defines configuration information for NetworkPolicy resources across the entire Appian deployment.

Field Description Required
enabled
bool
Enabled defines whether or not to enable NetworkPolicy resources. false

RBAC

RBAC defines information needed to create Kubernetes RBAC resources.

Field Description Required
roles
[]string
Roles refers to the names of existing Kubernetes Roles to which Appian should be bound using RoleBindings. Requires that the controller is deployed with permission to bind to the specified Roles. false
clusterRoles
[]string
ClusterRoles refers to the names of existing Kubernetes ClusterRoles to which Appian should be bound using RoleBindings. Requires that the controller is deployed with permission to bind to the specified ClusterRoles. false

SearchServer

SearchServer defines the desired state of Search Server.

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable true
replicas
int32
Replicas defines the desired number of replicas for Search Server. This field is immutable. Defaults to 1 false

Service

Service defines configuration options for the Kubernetes Service used to route traffic to Appian.

Field Description Required
annotations
map[string]string
Annotations defines key-value pairs to use as annotations on the Service resource. false
type
corev1.ServiceType
Type defines the type of the Service. Must be one of ClusterIP, NodePort, or LoadBalancer. Defaults to ClusterIP. See Publishing Services for more info. false
protocol
Protocol
Protocol defines whether the Service exposes Tomcat's http or ajp port when httpd is disabled. Must be one of http or ajp. Forbidden when .spec.httpd is defined. Defaults to http. false
port
int32
Port defines the port that will be exposed by this service. Defaults to 8080 if .spec.httpd is defined or if .spec.service.protocol is http. Otherwise, defaults to 8009. false
nodePort
int32
NodePort is the port on each node on which this Service is exposed when the type of the Service is either NodePort or LoadBalancer. Forbidden when .spec.service.type is ClusterIP. false
loadBalancerIP
string
LoadBalancerIP denotes the IP with which the LoadBalancer will get created when the type of the Service is LoadBalancer. Forbidden when .spec.service.type is not LoadBalancer. false
sessionAffinity
corev1.ServiceAffinity
SessionAffinity can be used to maintain session affinity to backend pods. Defaults to None. See Virtual IPs and service proxies for more info. false
sessionAffinityConfig
*corev1.SessionAffinityConfig
SessionAffinityConfig contains the configurations for session affinity. false

ServiceManager

ServiceManager defines the desired state of Service Manager.

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type.)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
replicas
int32
Replicas defines the desired number of replicas for Service Manager. This field is immutable. Defaults to 1. false
auth
*ServiceManagerAuth
Auth groups fields used to specify authentication for Service Manager's admin user. This field is immutable. false
topology
ServiceManagerTopology
Topology defines information about Service Manager's topology. This field is immutable. false
haExistingClaim
string
HAExistingClaim is the name of an existing PersistentVolumeClaim to be used when deploying Service Manager in an HA configuration. The underlying volume must be mountable as read-write by multiple nodes. Required when .spec.serviceManager.replicas is greater than 1. This field is immutable. false

ServiceManagerAuth

ServiceManagerAuth groups fields used to specify authentication for Service Manager's admin user.

Field Description Required
adminPasswordSecretName
string
AdminPasswordSecretName is a reference to a Kubernetes Secret containing Service Manager's admin password. The expected key is password. If omitted, the controller will set the admin password to a default value. Omitting this field should only be done for non-production deployments. true
serviceManagerConfSecretName
string
ServiceManagerConfSecretName is a reference to a Kubernetes 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 controller will create the Secret with a default value. Omitting this field should only be done for non-production deployments
true

ServiceManagerTopology

ServiceManagerTopology defines information about Service Manager's topology.

Field Description Required
analyticsExecShardCount
int32
AnalyticsExecShardCount is the number of shards for the process analytics and process execution engines. See Add execution and analytics shards for more info. Defaults to 3. false
serviceManagerPerEngine
bool
ServiceManagerPerEngine defines when each engine runs with its own Service Manager in their own pod. Forbidden when .spec.serviceManager.hostNetwork is enabled. false

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, and other attributes.

Field Description Required
Component (Members of Component are embedded into this type.)  
volumeClaimTemplateSpec
corev1.PersistentVolumeClaimSpec
VolumeClaimTemplateSpec defines the spec for a PersistentVolumeClaim to be used for the given component's StatefulSet's volumeClaimTemplate. See Components for more info. This field is immutable. true
hostNetwork
bool
HostNetwork defines whether the given component should use the host's network namespace. false
additionalHostMounts
[]string
AdditionalHostMounts is a list of paths from the storage volume under /usr/local/appian/ae to mount from the host to the container. false

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, and other attributes.

Field Description Required
Component (Members of Component are embedded into this type.)  
hpa
*HorizontalPodAutoscalerConfig
HPA defines configuration settings for Horizontal Pod Autoscaler. false

Webapp

Webapp defines the desired state of Webapp.

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type.)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
replicas
int32
Replicas defines the desired number of replicas for Webapp. This field is immutable. Defaults to 1 false
url
string
URL defines the scheme, host, and, optionally, port used to access Appian (for example, https://appian.example.com or http://appian.example.com:32767). This field is immutable. See Configure your site URL for more info. true
staticUrl
string
StaticURL defines the scheme, host, and, optionally, port for Appian's static content URL (for example, https://appian.example-static.com or http://appian.example-static.com:32767). The scheme must be the same as that defined by .spec.webapp.url. Must use a different domain from .spec.webapp.url and .spec.webapp.dynamicUrl. This field is immutable. See Configure static and dynamic content URLs for more info false
dynamicUrl
string
DynamicURL defines the scheme, host, and, optionally, port for Appian's dynamic content URL (for example, https://appian.example-dynamic.com or http://appian.example-dynamic.com:32767). The scheme must be the same as that defined by .spec.webapp.url. Must use a different domain from .spec.webapp.url and .spec.webapp.staticUrl. This field is immutable. See Configure static and dynamic content URLs for more info. false
applicationContext
string
ApplicationContext denotes the application context. See Application context for more info. This field is immutable. Defaults to suite. false
dataSources
DataSourceConfig
DataSources defines information used to connect to the primary and business data sources. This field is immutable. false
haExistingClaim
string
HAExistingClaim is the name of an existing PersistentVolumeClaim to be used when deploying Webapp in an HA configuration. The underlying volume must be mountable as read-write by multiple nodes. Required when .spec.webapp.replicas is greater than 1. This field is immutable. false
passwordsPropertiesSecretName
string
PasswordsPropertiesSecretName is a reference to an external Secret containing the passwords.properties file. See Mail Server Setup for more info. This field is immutable. false

Zookeeper

Zookeeper defines the desired state of Zookeeper

Field Description Required
StatefulComponent (Members of StatefulComponent are embedded into this type.)  
image
Image
Image defines information about the Docker image to be used. Both the repository and tag fields are immutable. true
replicas
int32
Replicas defines the desired number of replicas for Zookeeper. This field is immutable. Defaults to 1. false
Open in Github Built: Tue, Mar 28, 2023 (09:28:18 PM)

On This Page

FEEDBACK