diff --git a/argo-cd-2.14.yaml b/argo-cd-2.14.yaml new file mode 100644 index 00000000000..d1f86397ab3 --- /dev/null +++ b/argo-cd-2.14.yaml @@ -0,0 +1,128 @@ +package: + name: argo-cd-2.14 + version: "2.14.1" + epoch: 0 + description: Declarative continuous deployment for Kubernetes. + copyright: + - license: Apache-2.0 + dependencies: + provides: + - argo-cd=${{package.full-version}} + +environment: + contents: + packages: + - busybox + - ca-certificates-bundle + - go + - nodejs-20 + - yarn + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/argoproj/argo-cd + tag: v${{package.version}} + expected-commit: 3345d05a43d8edd7ec42ec71ffe8b5f95bc68dbe + + - uses: go/bump + with: + deps: | + github.com/go-git/go-git/v5@v5.13.0 + k8s.io/apimachinery@v0.31.2 + + - 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 + + - 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 + - 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 + + - 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 + dependencies: + provides: + - argo-cd-compat=${{package.full-version}} + +update: + enabled: true + github: + identifier: argoproj/argo-cd + strip-prefix: v + tag-filter: v2.14. + +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