Deploying the Site24x7 PHP agent in a Kubernetes environment

How to deploy the Site24x7 PHP agent in a Kubernetes environment?

The following options are available for APM support in Kubernetes.

Without Helm charts:

1. You can include the installation script when building the container. This is similar to the docker installation method. For more information, please refer to our docker installation help documentation.

2. You can include the installation script in the Post Life Cycle hooks of Kubernetes YAML.

Add the following in the Kubernetes deployment YAML file,
  1. lifecycle:
  2.        preStop:
  3.            exec:
  4.                command: ["/bin/bash", "-c", "service zpdpsvc stop;"]
  5.         postStart:
  6.             exec:
  7.                 command: ["/bin/bash", "-c", "wget https://staticdownloads.site24x7.com/apminsight/scripts/s247apmphpinstall.sh && ./s247apmphpinstall.sh -key=<site24x7 license key> -appname=<App name to be shown in APM> ; /etc/init.d/apache2 reload ;" ]
The /etc/init.d/apache2 reload command in the above example is for Apache-based server. If you are using NGINX or FPM based server, you'll need to add the command kill -USR2 1.

With Helm charts:

3. If you are deploying with Helm, you can include the installation script in the Helm charts file.

Add the following to the template folder or deployment.yaml, or if you prefer to use values.yaml, configure as follows:
  1. site24x7:
  2.   apikey: <site24x7 license key>
  3.   appname: <App name to be shown in APM>
Use the following configuration in lifecycle hooks:
  1. lifecycle:
  2.       preStop:
  3.          exec:
  4.              command: ["/bin/bash", "-c", "service zpdpsvc stop;"]
  5.       postStart:
  6.           exec:
  7.                command: ["/bin/bash", "-c", "wget https://staticdownloads.site24x7.com/apminsight/scripts/s247apmphpinstall.sh && ./s247apmphpinstall.sh -key={{ .Values.site24x7.apikey }} -appname={{ .Values.site24x7.appname }} ; /etc/init.d/apache2 reload ;" ]
You can also keep the license keys in a configmap to avoid using them in the deployment files.