diff --git a/argo-cd-3.3.yaml b/argo-cd-3.3.yaml new file mode 100644 index 00000000000..6d0d57153e2 --- /dev/null +++ b/argo-cd-3.3.yaml @@ -0,0 +1,185 @@ +package: + name: argo-cd-3.3 + version: "3.3.0" + epoch: 0 + description: Declarative continuous deployment for Kubernetes. + copyright: + - license: Apache-2.0 + dependencies: + provides: + - argo-cd=${{package.full-version}} + +var-transforms: + - from: ${{package.version}} + match: ^(\d+\.\d+)\.\d+$ + replace: "$1" + to: major-minor-version + +environment: + contents: + packages: + - busybox + - ca-certificates-bundle + - go + - nodejs-20 + - patch + - yarn + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/argoproj/argo-cd + tag: v${{package.version}} + expected-commit: fd6b7d5b3cba5e7aa7ad400b0fb905a81018a77b + + - runs: | + cd ui + yarn install + yarn cache clean + NODE_ENV='production' NODE_ONLINE_ENV='online' NODE_OPTIONS=--max_old_space_size=8192 yarn build + + cd .. + + # Our global LDFLAGS conflict with a Makefile parameter + unset LDFLAGS + # Our global `-pie` flag results in a binary that cannot be copied to a non chainguard image + # Disable the `-pie` flag here since ArgoCD's helm charts like to copy around the multicall binary to different images (ie: dex) + + unset GOFLAGS + + make argocd-all + + mkdir -p ${{targets.destdir}}/usr/bin + mv dist/argocd* ${{targets.destdir}}/usr/bin/ + + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-server + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-repo-server + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-cmp-server + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-application-controller + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-notifications + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-applicationset-controller + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-k8s-auth + ln -s /usr/bin/argocd ${{targets.destdir}}/usr/bin/argocd-commit-server + + - uses: strip + +subpackages: + - name: ${{package.name}}-repo-server + description: "ArgoCD repo server" + dependencies: + runtime: + - ${{package.name}}-compat + - git + - git-lfs + - gnupg + - gpg + - gpg-agent + - tzdata + - helm~3 + - kustomize + - openssh + provides: + - argo-cd-repo-server=${{package.full-version}} + pipeline: + - runs: | + mkdir -p "${{targets.subpkgdir}}"/usr/bin + cp hack/gpg-wrapper.sh "${{targets.subpkgdir}}"/usr/bin/gpg-wrapper.sh + cp hack/git-verify-wrapper.sh "${{targets.subpkgdir}}"/usr/bin/git-verify-wrapper.sh + cp entrypoint.sh "${{targets.subpkgdir}}"/usr/bin/uid_entrypoint.sh + mkdir -p "${{targets.contextdir}}"/etc/ssh + touch "${{targets.contextdir}}"/etc/ssh/ssh_known_hosts + test: + pipeline: + - uses: test/virtualpackage + with: + virtual-pkg-name: argo-cd-repo-server + real-pkg-name: ${{subpkg.name}} + + - name: ${{package.name}}-compat + description: "Compatibility package for locating binaries according to upstream helm charts" + pipeline: + - runs: | + # ArgoCD manifests and helm charts all hardcode the executables path to /usr/local/bin/* + mkdir -p "${{targets.subpkgdir}}"/usr/local/bin + # This must be copied and not symlinked due to how `argocd` copies executables between (init)containers + # example: https://github.com/argoproj/argo-helm/blob/argo-cd-5.33.1/charts/argo-cd/templates/dex/deployment.yaml#L136-L143 + cp ${{targets.destdir}}/usr/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd + + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-server + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-repo-server + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-cmp-server + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-application-controller + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-notifications + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-applicationset-controller + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-k8s-auth + ln -s /usr/local/bin/argocd "${{targets.subpkgdir}}"/usr/local/bin/argocd-commit-server + dependencies: + provides: + - argo-cd-compat=${{package.full-version}} + test: + pipeline: + - uses: test/virtualpackage + with: + virtual-pkg-name: argo-cd-compat + real-pkg-name: ${{subpkg.name}} + + - name: ${{package.name}}-iamguarded-compat + description: "compat package with iamguarded argo-cd image" + dependencies: + provides: + - argo-cd-iamguarded-compat=${{package.full-version}} + runtime: + - argo-cd-${{vars.major-minor-version}} + - bash + - coreutils + - dash-binsh + pipeline: + - uses: iamguarded/build-compat + with: + package: argo-cd + version: ${{vars.major-minor-version}} + - runs: | + mkdir -p /opt/iamguarded/argo-cd/bin/ + chmod g+rwX /opt/iamguarded + ln -sf /usr/bin/argocd /opt/iamguarded/argo-cd/bin/argocd + ln -sf /usr/bin/argocd-server /opt/iamguarded/argo-cd/bin/argocd-server + ln -sf /usr/bin/argocd-repo-server /opt/iamguarded/argo-cd/bin/argocd-repo-server + ln -sf /usr/bin/argocd-cmp-server /opt/iamguarded/argo-cd/bin/argocd-cmp-server + ln -sf /usr/bin/argocd-application-controller /opt/iamguarded/argo-cd/bin/argocd-application-controller + ln -sf /usr/bin/argocd-notifications /opt/iamguarded/argo-cd/bin/argocd-notifications + ln -sf /usr/bin/argocd-applicationset-controller /opt/iamguarded/argo-cd/bin/argocd-applicationset-controller + ln -sf /usr/bin/argocd-k8s-auth /opt/iamguarded/argo-cd/bin/argocd-k8s-auth + ln -sf /usr/bin/argocd-commit-server /opt/iamguarded/argo-cd/bin/argocd-commit-server + - uses: iamguarded/finalize-compat + with: + package: argo-cd + version: ${{vars.major-minor-version}} + test: + pipeline: + - uses: iamguarded/test-compat + with: + package: argo-cd + version: ${{vars.major-minor-version}} + +update: + enabled: true + github: + identifier: argoproj/argo-cd + strip-prefix: v + tag-filter: v3.3. + +test: + pipeline: + - name: ArgoCD Version Check + runs: | + argocd version --short --client || exit 1 + argocd --help + argocd-application-controller --help + argocd-applicationset-controller --help + argocd-cmp-server --help + argocd-k8s-auth --help + argocd-notifications --help + argocd-repo-server --help + argocd-server version + argocd-server --help + argocd-commit-server --help