aws-samples / aws-samples/appmod-blueprints

kro: changing analysis extraArgs does not trigger a new Argo Rollout

Open
#712 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
105
Forks
62
Avg merge
11h 17m
Merged PRs (30d)
76

Description

## Summary

In the progressive-delivery flow (functional/performance gates), the **kro path** does not trigger a new Argo Rollout when the user changes `functionalGate.extraArgs` (e.g. `red` → `orange`) in the `AppmodService` manifest. The KubeVela path works because it bumps `app.oam.dev/publishVersion`, but the kro `AppmodService` has no equivalent trigger.

## Symptom

User changes the analysis arg, commits, and runs `argocd app sync java-dev-cd`, but **no new rollout starts**, so the updated gate never re-runs. Workaround currently required:
```bash
kubectl argo rollouts retry rollout java-webservice -n team-java
# or
kubectl argo rollouts restart java-webservice -n team-java
```
(Reported by a workshop participant on the kro path.)

## Root cause

In `gitops/addons/charts/kro/resource-groups/manifests/appmod-service.yaml`, `schema.spec.functionalGate.extraArgs` is injected **only into the `AnalysisTemplate`** (around line 727), never into the **Rollout** pod template. Changing only `extraArgs` updates the AnalysisTemplate but leaves the Rollout pod spec byte-identical, so Argo Rollouts detects no change and creates no new revision.

## Proposed fixes

1. **RGD fix (preferred, GitOps-native):** propagate a hash/value of `functionalGate.extraArgs` (and `performanceGate.extraArgs`) into a Rollout pod-template annotation, so any analysis-arg change produces a new Rollout revision automatically — no manual kubectl needed.
2. **Content/workshop fix (quick mitigation):** in the kro tab of `content/30_ProgressiveApplicationDelivery/30_function-performance-test-java/`, add an explicit `kubectl argo rollouts restart java-webservice -n team-java` step after the sync, with a note explaining the kro-specific behavior.

## Affected files
- `gitops/addons/charts/kro/resource-groups/manifests/appmod-service.yaml` (RGD)
- `content/30_ProgressiveApplicationDelivery/30_function-performance-test-java/` (workshop content, kro tab)

Contributor guide

Open the contributing guide

Research direction

Start with gitops/addons/charts/kro/resource-groups/manifests/appmod-service.yaml, especially the functionalGate.extraArgs handling around line 727, and compare it with the Rollout pod template. Then inspect the kro tab under content/30_ProgressiveApplicationDelivery/30_function-performance-test-java/. Done means changing either analysis extraArgs and syncing creates a new rollout, or the kro instructions clearly document the required restart workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes
Domain
devops, release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.