Automation setup instruction — Self-hosted 2.0
Automation is currently available for workloads with type Deployment, DaemonSet, StatefulSet, CronJob and Job.
PerfectScale does not support automating workloads that use the OnDelete update strategy. The OnDelete strategy requires manual intervention to update pods, which falls outside the scope of PerfectScale's automated optimization capabilities.
Step 1: Install PerfectScale Automation Agent
When deploying the PerfectScale Automation Agent in a GKE Private Cluster, you need to create an additional firewall rule. This enables the Control Plane address range to communicate with the Cluster Pod IPv4 address range on port 8443. If the webhook call fails, see the troubleshooting guide.
Deploy the PerfectScale automation agent. In order to install the PerfectScale automation agent, run the following commands:
helm repo add perfectscale https://perfectscale-io.github.io --force-update
and
helm upgrade --install -n perfectscale psc-autoscaler \
--set secret.create=false \
--set settings.psUrl=<https://api-{your-web-ui-url}> \
--set settings.telemetryUrl=<https://api-{{your-web-ui-url}}/psc-telemetry> \
perfectscale/psc-autoscaler
If taints and tolerations are defined in the node pool, you must include them in the command too, so it will appear like this:
helm upgrade --install -n perfectscale psc-autoscaler \
--set tolerations[0].key=node_pool \
--set tolerations[0].operator=Equal \
--set tolerations[0].value=tooling \
--set secret.create=false \
perfectscale/psc-autoscaler
If you utilize CI/CD tools with auto-sync, ensure to review the additional configuration steps. /pages/K6pnJVnSY6ckbd69UwMr
Follow the troubleshooting instructions provided, or contact support if you encounter any issues.
Verify Automation Agent Installation
To test and confirm that the Automation Agent was installed successfully, run the following command:
helm test psc-autoscaler -n perfectscale --logs
Disabling Webhook for Specific Namespaces
Once the autoscaler is installed, all pods in the cluster go through the admission webhook. You can exclude specific namespaces from this process by disabling the webhook for them. For example:
helm upgrade --install -n perfectscale psc-autoscaler perfectscale/psc-autoscaler \
--set secret.create=false \
--set 'settings.excludedNamespaces={kube-system,ns_to_exclude1,ns_to_exclude2}'