# Automation with GitOps

PerfectScale Automation can be seamlessly integrated with GitOps solutions such as ArgoCD and Flux. However, to avoid any potential issues due to different configurations, we recommend reviewing the documentation below.

## Certificates regeneration loop

In the Autoscaler Helm chart, certificate generation occurs whenever ArgoCD executes the `helm template`. This process may lead to temporary outages of the Autoscaler due to the caBundle and the certificates/keys being out of sync. To prevent this issue, we recommend generating a static caBundle and certs using the following instructions.

### How to generate static Certs for Autoscaler

To create a static certificate, follow a few simple steps:

1. Generate Certs using the usual helm template command.

{% hint style="info" %}
The certificate is valid for 1825 days.
{% endhint %}

```
helm template -n perfectscale psc-autoscaler perfectscale/psc-autoscaler > psc-autoscaler.yaml
```

2. Get Ca Certs from the generated template.

```
cat psc-autoscaler.yaml | grep caBundle | head -n 1 | awk '{print $NF}'
exemple output: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJekNDQWd1Z0F3SUJBZ0lRTWllcDBjbVNuWk1GRjE0SXRuQ3E0ekFOQmdrcWhraUc5dzBCQVFzRkFEQWMKTVJvd0dBWURWUVFERXhGd2MyTXRZWFYwYjNOallXeGxjaTFqWVRBZUZ3MHlOREE1TWpZd016SXlNVEZhRncweQpPVEE1TWpVd016SXlNVEZhTUJ3eEdqQVlCZ05WQkFNVEVYQnpZeTFoZFhSdmMyTmhiR1Z5TFdOaE1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTdlbTlSMFlmckRpVmtEdXR4RUpEeXllQ0lFQW4KdllZZVNYb2RKNU80Q1VQakRwZHNvdEc3WlRuL00wd0lqSVVMSUszSnhjYmJPUkFBU3haTHJFU1lTM010MlZKZQpSL3pEU2lRM0ROUEV4Z1k2NDArdjVmWmwrN2xnM2dUd2tPRms4U1A1VEpjN3ViTUxFZFJGWGtkOTlhS2F6VDJKCldia3N3bEx0YTUzbmZQSUNmLzFnd2xKZVlZYTRMZUxHY1dQclRKUWorcXpYME9CdWg0cjhQNzRCT3lrOEhGUUgKTlk4L05mczZJQ2c1d2lJcjRJV2pvd05SZS9NUW14SVhwaWtJV21IallQUUV1R1BMWElUYnc4cGNvVS8wajJrYQpZN1c3UDBsdWlRWDV6Yzd1TlRrN3NlTE85N2xLNWY5eWJ4QnJUcHRaeXM3azA2MllvYm9hamZCbkh3SURBUUFCCm8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FxUXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUYKQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZDNXNQTVpQUDFYV2Y1cmZZM0dGVVhuTgpZSDRGTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFER0NvTDNhdTZRS2F3ZjZnYmRCdGprVFJLb1pPMzBzZkpVCnRJUUVpb1loZlBPaGdiZm1IbFVHS2NYS2NYdFF4dWJXY2dpYUNjeUpqMk9sb2MwWXpnbHVETGJONHVpVGlNcnEKcUkvMWU2N213YUJvQmtBdkU2UWVkRmxYNmlMeVhpM0wxNEFEUDQ1eHhIRm13RzRmRlRzQktvU09uMDF5YW10ZwpwR3lzeWN4QXpET0pYQTYvL0pmd1grT3p1c0lUREVEUXdDWWxZdEZGbnlvdjZtRlFKWjZtbFROMDdhVng1STEzClVXRUlSUTJDVEJkM08zOGc5dkJKYUYvUHQ4YzZqUGZFQW43ZjRsSVM3dVBoU0NJc0FYbS93Q1Fnc29OTStKRHEKOWIrUTZDUGRma1dPdXo5M0RBVmN0T3B6bmJFR0JHcW1oc29GMjRseUJ5dVUzQXVTa2QzOQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
```

3. Get Crt Certs from the generated template.

