argocd-vault-plugin icon indicating copy to clipboard operation
argocd-vault-plugin copied to clipboard

Restructure manifests into Components for composability

Open jskrzypek opened this issue 2 years ago • 2 comments

Description

I am replacing PR #370 with this one because on further testing I realized that while Kustomize successfully built the resources, the patches were not actually applied. This strategy of using Kustomize Components actually works and produces the intended effect.

The changes included are described in the commit messages:

  1. feat[manifests]: Allow BYO argocd

    Restructuring the manifests to allow consumers of AVP to bring their own argocd base by using the kustomize components manifests under manifests/components.

    This allows consumers to integrate more easily with other CMPs or alternate versions of argo that the AVP maintainers haven't patched the manifests to include.

    NB this requires use of kustomize > v3.7.0 when Components were introduced. For more information about components see the docs: https://kubectl.docs.kubernetes.io/guides/config_management/components/

  2. feat[manifests]: Restore root manifest

    PR #352 introduced the sidecar pattern, but also renamed the prior default manifest, which was available through a reference to https://github.com/argoproj-labs/argocd-vault-plugin//manifests

    To get the same app, consumers would need to change any exsting references to https://github.com/argoproj-labs/argocd-vault-plugin//manifests/cmp-configmap

    This commit introduces a simple proxy manifest that makes that change backwards compatible, meaning that now older references to https://github.com/argoproj-labs/argocd-vault-plugin//manifests will still resolve to the same app state as https://github.com/argoproj-labs/argocd-vault-plugin//manifests/cmp-configmap rather than just breaking.

  3. docs: Add instructions for plugin components

    Describe how to use the plugin-only component manifests for use with alternate versions of ArgoCD (e.g. HA, newer releases, etc.)

Fixes: #369

Checklist

Please make sure that your PR fulfills the following requirements:

  • [x] Reviewed the guidelines for contributing to this repository
  • [x] The commit message follows the Conventional Commits Guidelines.
  • [ ] Tests for the changes have been updated
  • [ ] Are you adding dependencies? If so, please run go mod tidy -compat=1.17 to ensure only the minimum is pulled in.
  • [x] Docs have been added / updated
  • [ ] Optional. My organization is added to USERS.md.

Type of Change

  • [ ] Bugfix
  • [x] Feature
  • [ ] Code style update (formatting, local variables)
  • [ ] Refactoring (no functional changes, no api changes)
  • [ ] New tests
  • [ ] Build/CI related changes
  • [ ] Documentation content changes
  • [ ] Other (please describe)

Other information

Closing #370 in favor of this PR

jskrzypek avatar Jul 11 '22 16:07 jskrzypek

@jskrzypek Can you rebase your PR with main? Thanks!

werne2j avatar Aug 24 '22 18:08 werne2j

@werne2j done

jskrzypek avatar Aug 24 '22 20:08 jskrzypek