Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

generic yaml promotion mechanism #424

Closed
krancour opened this issue Jun 14, 2023 · 6 comments
Closed

generic yaml promotion mechanism #424

krancour opened this issue Jun 14, 2023 · 6 comments

Comments

@krancour
Copy link
Member

krancour commented Jun 14, 2023

We have built-in support for kargo edit set image and for updating Helm Chart.yaml and values.yaml files.

If I am not mistaken, Argo CD, through plugins/extension, can support additional configuration management tools.

We should introduce a more generic YAML-based promotion mechanism. This could conceivable replace the Helm promotion mechanisms (or we could leave those be), but more importantly, it would open the door to compatibility with a wider range of config management tools -- like ytt, for example.

@akselleirv
Copy link

Just reposting my linked issue as I'm in need of this use-case.

I have my configuration file written in CUE which describes which "addons" or helm charts which should be deployed to a cluster. The version of the helm chart is specified within this custom structure.

For example:

package clusters

cluster: "p-my-cluster": {
	environment:     "prod"

	addon: {
		"ingress_nginx":  {
			values: "0.1.0": { 
				hello: "world"
			}
		}
	}
}

When I want to do a promotion I need to update the version in cluster."p-my-cluster".addon."ingress_nginx".values:

package clusters

cluster: "p-my-cluster": {
	environment:     "prod"

	addon: {
		"ingress_nginx":  {
			values: "0.2.0": { 
				hello: "world"
			}
		}
	}
}

The GitRepoUpdate config only supports Kustomize and Helm, however, I want to update this custom structure.

Suggestions:

  1. Use a regex and do a replacement of the match. This can be a bit flaky.
  2. Use a plugin system which allows for other custom ways of updating a file stored in Git.

@krancour
Copy link
Member Author

krancour commented Aug 8, 2023

@akselleirv, I think this is a separate concern from a generic YAML-based promotion mechanism largely because dealing with YAML is easy and the capability mostly already exists within Kargo and we just need to expose it.

What you're requesting is something even more generic than what is described in this issue.

I'm re-opening your issue #527 because I think that's the right place for this particular conversation to continue.

Copy link

github-actions bot commented Nov 7, 2023

This issue has been automatically marked as stale because it had no activity for 90 days. It will be closed if no activity occurs in the next 30 days but can be reopened if it becomes relevant again.

@github-actions github-actions bot added the stale label Nov 7, 2023
@krancour
Copy link
Member Author

Not stale, but not a high priority.

@krancour krancour removed the stale label Nov 10, 2023
@jmgilman
Copy link

Is the goal here to replicate the Custom Management Plugin interface of Argo? It seems that would unlock the most value considering there are dozens of them out there.

@krancour
Copy link
Member Author

Closing due to similarity with #1250

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants