Free cookie consent management tool by TermsFeed

Editing, Stopping, and Restarting Appian

On This Page

This page applies to self-managed environments only. It describes how to edit, stop, or restart an Appian site and how to restart the Application Server (webapp).

Edit the Appian site

In self-managed Appian environments, edits to certain site properties require either a full restart or a webapp-only restart. All other site properties can be edited on a running site.

Changes requiring a full restart

Note:  In order to prevent users from inadvertently changing a field in the Appian CR configuration file that would cause a problem with the product, the Appian operator has a validating webhook that prevents immutable fields from being changed. The validating webhook is only enabled when webhooks.enabled is set to true in the Appian operator's Helm values.

Properties that require a full restart are marked as immutable in the Appian CRD docs.

The table below summarizes these immutable properties:

Field Property Description
DataServer image Configuration for the component's container image.
replicas Desired number of replicas for Data Server.
EngineOverrides replicas Desired number of replicas for the engine.
Httpd image Configuration for the component's container image.
Kafka image Configuration for the component's container image.
replicas Desired number of replicas for Kafka.
MirrorMaker image Configuration for the component's container image.
RPA image Configuration for the RPA component's container image.
version The RPA version.
SearchServer image Configuration for the Search Server component's container image.
replicas Desired number of replicas for Search Server.
ServiceManager haExistingClaim Name of an existing ReadWriteMany (RWX) persistent volume claim for Service Manager's storage.
image Configuration for the component's container image.
replicas Desired number of replicas for Service Manager.
ServiceManagerTopology analyticsExecShardCount Number of shards of the process analytics and process execution engines.
StatefulComponent volumeClaimTemplateSpec Spec for the persistent volume claim template(s) for the component's stateful set(s).
version The Appian platform version.
Webapp haExistingClaim Name of an existing ReadWriteMany (RWX) persistent volume claim for Webapp's storage.
healthCheckExistingClaim Name of an existing ReadWriteMany (RWX) persistent volume claim for Health Check's storage.
image Configuration for the Webapp component's container image.
Zookeeper image Configuration for the Zookeeper component's container image.
replicas Desired number of replicas for Zookeeper.

To change these properties:

  1. Stop the Appian site.
  2. Edit the Appian CR configuration file.
  3. Restart the Appian site.

Changes requiring a webapp restart only

Changes to certain .spec.customProperties fields in the Appian CR configuration file require that you restart the Application Server (webapp) for the changes to take effect.

These properties include:

Property Prefix Application Server Restart Needed
appian.feature.* No
conf.forms.* No
conf.iam.* No
conf.mailhandler.* No
conf.node.webservice.* No
conf.security.* No
resources.appian.ag.application.* No
resources.appian.ag.constants.* No
resources.appian.applications.applications.* No
resources.appian.km.file_icons.* No
resources.appian.process.email-expressions.* No
server.conf.* No
All other prefixes Yes

To change these properties:

  1. Edit the Appian CR configuration file.
  2. Restart the webapp component.
  3. (Optional) Check whether the custom properties on the webapp pod have been fully updated:

    1
    
    kubectl -n <NAMESPACE> exec <WEBAPP POD> -- cat /usr/local/appian/ae/conf/custom.properties
    

Changes you can make to a running site

For all Appian properties that do not require either a full restart or a webapp restart, you can change the properties while the site is still running. When you make these changes, the Appian operator automatically reconciles that change to any running custom resource it manages.

For a list of these properties, see the Appian CRD docs.

To change these properties, use the following command:

1
kubectl -n <NAMESPACE> edit appians <APPIAN NAME>

where <APPIAN NAME> corresponds to the metadata.name property in the Appian CR configuration file.

Stop the Appian site

The following steps will stop all components of the Appian site.

Note:  Because most Appian components are StatefulSets with PersistentVolumesClaims, the component data is persisted when shutting down Appian. The Appian site can then be restarted without data loss.

  1. Get the name of your Appian site:

    1
    
    kubectl get -n <NAMESPACE> appians
    

    The response should contain the name, URL, status, and age of the site.

    For example:

    1
    2
    
    NAME     URL                       STATUS   AGE
    appian   http://myappiansite.com   Ready    25m
    


  2. If you intend to restart the Appian site, make a copy of the existing Appian CR configuration file (appian.yaml) onto your computer.

    For example, you can:

    1. Print out the current appian custom resource definition.

      1
      
      kubectl -n <NAMESPACE> get appian <APPIAN NAME> -oyaml
      
    2. Copy the output and save as a YAML file.

  3. Delete the Appian site.

    1
    
    kubectl delete -n <NAMESPACE> appian <APPIAN NAME>
    

    For example:

    1
    
    kubectl delete -n my-site-namespace appian appian
    

    Shutdown can take some time and is a synchronous operation, so this command may appear to hang.

  4. Confirm the Appian site was deleted with the following commands.

    1
    
    kubectl -n <NAMESPACE> get pods
    
    1
    
    kubectl -n <NAMESPACE> get appians
    

    All Appian component pods should now be deleted. Output from running the get appians command should be:

    1
    
    No resources found in <NAMESPACE> namespace.
    