```
cat psc-autoscaler.yaml | grep "tls.crt:" | awk '{print $NF}'
exemple output: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURhekNDQWxPZ0F3SUJBZ0lSQU1xRlFBVDRtcmJhcWNqR1lwWHVjcUV3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUmNITmpMV0YxZEc5elkyRnNaWEl0WTJFd0hoY05NalF3T1RJMk1ETXlNakV4V2hjTgpNamt3T1RJMU1ETXlNakV4V2pBWk1SY3dGUVlEVlFRREV3NXdjMk10WVhWMGIzTmpZV3hsY2pDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxZeXFTSEVLRExHdmV3T0NBTmdLRUt4cm1uTXlSaEYKTzZuRUJHdFluOTNwMXovd0pJVHZ4cEpJNmRwamVWMzZyREREU0R5cnlYbndkYXBjcHU4WUdMWHhxd0xrUVpkSgpkRExlNVc0MVQrZXNOMGpyUWZqaFk1L2xRODdkemFlY1RleEFYNkFiUG9Uc1h5Q0N0OTU3aEdCdWN5STdoSGoyCmxiMm4yRlREVi93czRwbFRwVW56dmw0QWJvUS9HTTZWdmRBdUZUV3B4SDRmOXliYjYrL0pxSVFXWkJqL0ZIK3YKS3l3NVY5QWVWY3BkME9JMVhyd3lyampvLzJjRy9ONUNKUnN2T0l0WXhnZy9mek94cjZVWDlibmgweVdWSk1uTAoxUGdxU0tONzk1S3J0ckI0dzVPYlMvVmo3c0J3WllSRGk1VENiTUNtUm5JMHZzTWY0dXE2cms4Q0F3RUFBYU9CCnFqQ0JwekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUYKQndNQ01Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVUxtdzh4azgvVmRaL210OWpjWVZSZWMxZwpmZ1V3UndZRFZSMFJCRUF3UG9JYmNITmpMV0YxZEc5elkyRnNaWEl1Y0dWeVptVmpkSE5qWVd4bGdoOXdjMk10CllYVjBiM05qWVd4bGNpNXdaWEptWldOMGMyTmhiR1V1YzNaak1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ2YKMnQvTVJucU1BMW1BTzkyZGtpQzFIQXh4N2RyWUxwUnE3amVCZVFHMGQrMURvYmRhakhiZzNTc3RFTG53L1hUZAo4V0hIcytPckNQL2lBbkpDaVlCOFVJK2F3NU9jY1lUeUR2eEZod3hrZzFndEdXcGQvczMreThQYU9EVHAyVS9hCkhjMXQ2U3FUSWF2WXE2UXhESzNVc2lYanVBa2orQk5PMGZ0NW9CY1lDZzJpZERtcXpKS1dzdjQwM0RHWmw0S3gKazNPRWNqVUY1YTZFaURRTTZ2VEQwQVFGVzRHeXprZS9ua29LdlJSZHJyUytibWFCSEwyeS9BQkxOdG9DOXZKVQpnU2N2K2hjL0VvdktZeFg4cDZ4dkd0RjMzeXhOb3RjdjV2WGJSeW1iYTFLQUg5cDZ4aFFDRGpyUVFEUHVSZElUCktETDI5d3FjdFJCc2pZUzdjN3R4Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
```

4. Get Key Certs from the generated template.

