-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Add Kubernetes resource requests and limits to Helm chart And Added Helm Charts Deployment #44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
RawatTushar
wants to merge
66
commits into
NotHarshhaa:master
Choose a base branch
from
RawatTushar:tushar
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
e66fc7c
Migrate Kubernetes deployment to Helm
RawatTushar 2129c6d
Ignore Maven build artifacts
RawatTushar f63cc6b
Remove unused Helm test template
RawatTushar 036ab9c
Add Jenkins Docker CI pipeline
RawatTushar d68398e
Add Jenkins Docker CI pipeline
RawatTushar 965210b
Ignore Maven build artifacts
RawatTushar d864034
Add Helm deployment to Jenkins pipeline
RawatTushar 9045bbc
Add Helm deployment to Jenkins pipeline
RawatTushar 69e7c41
Add Helm deployment to Jenkins pipeline
RawatTushar ff3d873
Add Helm deployment to Jenkins pipeline
RawatTushar c8b3679
Add Helm deployment to Jenkins pipeline
RawatTushar 17aec96
Add Helm deployment to Jenkins pipeline
RawatTushar 066f7a1
Add Helm deployment to Jenkins pipeline
RawatTushar 0636efd
Add Helm deployment to Jenkins pipeline
RawatTushar 15b25e6
Ignore Maven build artifacts
RawatTushar e76b225
Add Kubernetes resource requests and limits And Improved added the He…
RawatTushar c9baa17
Add Kubernetes resource requests and limits And Improved added the He…
RawatTushar 574d1ab
Add Kubernetes resource requests and limits And Improved added the He…
RawatTushar 43e3188
Add Kubernetes resource requests and limits And Improved added the He…
RawatTushar e051d15
Added SonarQube,OWASP Dependency Check and Trivy for Image Scanning
RawatTushar 59152cc
Added SonarQube,OWASP Dependency Check and Trivy for Image Scanning
RawatTushar 972c848
Solved jenkinsfile directory error
RawatTushar b800159
Solved jenkinsfile directory error
RawatTushar b8a481a
Solved jenkinsfile directory error
RawatTushar 670bc34
Solved jenkinsfile directory error
RawatTushar 5249b60
Solved jenkinsfile directory error
RawatTushar 69ee975
Solved jenkinsfile directory error
RawatTushar 3707de0
Solved jenkinsfile directory error
RawatTushar 656e26e
Solved jenkinsfile directory error
RawatTushar 7d0e041
Solved jenkinsfile directory error
RawatTushar fd9d6cd
Run application container as non-root
56d48e1
recent pushed for kyverno policy at Deployment and Dockerfile Level
67e5f33
Testing Kyverno
RawatTushar 0747132
Fix non-root container user
RawatTushar 6e0dfb4
Testing Kyverno
RawatTushar 4cd6c64
Testing Kyverno
RawatTushar 7116e3c
update network policy
c402889
network policy and new test pod Added
289ffeb
reduced Resource Allocation for Pods like Cpu and Memory
RawatTushar 8b701c3
reduced Resource Allocation for Pods like Cpu and Memory
RawatTushar 045448c
Convert Spring Boot deployment to Argo Rollout
66b7340
Remove temporary editor file
17ba89f
added OWASP ZAP DAST method to secure my running Containers
RawatTushar 26ac1de
added OWASP ZAP DAST method to secure my running Containers
RawatTushar d60d577
Added Ingress And AZure Load Balancer NGINX
a4b203a
Remove ZAP artifacts from Helm templates
624d3fd
Added Ingress And AZure Load Balancer NGINX
169e055
Remove ZAP artifacts from Helm templates
684ec7a
done
1faa7c5
added OWASP ZAP DAST method to secure my running Containers
RawatTushar 675cb79
added OWASP ZAP DAST method to secure my running Containers
RawatTushar 6c7ca73
done
b41ad81
Merge remote-tracking branch 'origin/tushar' into tushar
1bc27a9
added OWASP ZAP DAST method to secure my running Containers
RawatTushar 1431cc1
added OWASP ZAP DAST method to secure my running Containers
RawatTushar 1d1c0a7
Cosign Sign Image before pushing to Git
RawatTushar c33b76b
Cosign Sign Image before pushing to Git
RawatTushar 9f83757
Cosign image created build provenance atest build
RawatTushar f77d733
Verifed and implement Cosign with attestation build and verified in A…
59366a1
Cosign image created build provenance atest build
RawatTushar 78aabad
Merge branch 'tushar' of https://github.com/RawatTushar/DevOps-Projec…
RawatTushar d5af369
cpu limit done less
RawatTushar f47ab15
final yaml file for cluster policy for attestation verified
RawatTushar e9f4050
changed policy to clustr policy as webhook was failing
bfcb92e
now try last
RawatTushar 7e3498d
Merge branch 'tushar' of https://github.com/RawatTushar/DevOps-Projec…
RawatTushar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Patterns to ignore when building packages. | ||
| # This supports shell glob matching, relative path matching, and | ||
| # negation (prefixed with !). Only one pattern per line. | ||
| .DS_Store | ||
| # Common VCS dirs | ||
| .git/ | ||
| .gitignore | ||
| .bzr/ | ||
| .bzrignore | ||
| .hg/ | ||
| .hgignore | ||
| .svn/ | ||
| # Common backup files | ||
| *.swp | ||
| *.bak | ||
| *.tmp | ||
| *.orig | ||
| *~ | ||
| # Various IDEs | ||
| .project | ||
| .idea/ | ||
| *.tmproj | ||
| .vscode/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| apiVersion: v2 | ||
| name: spring-boot-app | ||
| description: A Helm chart for Kubernetes | ||
|
|
||
| # A chart can be either an 'application' or a 'library' chart. | ||
| # | ||
| # Application charts are a collection of templates that can be packaged into versioned archives | ||
| # to be deployed. | ||
| # | ||
| # Library charts provide useful utilities or functions for the chart developer. They're included as | ||
| # a dependency of application charts to inject those utilities and functions into the rendering | ||
| # pipeline. Library charts do not define any templates and therefore cannot be deployed. | ||
| type: application | ||
|
|
||
| # This is the chart version. This version number should be incremented each time you make changes | ||
| # to the chart and its templates, including the app version. | ||
| # Versions are expected to follow Semantic Versioning (https://semver.org/) | ||
| version: 0.1.0 | ||
|
|
||
| # This is the version number of the application being deployed. This version number should be | ||
| # incremented each time you make changes to the application. Versions are not expected to | ||
| # follow Semantic Versioning. They should reflect the version the application is using. | ||
| # It is recommended to use it with quotes. | ||
| appVersion: "1.16.0" | ||
62 changes: 62 additions & 0 deletions
62
DevOps-Project-18/helm/spring-boot-app/templates/_helpers.tpl
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| {{/* | ||
| Expand the name of the chart. | ||
| */}} | ||
| {{- define "spring-boot-app.name" -}} | ||
| {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} | ||
| {{- end }} | ||
|
|
||
| {{/* | ||
| Create a default fully qualified app name. | ||
| We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||
| If release name contains chart name it will be used as a full name. | ||
| */}} | ||
| {{- define "spring-boot-app.fullname" -}} | ||
| {{- if .Values.fullnameOverride }} | ||
| {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} | ||
| {{- else }} | ||
| {{- $name := default .Chart.Name .Values.nameOverride }} | ||
| {{- if contains $name .Release.Name }} | ||
| {{- .Release.Name | trunc 63 | trimSuffix "-" }} | ||
| {{- else }} | ||
| {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} | ||
| {{- end }} | ||
| {{- end }} | ||
| {{- end }} | ||
|
|
||
| {{/* | ||
| Create chart name and version as used by the chart label. | ||
| */}} | ||
| {{- define "spring-boot-app.chart" -}} | ||
| {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||
| {{- end }} | ||
|
|
||
| {{/* | ||
| Common labels | ||
| */}} | ||
| {{- define "spring-boot-app.labels" -}} | ||
| helm.sh/chart: {{ include "spring-boot-app.chart" . }} | ||
| {{ include "spring-boot-app.selectorLabels" . }} | ||
| {{- if .Chart.AppVersion }} | ||
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
| {{- end }} | ||
| app.kubernetes.io/managed-by: {{ .Release.Service }} | ||
| {{- end }} | ||
|
|
||
| {{/* | ||
| Selector labels | ||
| */}} | ||
| {{- define "spring-boot-app.selectorLabels" -}} | ||
| app.kubernetes.io/name: {{ include "spring-boot-app.name" . }} | ||
| app.kubernetes.io/instance: {{ .Release.Name }} | ||
| {{- end }} | ||
|
|
||
| {{/* | ||
| Create the name of the service account to use | ||
| */}} | ||
| {{- define "spring-boot-app.serviceAccountName" -}} | ||
| {{- if .Values.serviceAccount.create }} | ||
| {{- default (include "spring-boot-app.fullname" .) .Values.serviceAccount.name }} | ||
| {{- else }} | ||
| {{- default "default" .Values.serviceAccount.name }} | ||
| {{- end }} | ||
| {{- end }} |
40 changes: 40 additions & 0 deletions
40
DevOps-Project-18/helm/spring-boot-app/templates/deployment.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| apiVersion: argoproj.io/v1alpha1 | ||
| kind: Rollout | ||
| metadata: | ||
| name: {{ include "spring-boot-app.fullname" . }} | ||
| labels: | ||
| {{- include "spring-boot-app.labels" . | nindent 4 }} | ||
|
|
||
| spec: | ||
| replicas: {{ .Values.replicaCount }} | ||
| strategy: | ||
| canary: | ||
| steps: | ||
| - setWeight: 50 | ||
| - pause: | ||
| duration: 30s | ||
| selector: | ||
| matchLabels: | ||
| {{- include "spring-boot-app.selectorLabels" . | nindent 6 }} | ||
|
|
||
| template: | ||
| metadata: | ||
| labels: | ||
| {{- include "spring-boot-app.selectorLabels" . | nindent 8 }} | ||
|
|
||
| spec: | ||
| containers: | ||
| - name: {{ .Chart.Name }} | ||
| image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" | ||
| imagePullPolicy: {{ .Values.image.pullPolicy }} | ||
|
|
||
| securityContext: | ||
| runAsNonRoot: true | ||
|
|
||
| ports: | ||
| - name: http | ||
| containerPort: {{ .Values.service.targetPort }} | ||
| protocol: TCP | ||
|
|
||
| resources: | ||
| {{- toYaml .Values.resources | nindent 12 }} |
17 changes: 17 additions & 0 deletions
17
DevOps-Project-18/helm/spring-boot-app/templates/ingress.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| apiVersion: networking.k8s.io/v1 | ||
| kind: Ingress | ||
| metadata: | ||
| name: {{ include "spring-boot-app.fullname" . }} | ||
| spec: | ||
| ingressClassName: nginx | ||
|
|
||
| rules: | ||
| - http: | ||
| paths: | ||
| - path: / | ||
| pathType: Prefix | ||
| backend: | ||
| service: | ||
| name: {{ include "spring-boot-app.fullname" . }}-service | ||
| port: | ||
| number: {{ .Values.service.port }} |
15 changes: 15 additions & 0 deletions
15
DevOps-Project-18/helm/spring-boot-app/templates/service.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| apiVersion: v1 | ||
| kind: Service | ||
| metadata: | ||
| name: {{ include "spring-boot-app.fullname" . }}-service | ||
| labels: | ||
| {{- include "spring-boot-app.labels" . | nindent 4 }} | ||
| spec: | ||
| type: {{ .Values.service.type }} | ||
| ports: | ||
| - name: http | ||
| port: {{ .Values.service.port }} | ||
| targetPort: {{ .Values.service.targetPort }} | ||
| protocol: TCP | ||
| selector: | ||
| {{- include "spring-boot-app.selectorLabels" . | nindent 4 }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| replicaCount: 2 | ||
|
|
||
| image: | ||
| repository: tushar31/spring-boot-app | ||
| tag: "1" | ||
| pullPolicy: IfNotPresent | ||
|
|
||
| service: | ||
| type: ClusterIP | ||
| port: 80 | ||
| targetPort: 8080 | ||
|
|
||
| resources: | ||
| requests: | ||
| cpu: 20m | ||
| memory: 128Mi | ||
| limits: | ||
| cpu: 100m | ||
| memory: 220Mi |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| apiVersion: kyverno.io/v1 | ||
| kind: ClusterPolicy | ||
| metadata: | ||
| name: require-non-root | ||
| annotations: | ||
| policies.kyverno.io/title: Require Non-Root Containers | ||
| policies.kyverno.io/category: Pod Security | ||
| policies.kyverno.io/severity: medium | ||
| policies.kyverno.io/description: >- | ||
| Containers must not run as root. | ||
| spec: | ||
| validationFailureAction: Enforce | ||
| background: true | ||
|
|
||
| rules: | ||
| - name: check-run-as-non-root | ||
| match: | ||
| any: | ||
| - resources: | ||
| kinds: | ||
| - Pod | ||
|
|
||
| validate: | ||
| message: "Containers must run as non-root." | ||
| pattern: | ||
| spec: | ||
| containers: | ||
| - securityContext: | ||
| runAsNonRoot: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| apiVersion: kyverno.io/v1 | ||
| kind: ClusterPolicy | ||
| metadata: | ||
| name: verify-spring-boot-image | ||
| spec: | ||
| validationFailureAction: Enforce | ||
| background: false | ||
|
|
||
| rules: | ||
| - name: verify-spring-boot-cosign | ||
| match: | ||
| any: | ||
| - resources: | ||
| kinds: | ||
| - Pod | ||
| namespaces: | ||
| - project18 | ||
|
|
||
| verifyImages: | ||
| - imageReferences: | ||
| - "tushar31/spring-boot-app:*" | ||
|
|
||
| attestors: | ||
| - entries: | ||
| - keys: | ||
| secret: | ||
| name: cosign-public-key | ||
| namespace: kyverno | ||
|
|
||
| attestations: | ||
| - type: "https://in-toto.io/attestation/v1" | ||
|
|
||
| attestors: | ||
| - entries: | ||
| - keys: | ||
| secret: | ||
| name: cosign-public-key | ||
| namespace: kyverno | ||
|
|
||
| conditions: | ||
| - all: | ||
| - key: "{{ builder.id }}" | ||
| operator: Equals | ||
| value: "http://172.172.234.187:8080/job/DevOps-Project-18" | ||
|
|
||
| - key: "{{ predicate.repository }}" | ||
| operator: Equals | ||
| value: "https://github.com/RawatTushar/DevOps-Projects.git" | ||
|
|
||
| - key: "{{ predicate.buildType }}" | ||
| operator: Equals | ||
| value: "https://jenkins.io/build" | ||
|
|
||
| - key: "{{ predicate.imageDigest }}" | ||
| operator: Equals | ||
| value: "{{ subject[0].digest.sha256 }}" |
Empty file.
42 changes: 42 additions & 0 deletions
42
DevOps-Project-18/network-policy/spring-boot-network-policy.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| apiVersion: networking.k8s.io/v1 | ||
| kind: NetworkPolicy | ||
| metadata: | ||
| name: spring-boot-network-policy | ||
| namespace: project18 | ||
|
|
||
| spec: | ||
| podSelector: | ||
| matchLabels: | ||
| app.kubernetes.io/name: spring-boot-app | ||
|
|
||
| policyTypes: | ||
| - Ingress | ||
| - Egress | ||
|
|
||
| ingress: | ||
| # Allow traffic from pods in project18 | ||
| - from: | ||
| - podSelector: | ||
| matchLabels: | ||
| app.kubernetes.io/name: spring-boot-app | ||
|
|
||
| ports: | ||
| - protocol: TCP | ||
| port: 8080 | ||
|
|
||
| egress: | ||
| # Allow communication to pods in project18 | ||
| - to: | ||
| - podSelector: {} | ||
|
|
||
| # Allow DNS | ||
| - to: | ||
| - namespaceSelector: | ||
| matchLabels: | ||
| kubernetes.io/metadata.name: kube-system | ||
| ports: | ||
| - protocol: UDP | ||
| port: 53 | ||
| - protocol: TCP | ||
| port: 53 | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| apiVersion: v1 | ||
| kind: Pod | ||
| metadata: | ||
| name: network-test | ||
| namespace: project18 | ||
| spec: | ||
| containers: | ||
| - name: network-test | ||
| image: curlimages/curl | ||
| command: ["sleep", "3600"] | ||
| securityContext: | ||
| runAsNonRoot: true | ||
| runAsUser: 1000 | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: Role | ||
| metadata: | ||
| name: spring-boot-role | ||
| namespace: project18 | ||
| rules: | ||
| - apiGroups: [""] | ||
| resources: ["pods"] | ||
| verbs: ["get", "list"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: RoleBinding | ||
| metadata: | ||
| name: spring-boot-rolebinding | ||
| namespace: project18 | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: spring-boot-sa | ||
| namespace: project18 | ||
| roleRef: | ||
| kind: Role | ||
| name: spring-boot-role | ||
| apiGroup: rbac.authorization.k8s.io |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| apiVersion: v1 | ||
| kind: ServiceAccount | ||
| metadata: | ||
| name: spring-boot-sa | ||
| namespace: project18 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: NotHarshhaa/DevOps-Projects
Length of output: 7446
🏁 Script executed:
# Awaiting capability results.Repository: NotHarshhaa/DevOps-Projects
Length of output: 165
🏁 Script executed:
Repository: NotHarshhaa/DevOps-Projects
Length of output: 6842
🏁 Script executed:
# Awaiting capability results.Repository: NotHarshhaa/DevOps-Projects
Length of output: 165
Align
appVersionwith the application release.Set
appVersionto1.0. The Jenkins pipeline overrides onlyimage.tagwithBUILD_NUMBER, so.Chart.AppVersionremains1.16.0and Kubernetes labels report the wrong application version.🤖 Prompt for AI Agents