* APISIX Dashboard ** Required software - Helm: v3.13.2-linux-amd64 - Kubernetes ($ kubectl version): - Client Version: v1.28.4 - Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 - Server Version: v1.28.4 - OS: Red Hat Enterprise Linux Server release 7.9 (Maipo) - Kernel: 3.10.0-1160.102.1.el7.x86_64 - Helm charts: - apisix-dashboard-0.8.1 - APISIX Dashboard (installed using Helm chart): 3.0.0-alpine ** Networking - Service port accessible on the node: 3053 ** Preparation using Helm chart 1. helm repo add apisix https://charts.apiseven.com 2. helm update 3. helm show values apisix/apisix-dashboard > values_orig.yaml 4. cp values_orig.yaml values.yaml 5. Modify values.yaml for required configuration. - To see the configuration differences between the original version and the version committed in the repository of values.yaml, do: $ diff -u values_orig.yaml values.yaml 6. Generate the Helm template using values.yaml: - helm template -f values.yaml -n apisix apisix apisix/apisix-dashboard > apisix-dashboard_template_orig.yaml 7. In the current setup, apisix-dashboard_template_orig.yaml is templatized into apisix-dashboard_template.yaml.j2 by modifying certain variables. See constants.in for variables that have been templatized. - Variables inside apisix-dashboard_template.yaml.j2 are replaced with values stored inside `constants.in` and `../global-constants.in` files, and then saved into apisix_template.yaml by running the ./setup_template.sh script. - To view the differences between the original template (apisix-dashboard_template_orig.yaml) and the generated template (apisix-dashboard_template.yaml) run the script using the `online` argument: $ ./setup_template.sh online *** Notes 1. There is no need for creating a persistent volume (PV) for the dashboard as all data for the dashboard is fetched from APISIX etcd data store. 2. If the container crashes due to low memory, change the value of `resource -> limits` to `{}` (like in the example below) in apisix-apisix-dashboard deployment spec (inside apisix-dashboard_template.yaml.j2 file). ``` readinessProbe: httpGet: path: /ping port: http resources: {} ``` * APISIX Dashboard Kubernetes setup 1. Copy all the files from 'apisix_dashboard' directory. 2. Modify constants.in for the following variables: 1. LOCAL_REGISTRY: Put in the correct URL of local container registry for offline installation (client-side). 2. LOCAL_DOWNLOAD_REPO: Put in the correct URL of the local download file server for offline installation (client-side). 3. For online (ec2) installation do not change these two variables. 3. Upload the following images to the local private container registry: 1. apisix-dashboard:3.0.0-alpine 2. busybox 4. Run setup_template.sh: - If on client-side, run: `./setup_template.sh offline` - If on EC2 server, run: `./setup_template.sh online` 5. kubectl -n apisix apply -f apisix-dashboard_template.yaml