```
cat psc-autoscaler.yaml | grep "tls.key:" | awk '{print $NF}'
exemple output: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdGpLcEljUW9Nc2E5N0E0SUEyQW9Rckd1YWN6SkdFVTdxY1FFYTFpZjNlblhQL0FrCmhPL0dra2pwMm1ONVhmcXNNTU5JUEt2SmVmQjFxbHltN3hnWXRmR3JBdVJCbDBsME10N2xialZQNTZ3M1NPdEIKK09Gam4rVkR6dDNOcDV4TjdFQmZvQnMraE94ZklJSzMzbnVFWUc1eklqdUVlUGFWdmFmWVZNTlgvQ3ppbVZPbApTZk8rWGdCdWhEOFl6cFc5MEM0Vk5hbkVmaC8zSnR2cjc4bW9oQlprR1A4VWY2OHJMRGxYMEI1VnlsM1E0alZlCnZES3VPT2ovWndiODNrSWxHeTg0aTFqR0NEOS9NN0d2cFJmMXVlSFRKWlVreWN2VStDcElvM3Yza3F1MnNIakQKazV0TDlXUHV3SEJsaEVPTGxNSnN3S1pHY2pTK3d4L2k2cnF1VHdJREFRQUJBb0lCQUZ6SVE3VDhUWFErSFMxKwpuN29JVjdoTy80REZWb3JUaHVTVys2RW15cEtacUpIWTJ1QVBzdEYvN0FiWXJVK2NmZDkvTXVRaW4wRkhvTVFXCjFyUGZVNFlrQVhCQmlOMWYvSnFEUTlieHN6VkpVQVlFTjk1aitQWE9MTS9GeUJyWTBCM0ZVbTBZTXFoQ0x0ZEIKZWgwRVRZOUY3Nys1QzJjR080OFBVRzBwNVQ1M1NMNXdBNWN3UFNkakRVdGxlNVpCZ2kvNU1UMVNmU1owV1g0SAozOVIrdm1LTElsZHpkS0ZYWnRTOFNlbS9qTHcwU2s5dTl4VXdsRDZ5OUJXb0QwSm5DOUtYdDJTS1Jpekk4SUNoCkIvU3ZaMkhXblVVTUVxSkhxYXYvaGs2amJRR1p1eUJTWmNkSFV4WXJtTUl2L3VhdmcyRHNrekVYNDI2R016aTMKRmNUUkhURUNnWUVBNVFIVHdacjBtSUo4bmdJQVVqUjduOW80aUtPRmVCZmN0YmFFLythTnF4ZkN1bHdRT2RJTgoxQW03SFl6M1JGWGtwQkJSc09ERkd5OHlOaCtYS2lRTnJ5TzUvNGNmdHNtVENLTXBRMUhVTjV5UXg2VDZMemtJCkNrQWJrOHhLWVk5OXpPZnFKYThueFlrWFRoWXJ6eWR2ODJxT1JrZ1FqSFdHeE1vVlJmaEZxdFVDZ1lFQXk2eGoKZWlSRVNkWHQyU1I1TENuTG9Ld29NbHcwTkNjcStJVFBSb1FoQTJHTHF0S2dqVHExWEFNZ2ZNUTVFenlIK2JoZAo5ZVlMK2pxYzRsZVBORk0zYjI4YnJQNmdPV1VBeE5xK0JXY2JGblNYMmc5Y2FrOVk2TllsMnFQbzZzUGdKSVpaCkIyV1o0Q0NkazVDNENabmh0VGZIOW5DbEorT0p2Z2NEMkFieVBwTUNnWUVBNGMySGFtTEx3b1VITXhWdUU2QkUKTlQ0S2VGQWtEbUlZOGVOaUNLRGdGMDk2Wmg3WXNPcDVVQlc0Tms4RWtKRFF2U1NLS0FtNDBERWRKVmpJeUhoOApOYkRZZVNoWEVQaDR6Zzl6WkRtUE1yWmgyempFcDBOb3RoSzRIbWRWQUJWb1NWNXk5VzFibmQ2cTZBZmNjb25FClRSTkg3ZXlveEpZdHFHUkp6WkFid1hFQ2dZRUFzZ1djOFk2dmphWUtma2l1RFJiL0lCSTZGRUtaY3BobHE5RlIKNXYzb2FTOGl5QTNRUFlGNk1kR2QzTkFhWHlFQ2JSaGtNR0dDU0paZ3VFbjJKck14K2htd3BCWHZjQnREZjh6KwpXSFNWclp2OWVxRUFrditGNUFZQ0VraEFkcXI4eUpBUlV6RFFQYUhrZWEzOTNvNTlSVXRiWWFGMkNoYU5OK2FqCnluZlAxemNDZ1lBM3hrYWlvNkhpMmVjUkp6RGNWd1dvQ1VycWF0bHhCSVJjQmNtZ1h6WTZKNVVvSG9nWVZNcjkKRGs0Y3B1YXZnNklmRXM5Y0NPTnNEOC9YUDNZRmM4Mm4vUy9IdW10N0ZUdmJQcmc5eHdWWEFxcEExOVUxUXVkVApkSkZ1cWZWWjVzTXdCRXUyUjFjckJYNWNVQzJzVUE1eVhmaUpZb3FwTkFIOTZwQTJna010Vmc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
```

5. In values.yaml set **admission.staticCerts.enabled** to **true** and **copy/past certs**

