View this page in the latest version of Appian. Appian Custom Resource Configuration File Share Share via LinkedIn Reddit Email Copy Link Print On This Page This page describes the Appian custom resource (CR) configuration file. What is the Appian CR configuration file? The appian.yaml file enables you to configure Appian custom resources in Kubernetes. Create the file To create an Appian CR configuration file, copy the appian.yaml template file, then use your preferred editing tool to replace the template values with values appropriate to your environment. Note: The appian.yaml file follows standard YAML rules of generally accepting string values without wrapping quotes. The only exception is that all .spec.customProperties values must be wrapped by double quotes ("). Learn more about these custom properties. Edit the file You can use your preferred editing tool to edit the Appian CR configuration file. Certain edits to the configuration file require either a full restart or a webapp-only restart. All other fields in the configuration file can be edited on a running site. Template Caution: The code below serves as just a starting point. Refer to the Custom Resource Definition to explore all supported fields and values. The version: field needs to be updated with a complete build. The code snippet below, as well as the downloadable template needs version: updated. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 apiVersion: crd.k8s.appian.com/v1beta1 kind: Appian metadata: # USER ACTION REQUIRED - If using long-term licenses, update to match the # wildcard pattern of the licenses you were provided # https://docs.appian.com/suite/help/latest/k8s/install-appian-on-k8s.html#request-licenses name: appian spec: # https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ imagePullSecrets: [] # []string # - regcred # USER ACTION REQUIRED - Update to the Version of platform that Appian runs on version: X.X.X.X k3LicSecretName: k3lic k4LicSecretName: k4lic appianLicConfigMapName: appian-lic # USER ACTION REQUIRED - Update to match the scheme, host, and, optionally, # port of your site # https://docs.appian.com/suite/help/latest/Post-Install_Configurations.html#configure-your-site-url url: http://myappiansite.com # https://docs.appian.com/suite/help/latest/Custom_Configurations.html#custom-properties customProperties: # map[string]string # https://docs.appian.com/suite/help/latest/resource-requests-and-limits.html#webapp conf.appserver.maxHeapSize: 3072m zookeeper: # USER ACTION REQUIRED - Update to match the coordinates of the Appian # Zookeeper container image as you pushed it to your registry image: repository: registry.example.com/appian/zookeeper replicas: 3 volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Zookeeper storage needs storage: 5Gi env: # []corev1.EnvVar # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#zookeeper - name: ZK_HEAP_MIN value: 128m - name: ZK_HEAP_MAX value: 256m # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#zookeeper resources: # corev1.ResourceRequirements requests: cpu: 100m memory: 307Mi # ZK_HEAP_MAX * 1.2 to account for non-heap memory limits: cpu: 200m memory: 448Mi # ZK_HEAP_MAX * 1.75 to account for non-heap memory kafka: # USER ACTION REQUIRED - Update to match the coordinates of the Appian Kafka # container image as you pushed it to your registry image: repository: registry.example.com/appian/kafka replicas: 3 volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Kafka storage needs storage: 5Gi env: # []corev1.EnvVar # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#kafka - name: KAFKA_HEAP_MIN value: 512m - name: KAFKA_HEAP_MAX value: 1024m # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#kafka resources: # corev1.ResourceRequirements requests: cpu: 500m memory: 1229Mi # KAFKA_HEAP_MAX * 1.2 to account for non-heap memory limits: cpu: 2000m memory: 1792Mi # KAFKA_HEAP_MAX * 1.75 to account for non-heap memory searchServer: # USER ACTION REQUIRED - Update to match the coordinates of the Appian # Search Server container image as you pushed it to your registry image: repository: registry.example.com/appian/search-server replicas: 1 volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Search Server storage needs storage: 5Gi env: # []corev1.EnvVar # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#search-server - name: SS_HEAP value: 1280m # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#search-server resources: # corev1.ResourceRequirements requests: cpu: 200m memory: 1.5Gi # SS_HEAP + 256Mi to account for non-heap memory limits: cpu: 300m memory: 3Gi # Double requests.memory dataServer: # USER ACTION REQUIRED - Update to match the coordinates of the Appian Data # Server container image as you pushed it to your registry image: repository: registry.example.com/appian/data-server replicas: 1 topology: rtsCount: 2 volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Data Server storage needs storage: 5Gi # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#data-server resources: # corev1.ResourceRequirements requests: cpu: 100m memory: 512Mi limits: cpu: 200m memory: 1Gi serviceManager: # USER ACTION REQUIRED - Update to match the coordinates of the Appian # Service Manager container image as you pushed it to your registry image: repository: registry.example.com/appian/service-manager replicas: 1 topology: analyticsExecShardCount: 3 volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Service Manager storage needs storage: 5Gi # https://docs.appian.com/suite/help/latest/k8s/high-availability.html # haExistingClaim: "" env: # []corev1.EnvVar # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#service-manager - name: KOMODO_DIRECT_MEM_MAX value: 512m - name: KOMODO_HEAP_MAX value: 1g # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#service-manager resources: # corev1.ResourceRequirements requests: cpu: 200m memory: 2.5Gi limits: cpu: 2000m memory: 32Gi webapp: # USER ACTION REQUIRED - Update to match the coordinates of the Appian # Webapp container image as you pushed it to your registry image: repository: registry.example.com/appian/webapp replicas: 1 # https://docs.appian.com/suite/help/latest/Post-Install_Configurations.html#configure-your-static-and-dynamic-content-urls # staticUrl: http://myappiansite-static.com # dynamicUrl: http://myappiansite-dynamic.com # Configuration for connecting to the Appian and business data sources. If # connecting to MySQL or IBM Db2, use an init container to add the # appropriate RDBMS/JDBC driver JAR to Tomcat's classpath # https://docs.appian.com/suite/help/latest/Configuring_Relational_Databases.html#provide-data-source-connection-information # https://docs.appian.com/suite/help/latest/k8s/init-and-sidecar-containers.html#using-init-containers-to-add-jars-to-tomcat's-classpath dataSources: primary: name: jdbc/AppianDS type: javax.sql.DataSource factory: org.apache.tomcat.jdbc.pool.DataSourceFactory driverClassName: org.mariadb.jdbc.Driver url: "jdbc:mariadb://mariadb-appian.<MY_SITE_NAMESPACE>.svc.cluster.local:3306/AppianDS?useOldAliasMetadataBehavior=true" username: username # USER ACTION REQUIRED - Create a secret containing the password used to # connect to the data source and reference it here passwordSecretKeyRef: name: "" key: "" attributes: initialSize: "5" maxActive: "200" defaultTransactionIsolation: "READ_COMMITTED" maxWait: "30000" minIdle: "5" minEvictableIdleTimeMillis: "90000" timeBetweenEvictionRunsMillis: "450000" validationQuery: "SELECT 1" testOnBorrow: "true" business: [] # https://docs.appian.com/suite/help/latest/k8s/email.html # passwordsPropertiesSecretName: "" volumeClaimTemplateSpec: # corev1.PersistentVolumeClaimSpec # storageClassName: "" accessModes: - ReadWriteOnce resources: requests: # Configure based on your expected Webapp storage needs storage: 5Gi # https://docs.appian.com/suite/help/latest/k8s/high-availability.html # haExistingClaim: "" # https://docs.appian.com/suite/help/latest/k8s/health-check-k8s.html # healthCheckExistingClaim: "" # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#webapp resources: # corev1.ResourceRequirements requests: cpu: 100m memory: 4.5Gi limits: cpu: 1000m memory: 6Gi httpd: # USER ACTION REQUIRED - Update to match the coordinates of the Appian httpd # container image as you pushed it to your registry image: repository: registry.example.com/appian/httpd replicas: 2 # https://docs.appian.com/suite/help/latest/k8s/exposing-appian-on-k8s.html service: annotations: {} # map[string]string # https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types type: ClusterIP # https://docs.appian.com/suite/help/latest/k8s/exposing-appian-on-k8s.html#ingress ingress: enabled: true # USER ACTION REQUIRED - Use either the ingressClassName field or the # deprecated kubernetes.io/ingress.class annotation to refer to your desired # ingress class # https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class annotations: {} # map[string]string # kubernetes.io/ingress.class: "" # ingressClassName: "" # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#httpd resources: # corev1.ResourceRequirements requests: cpu: 100m memory: 32Mi limits: cpu: 300m memory: 48Mi # USER ACTION REQUIRED - Uncomment the rpa section below if you are deploying Appian RPA # rpa: # # USER ACTION REQUIRED - Update to match the version of the Appian RPA image # # that you pulled for deployment # version: 9.9.0 # # USER ACTION REQUIRED - Update to match the coordinates of the Appian # # RPA container image as you pushed it to your registry # # that you pulled for deployment # image: # repository: registry.example.com/appian/rpa # volumeClaimTemplateSpec: # accessModes: # - "ReadWriteOnce" # resources: # requests: # storage: "5Gi" # # USER ACTION REQUIRED - Update to match the hostname and port for your Appian RPA MariaDB # database: # hostname: my-rpa-mariadb # port: 3306 # schema: Rpa # # USER ACTION REQUIRED - Create a secret containing the password used to # # connect to the rpa data source and reference it here # # https://docs.appian.com/suite/help/latest/k8s/rpa-setup-on-k8s.html # credentialsSecretName: rpa-data-source-credentials # # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#rpa # properties: # # [OPTIONAL] This represents the max memory (Xmx) allocated to the JVM. If omitted, this will default to 2048 # rpa.max.memory: 4096 # # [OPTIONAL] RPA expects to have unrestricted internet access by default, set this to "offline" if that is not the case. # # If omitted, this will default to "online" # rpa.artifact.resolution: "online" # # USER ACTION REQUIRED - Update to match the url and port for your Appian RPA MariaDB # rtdo: # dataSource: # url: jdbc:mariadb://my-rpa-mariadb:3306/Rtdo # username: my-rpa-mariadb-username # passwordSecretName: rpa-data-source-credentials # # USER ACTION REQUIRED - Update to match the url and port for your Appian RPA MariaDB # rpdo: # dataSource: # url: jdbc:mariadb://my-rpa-mariadb:3306/Rpdo # username: my-rpa-mariadb-username # passwordSecretName: rpa-data-source-credentials # # USER ACTION REQUIRED - Update to match the url and port for your Appian RPA MariaDB # robotRDO: # dataSource: # url: jdbc:mariadb://my-rpa-mariadb:3306/RobotRDO # username: my-rpa-mariadb-username # passwordSecretName: rpa-data-source-credentials # # https://docs.appian.com/suite/help/latest/k8s/resource-requests-and-limits.html#rpa # resources: # requests: # cpu: 1000m # memory: 2.5Gi # limits: # cpu: 2000m Feedback Was this page helpful? SHARE FEEDBACK Loading...