If your site has issues shutting down, follow the steps in Troubleshooting site shutdown to debug.

Restart the Appian site

Having stopped the Appian site, you can restart as follows.

  1. Make desired changes to the Appian CR configuration file (appian.yaml).

  2. Run kubectl apply to restart the site with the changes:

    1
    
    kubectl apply -n <NAMESPACE> -f appian.yaml
    
  3. It will take about 20 minutes for the Appian site to fully recover. Check progress on the various Appian component pods with the following command.

    1
    
    kubectl -n <NAMESPACE> get pods
    

    The STATUS of the Appian component pods will transition from Creating to Starting to Running. When the Appian site is ready, you should see all pods have READY of 1/1 and STATUS of Running, similar to the following.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    NAME                                           READY   STATUS    RESTARTS   AGE
    appian-data-server-0                           1/1     Running   0          25m
    appian-httpd-8658f7fdb7-k9f6j                  1/1     Running   0          25m
    appian-httpd-bf56974d4-crv4g                   1/1     Running   0          25m
    appian-kafka-0                                 1/1     Running   0          25m
    appian-search-server-0                         1/1     Running   0          25m
    appian-service-manager-analytics00-0           1/1     Running   0          25m
    appian-service-manager-analytics01-0           1/1     Running   0          25m
    appian-service-manager-analytics02-0           1/1     Running   0          25m
    appian-service-manager-channels-0              1/1     Running   0          25m
    appian-service-manager-content-0               1/1     Running   0          25m
    appian-service-manager-download-stats-0        1/1     Running   0          25m
    appian-service-manager-execution00-0           1/1     Running   0          25m
    appian-service-manager-execution01-0           1/1     Running   0          25m
    appian-service-manager-execution02-0           1/1     Running   0          25m
    appian-service-manager-forums-0                1/1     Running   0          25m
    appian-service-manager-groups-0                1/1     Running   0          25m
    appian-service-manager-notifications-0         1/1     Running   0          25m
    appian-service-manager-notifications-email-0   1/1     Running   0          25m
    appian-service-manager-portal-0                1/1     Running   0          25m
    appian-service-manager-process-design-0        1/1     Running   0          25m
    appian-webapp-0                                1/1     Running   0          25m
    appian-zookeeper-0                             1/1     Running   0          25m
    

If you have any trouble with creating the Appian site, see Troubleshooting site startup.

Restart the webapp component

You may need to restart the webapp component in the course of updating configurations such as changes to customProperties.

Caution:  This type of restart is only safe to do for the webapp component. If you need to change the configuration specific to any other component, we recommend doing a full restart to apply the changes.

To restart the webapp component, delete its pod(s).

1
kubectl -n <NAMESPACE> delete pod <WEBAPP POD>

The default grace shutdown period is set to 65 minutes (3900 seconds) to allow system processes to finish, but it can be customized. If you want to set a shorter grace period, add --grace-period= by setting the value in seconds. For example, if you want to delete the pod after 1 minute (60 seconds), execute the following:

1
kubectl -n <NAMESPACE> delete pod <WEBAPP POD> --grace-period=60

After deletion, Kubernetes will immediately start a new pod that will take on any configuration changes.

Delete the Appian site

To fully delete the Appian site on Kubernetes, including all data, you will need to delete the PersistentVolumes that are attached to the StatefulSets.

  1. Stop the Appian site.
  2. Get the existing PersistentVolumeClaims on the Appian namespace.

    1
    
    kubectl get persistentvolumeclaim
    
  3. For each Appian component that has a PersistentVolumeClaim (PVC), delete it with the following command.

    1
    
    kubectl delete persistentvolumeclaim <APPIAN COMPONENT PVC>
    
  4. Depending on how the PVC's reclaim policy is set up, deleting the PersistentVolumeClaim will in turn delete the PersistentVolume. Check that the Appian component PersistentVolumes were deleted with the following command.

    1
    
    kubectl get persistentvolume
    

    If any PersistentVolumes for Appian components still exist, you'll want to delete each of them with the following command.

    1
    
    kubectl delete persistentvolume <APPIAN COMPONENT PV>
    

Uninstall the Appian operator

  1. Uninstall the Appian operator via helm uninstall:

    1
    
    helm --namespace appian-operator uninstall appian-operator --wait
    
  2. Delete the appian-operator namespace

    1
    
    kubectl delete namespace appian-operator
    
  3. Delete the Appian custom resource definition (CRD):

    1
    
    kubectl delete crd appians.crd.k8s.appian.com
    

Feedback