```yaml
admission:
  failurePolicy: "Ignore"
  staticCerts:
    enabled: true
    caCert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJekNDQWd1Z0F3SUJBZ0lRTWllcDBjbVNuWk1GRjE0SXRuQ3E0ekFOQmdrcWhraUc5dzBCQVFzRkFEQWMKTVJvd0dBWURWUVFERXhGd2MyTXRZWFYwYjNOallXeGxjaTFqWVRBZUZ3MHlOREE1TWpZd016SXlNVEZhRncweQpPVEE1TWpVd016SXlNVEZhTUJ3eEdqQVlCZ05WQkFNVEVYQnpZeTFoZFhSdmMyTmhiR1Z5TFdOaE1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTdlbTlSMFlmckRpVmtEdXR4RUpEeXllQ0lFQW4KdllZZVNYb2RKNU80Q1VQakRwZHNvdEc3WlRuL00wd0lqSVVMSUszSnhjYmJPUkFBU3haTHJFU1lTM010MlZKZQpSL3pEU2lRM0ROUEV4Z1k2NDArdjVmWmwrN2xnM2dUd2tPRms4U1A1VEpjN3ViTUxFZFJGWGtkOTlhS2F6VDJKCldia3N3bEx0YTUzbmZQSUNmLzFnd2xKZVlZYTRMZUxHY1dQclRKUWorcXpYME9CdWg0cjhQNzRCT3lrOEhGUUgKTlk4L05mczZJQ2c1d2lJcjRJV2pvd05SZS9NUW14SVhwaWtJV21IallQUUV1R1BMWElUYnc4cGNvVS8wajJrYQpZN1c3UDBsdWlRWDV6Yzd1TlRrN3NlTE85N2xLNWY5eWJ4QnJUcHRaeXM3azA2MllvYm9hamZCbkh3SURBUUFCCm8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FxUXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUYKQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZDNXNQTVpQUDFYV2Y1cmZZM0dGVVhuTgpZSDRGTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFER0NvTDNhdTZRS2F3ZjZnYmRCdGprVFJLb1pPMzBzZkpVCnRJUUVpb1loZlBPaGdiZm1IbFVHS2NYS2NYdFF4dWJXY2dpYUNjeUpqMk9sb2MwWXpnbHVETGJONHVpVGlNcnEKcUkvMWU2N213YUJvQmtBdkU2UWVkRmxYNmlMeVhpM0wxNEFEUDQ1eHhIRm13RzRmRlRzQktvU09uMDF5YW10ZwpwR3lzeWN4QXpET0pYQTYvL0pmd1grT3p1c0lUREVEUXdDWWxZdEZGbnlvdjZtRlFKWjZtbFROMDdhVng1STEzClVXRUlSUTJDVEJkM08zOGc5dkJKYUYvUHQ4YzZqUGZFQW43ZjRsSVM3dVBoU0NJc0FYbS93Q1Fnc29OTStKRHEKOWIrUTZDUGRma1dPdXo5M0RBVmN0T3B6bmJFR0JHcW1oc29GMjRseUJ5dVUzQXVTa2QzOQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==aaaaaaaaaaaaaaaaaa"
    tlsCert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURhekNDQWxPZ0F3SUJBZ0lSQU1xRlFBVDRtcmJhcWNqR1lwWHVjcUV3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUmNITmpMV0YxZEc5elkyRnNaWEl0WTJFd0hoY05NalF3T1RJMk1ETXlNakV4V2hjTgpNamt3T1RJMU1ETXlNakV4V2pBWk1SY3dGUVlEVlFRREV3NXdjMk10WVhWMGIzTmpZV3hsY2pDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxZeXFTSEVLRExHdmV3T0NBTmdLRUt4cm1uTXlSaEYKTzZuRUJHdFluOTNwMXovd0pJVHZ4cEpJNmRwamVWMzZyREREU0R5cnlYbndkYXBjcHU4WUdMWHhxd0xrUVpkSgpkRExlNVc0MVQrZXNOMGpyUWZqaFk1L2xRODdkemFlY1RleEFYNkFiUG9Uc1h5Q0N0OTU3aEdCdWN5STdoSGoyCmxiMm4yRlREVi93czRwbFRwVW56dmw0QWJvUS9HTTZWdmRBdUZUV3B4SDRmOXliYjYrL0pxSVFXWkJqL0ZIK3YKS3l3NVY5QWVWY3BkME9JMVhyd3lyampvLzJjRy9ONUNKUnN2T0l0WXhnZy9mek94cjZVWDlibmgweVdWSk1uTAoxUGdxU0tONzk1S3J0ckI0dzVPYlMvVmo3c0J3WllSRGk1VENiTUNtUm5JMHZzTWY0dXE2cms4Q0F3RUFBYU9CCnFqQ0JwekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUYKQndNQ01Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVUxtdzh4azgvVmRaL210OWpjWVZSZWMxZwpmZ1V3UndZRFZSMFJCRUF3UG9JYmNITmpMV0YxZEc5elkyRnNaWEl1Y0dWeVptVmpkSE5qWVd4bGdoOXdjMk10CllYVjBiM05qWVd4bGNpNXdaWEptWldOMGMyTmhiR1V1YzNaak1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ2YKMnQvTVJucU1BMW1BTzkyZGtpQzFIQXh4N2RyWUxwUnE3amVCZVFHMGQrMURvYmRhakhiZzNTc3RFTG53L1hUZAo4V0hIcytPckNQL2lBbkpDaVlCOFVJK2F3NU9jY1lUeUR2eEZod3hrZzFndEdXcGQvczMreThQYU9EVHAyVS9hCkhjMXQ2U3FUSWF2WXE2UXhESzNVc2lYanVBa2orQk5PMGZ0NW9CY1lDZzJpZERtcXpKS1dzdjQwM0RHWmw0S3gKazNPRWNqVUY1YTZFaURRTTZ2VEQwQVFGVzRHeXprZS9ua29LdlJSZHJyUytibWFCSEwyeS9BQkxOdG9DOXZKVQpnU2N2K2hjL0VvdktZeFg4cDZ4dkd0RjMzeXhOb3RjdjV2WGJSeW1iYTFLQUg5cDZ4aFFDRGpyUVFEUHVSZElUCktETDI5d3FjdFJCc2pZUzdjN3R4Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
    tlsKey: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdGpLcEljUW9Nc2E5N0E0SUEyQW9Rckd1YWN6SkdFVTdxY1FFYTFpZjNlblhQL0FrCmhPL0dra2pwMm1ONVhmcXNNTU5JUEt2SmVmQjFxbHltN3hnWXRmR3JBdVJCbDBsME10N2xialZQNTZ3M1NPdEIKK09Gam4rVkR6dDNOcDV4TjdFQmZvQnMraE94ZklJSzMzbnVFWUc1eklqdUVlUGFWdmFmWVZNTlgvQ3ppbVZPbApTZk8rWGdCdWhEOFl6cFc5MEM0Vk5hbkVmaC8zSnR2cjc4bW9oQlprR1A4VWY2OHJMRGxYMEI1VnlsM1E0alZlCnZES3VPT2ovWndiODNrSWxHeTg0aTFqR0NEOS9NN0d2cFJmMXVlSFRKWlVreWN2VStDcElvM3Yza3F1MnNIakQKazV0TDlXUHV3SEJsaEVPTGxNSnN3S1pHY2pTK3d4L2k2cnF1VHdJREFRQUJBb0lCQUZ6SVE3VDhUWFErSFMxKwpuN29JVjdoTy80REZWb3JUaHVTVys2RW15cEtacUpIWTJ1QVBzdEYvN0FiWXJVK2NmZDkvTXVRaW4wRkhvTVFXCjFyUGZVNFlrQVhCQmlOMWYvSnFEUTlieHN6VkpVQVlFTjk1aitQWE9MTS9GeUJyWTBCM0ZVbTBZTXFoQ0x0ZEIKZWgwRVRZOUY3Nys1QzJjR080OFBVRzBwNVQ1M1NMNXdBNWN3UFNkakRVdGxlNVpCZ2kvNU1UMVNmU1owV1g0SAozOVIrdm1LTElsZHpkS0ZYWnRTOFNlbS9qTHcwU2s5dTl4VXdsRDZ5OUJXb0QwSm5DOUtYdDJTS1Jpekk4SUNoCkIvU3ZaMkhXblVVTUVxSkhxYXYvaGs2amJRR1p1eUJTWmNkSFV4WXJtTUl2L3VhdmcyRHNrekVYNDI2R016aTMKRmNUUkhURUNnWUVBNVFIVHdacjBtSUo4bmdJQVVqUjduOW80aUtPRmVCZmN0YmFFLythTnF4ZkN1bHdRT2RJTgoxQW03SFl6M1JGWGtwQkJSc09ERkd5OHlOaCtYS2lRTnJ5TzUvNGNmdHNtVENLTXBRMUhVTjV5UXg2VDZMemtJCkNrQWJrOHhLWVk5OXpPZnFKYThueFlrWFRoWXJ6eWR2ODJxT1JrZ1FqSFdHeE1vVlJmaEZxdFVDZ1lFQXk2eGoKZWlSRVNkWHQyU1I1TENuTG9Ld29NbHcwTkNjcStJVFBSb1FoQTJHTHF0S2dqVHExWEFNZ2ZNUTVFenlIK2JoZAo5ZVlMK2pxYzRsZVBORk0zYjI4YnJQNmdPV1VBeE5xK0JXY2JGblNYMmc5Y2FrOVk2TllsMnFQbzZzUGdKSVpaCkIyV1o0Q0NkazVDNENabmh0VGZIOW5DbEorT0p2Z2NEMkFieVBwTUNnWUVBNGMySGFtTEx3b1VITXhWdUU2QkUKTlQ0S2VGQWtEbUlZOGVOaUNLRGdGMDk2Wmg3WXNPcDVVQlc0Tms4RWtKRFF2U1NLS0FtNDBERWRKVmpJeUhoOApOYkRZZVNoWEVQaDR6Zzl6WkRtUE1yWmgyempFcDBOb3RoSzRIbWRWQUJWb1NWNXk5VzFibmQ2cTZBZmNjb25FClRSTkg3ZXlveEpZdHFHUkp6WkFid1hFQ2dZRUFzZ1djOFk2dmphWUtma2l1RFJiL0lCSTZGRUtaY3BobHE5RlIKNXYzb2FTOGl5QTNRUFlGNk1kR2QzTkFhWHlFQ2JSaGtNR0dDU0paZ3VFbjJKck14K2htd3BCWHZjQnREZjh6KwpXSFNWclp2OWVxRUFrditGNUFZQ0VraEFkcXI4eUpBUlV6RFFQYUhrZWEzOTNvNTlSVXRiWWFGMkNoYU5OK2FqCnluZlAxemNDZ1lBM3hrYWlvNkhpMmVjUkp6RGNWd1dvQ1VycWF0bHhCSVJjQmNtZ1h6WTZKNVVvSG9nWVZNcjkKRGs0Y3B1YXZnNklmRXM5Y0NPTnNEOC9YUDNZRmM4Mm4vUy9IdW10N0ZUdmJQcmc5eHdWWEFxcEExOVUxUXVkVApkSkZ1cWZWWjVzTXdCRXUyUjFjckJYNWNVQzJzVUE1eVhmaUpZb3FwTkFIOTZwQTJna010Vmc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
```

