diff --git a/solutions/cncf-generated/argo/argo-4211-cross-build-images-for-arm.json b/solutions/cncf-generated/argo/argo-4211-cross-build-images-for-arm.json new file mode 100644 index 00000000..bbfed741 --- /dev/null +++ b/solutions/cncf-generated/argo/argo-4211-cross-build-images-for-arm.json @@ -0,0 +1,77 @@ +{ + "version": "kc-mission-v1", + "name": "argo-4211-cross-build-images-for-arm", + "missionClass": "solution", + "author": "KubeStellar Bot", + "authorGithub": "kubestellar", + "mission": { + "title": "argo: Cross Build Images for ARM", + "description": "Cross Build Images for ARM. This issue affects 76+ users.", + "type": "feature", + "status": "completed", + "steps": [ + { + "title": "Identify argo feature symptoms", + "description": "Check for the issue in your argo deployment:\n```bash\nkubectl get pods -n cert-manager -l app=argo\nkubectl logs -l app.kubernetes.io/name=argo -n cert-manager --tail=100 | grep -i error\n```\nLook for errors related to: Cross Build Images for ARM" + }, + { + "title": "Check current resource configuration", + "description": "Inspect the relevant argo resources:\n```bash\nkubectl get resource -A\nkubectl describe resource -n \n```\nCurrently ArgoCD supports building arm64 images but doesn't publish them due to issues with cross-building with normal docker and GitHub Actions (AFAIK). There's some recent advancements that would en" + }, + { + "title": "Apply the fix for Cross Build Images for ARM", + "description": "## Summary\n\nI added a function to publish arm64 docker image in release workflow using `docker/build-push-action`.\n\nI tested this workflow with my repo and docker hub.\nhttps://github.com/dragoneena12/argo-cd/actions/runs/1045272993\nhttps://hub.docker.com/repository/docker/dragoneena12/argocd\n\nThis s\n```yaml\ndocker run --rm -it -v $(pwd)/ui/package.json:/src/package.json:ro -v $(pwd)/ui/yarn.lock:/src/yarn.lock:ro -v $(pwd)/cache:/cache --workdir /src node:12.18.4 yarn install --cache-folder /cache\n```" + }, + { + "title": "Confirm Cross Build Images for ARM is resolved", + "description": "Verify the fix by checking that the original error no longer occurs:\n```bash\nkubectl logs -l app.kubernetes.io/name=argo -n cert-manager --tail=50 --since=5m\nkubectl get events -n cert-manager --sort-by='.lastTimestamp' | tail -10\n```\nConfirm that the issue symptoms are gone." + } + ], + "resolution": { + "summary": "The root cause is: ## Summary\n\nI added a function to publish arm64 docker image in release workflow using `docker/build-push-action`.\n\nI tested this workflow with my repo and docker hub.\nhttps://github.com/dragoneena12/argo-cd/actions/runs/1045272993\nhttps://hub.docker.com/repository/docker/dragoneena12/argocd\n\nThis should be useful for argocd users who use arm64 k8s clusters like raspi4 or M1Mac.\n\nChecklist:\n\n* [x]. This fixes the issue because it addresses the underlying problem that was causing the failure.", + "codeSnippets": [ + "docker run --rm -it -v $(pwd)/ui/package.json:/src/package.json:ro -v $(pwd)/ui/yarn.lock:/src/yarn.lock:ro -v $(pwd)/cache:/cache --workdir /src node:12.18.4 yarn install --cache-folder /cache", + "The Docker context becomes huge, so not really ideal, but it does do the trick. Now building via `docker buildx` seems to work fine:", + "This produces images; I have not tried them yet, that is next on the agenda :D\r\n\r\nFor anyone also trying this, also a few observations worth sharing:\r\n- Building for `arm/v7` fails for me on `go get` with TLS errors for any Google domain (works fine for github.com if using `GOPROXY=direct`). The reason seems to be that emulation is so slow, `go get` gives up before the TCP connection is established. It also takes ~60 CPU minutes to get to that point (where `arm64` only takes a few CPU seconds to get there). This can fully be a problem of my Qemu version etc (using Ubuntu 20.04 via WSL2).\r\n- The `yarn` steps take a while on `arm64`. This seems to be because it needs to compile a lot of these dependencies, as many don't seem to have an `arm64` precompiled variant.\r\n- webpack on native machin" + ] + } + }, + "metadata": { + "tags": [ + "argo", + "graduated", + "app-definition", + "feature" + ], + "cncfProjects": [ + "argo" + ], + "targetResourceKinds": [], + "difficulty": "intermediate", + "issueTypes": [ + "feature" + ], + "maturity": "graduated", + "sourceUrls": { + "issue": "https://github.com/argoproj/argo-cd/issues/4211", + "repo": "https://github.com/argoproj/argo-cd", + "pr": "https://github.com/argoproj/argo-cd/pull/6758" + }, + "reactions": 76, + "comments": 20, + "synthesizedBy": "copilot" + }, + "prerequisites": { + "kubernetes": ">=1.24", + "tools": [ + "kubectl" + ], + "description": "A running Kubernetes cluster with argo installed or the issue environment reproducible." + }, + "security": { + "scannedAt": "2026-03-10T06:16:42.195Z", + "scannerVersion": "cncf-gen-3.0.0", + "sanitized": true, + "findings": [] + } +}