gocrane / crane

Crane is a FinOps Platform for Cloud Resource Analytics and Economics in Kubernetes clusters. The goal is not only to help users to manage cloud cost easier but also ensure the quality of applications.
https://gocrane.io
Apache License 2.0
1.85k stars 378 forks source link

fix ehpa controller update hpa logic #816

Closed mtdtdev closed 1 year ago

mtdtdev commented 1 year ago

What type of PR is this?

fix ehpa controller update hpa logic, make sure ehpa controller updates HPA as expected or return update failed error

What this PR does / why we need it:

fix ideas: If there is a conflict error during the update, reacquire the latest HPA object A2, and then assign the expected update content in A1 to A2 bug in the current code: The operator wants to update HPA A1, if the update conflicts, it will directly obtain the latest HPA object A2 from the cluster, and then use A2 to re-initiate the update. And this A2 is not the content A1 that is expected to be updated. At the same time, if A2 update is successful, the exception of update failure will also be lost, resulting in A1 not being updated, but operator thinks that HPA A1 has been updated.

Which issue(s) this PR fixes:

Fixes #815

Special notes for your reviewer:

github-actions[bot] commented 1 year ago

🎉 Successfully Build Images. Now Support ARM Platforms. Comment Post Time: 2023-06-09 15:21 Git Version: 93688b2

Docker Registry

Overview: https://hub.docker.com/u/gocrane

Image Pull Command
crane-agent:pr-816-93688b2 docker pull gocrane/crane-agent:pr-816-93688b2
dashboard:pr-816-93688b2 docker pull gocrane/dashboard:pr-816-93688b2
metric-adapter:pr-816-93688b2 docker pull gocrane/metric-adapter:pr-816-93688b2
craned:pr-816-93688b2 docker pull gocrane/craned:pr-816-93688b2

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=gocrane/craned \
                   --set craned.image.tag=pr-816-93688b2 \
                   --set metricAdapter.image.repository=gocrane/metric-adapter \
                   --set metricAdapter.image.tag=pr-816-93688b2 \
                   --set craneAgent.image.repository=gocrane/crane-agent \
                   --set craneAgent.image.tag=pr-816-93688b2 \
                   --set cranedDashboard.image.repository=gocrane/dashboard \
                   --set cranedDashboard.image.tag=pr-816-93688b2 crane/crane

Coding Registry

Overview: https://finops.coding.net/public-artifacts/gocrane/crane/packages

Image Pull Command
crane-agent:pr-816-93688b2 docker pull finops-docker.pkg.coding.net/gocrane/crane/crane-agent:pr-816-93688b2
dashboard:pr-816-93688b2 docker pull finops-docker.pkg.coding.net/gocrane/crane/dashboard:pr-816-93688b2
metric-adapter:pr-816-93688b2 docker pull finops-docker.pkg.coding.net/gocrane/crane/metric-adapter:pr-816-93688b2
craned:pr-816-93688b2 docker pull finops-docker.pkg.coding.net/gocrane/crane/craned:pr-816-93688b2

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=finops-docker.pkg.coding.net/gocrane/crane/craned \
                   --set craned.image.tag=pr-816-93688b2 \
                   --set metricAdapter.image.repository=finops-docker.pkg.coding.net/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-816-93688b2 \
                   --set craneAgent.image.repository=finops-docker.pkg.coding.net/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-816-93688b2 \
                   --set cranedDashboard.image.repository=finops-docker.pkg.coding.net/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-816-93688b2 crane/crane

Ghcr Registry

Overview: https://github.com/orgs/gocrane/packages?repo_name=crane

Image Pull Command
crane-agent:pr-816-93688b2 docker pull ghcr.io/gocrane/crane/crane-agent:pr-816-93688b2
dashboard:pr-816-93688b2 docker pull ghcr.io/gocrane/crane/dashboard:pr-816-93688b2
metric-adapter:pr-816-93688b2 docker pull ghcr.io/gocrane/crane/metric-adapter:pr-816-93688b2
craned:pr-816-93688b2 docker pull ghcr.io/gocrane/crane/craned:pr-816-93688b2

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=ghcr.io/gocrane/crane/craned \
                   --set craned.image.tag=pr-816-93688b2 \
                   --set metricAdapter.image.repository=ghcr.io/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-816-93688b2 \
                   --set craneAgent.image.repository=ghcr.io/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-816-93688b2 \
                   --set cranedDashboard.image.repository=ghcr.io/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-816-93688b2 crane/crane