# vim:ft=jsonnet:
{
	name:: error "name must be defined",
	namespace:: $.name,
	syncOptions:: ["CreateNamespace=true"],
	retryLimit:: 5,

	apiVersion: "argoproj.io/v1alpha1",
	kind: "Application",
	metadata: {
		name: $.name,
		namespace: "argocd",
	},
	spec: {
		project: "baseline",
		destination: {
			server: "https://kubernetes.default.svc",
			namespace: $.namespace,
		},
		syncPolicy: {
			automated: {
				selfHeal: true,
				prune: true,
			},
			retry: {
				limit: $.retryLimit,
				backoff: {
					duration: "5s",
					factor: 2,
					maxDuration: "5m",
				},
			},
			syncOptions: $.syncOptions,
		}
	}
}