## ArgoCD ignore diffs

If you use ArgoCD with Autosync enabled, you may encounter issues with the Autoscaler. Automation changes resources at the pod level without affecting the parent resources spec (Deployment, StatefulSet, etc.), so ArgoCD doesn't detect any changes and will not attempt to revert them.&#x20;

Autoscaler doesn't patch the resources section in the parent manifest. However, for the evict+mutate flow, it patches the annotations section of parent objects by adding two annotations:

```yaml
  annotations:
    automation.perfectscale.io/originatingRevision: ...
    automation.perfectscale.io/restartedAt: ...
```

This might lead to pod restarts. If Autoscaler is not in a *healthy* state at this time, the applied recommendations might be missed.

To ignore these annotations in ArgoCD, configure the ignoreDifferences key at the installation level by adding it to the `argocd-cm` ConfigMap. In our patches, we utilize the Manager field, so you can seamlessly exclude it by specifying our manager name, `PerfectScaleAutoscaler`.

```yaml
data:
  resource.customizations.ignoreDifferences.all: |
    managedFieldsManagers:
      - PerfectScaleAutoscaler
```

Or by adding the following configuration to your ArgoCD App manifest:

```yaml
spec:
  ignoreDifferences:
  - group: "*"
    kind: "*"
    managedFieldsManagers:
      - PerfectScaleAutoscaler
```

## How to enable cert-manager for Automation admission webhooks

With [`cert-manager`](https://cert-manager.io/) installed in your Kubernetes cluster, TLS certificates for Admission Webhooks can be automatically provisioned and managed.

### Enabling cert-manager Support

There are two options for enabling cert-manager integration:

1. Setting the following value in your `values.yaml` file:

```
admission:
  certManager:
    enabled: true
```

2. Via Helm CLI using `--set`:

```
helm upgrade --set admission.certManager.enabled=true .....
```

When `admission.certManager.enabled` is set to `true`, the chart will:

1. Create a cert-manager `Issue`.
2. Create a `Certificate` resource for the webhook service.
3. Mount the generated TLS certificate in the webhook deployment.
4. Automatically configure  `caBundle` for the webhook configuration using the cert-manager-generated CA.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.perfectscale.io/enable-automation/automation-with-gitops.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
