79 lines
1.5 KiB
Text
79 lines
1.5 KiB
Text
{
|
|
# generic parameters
|
|
name:: $.chart,
|
|
namespace:: $.name,
|
|
|
|
syncOptions:: ["CreateNamespace=true"],
|
|
retryLimit:: 5,
|
|
sync_wave:: 0,
|
|
|
|
# source parameters
|
|
repo:: error "repository must be defined",
|
|
version:: error "version must be defined",
|
|
|
|
# helm chart parameters
|
|
chart:: "",
|
|
skipCrds:: false,
|
|
values:: "",
|
|
|
|
# directory parameters
|
|
path:: "",
|
|
recursive:: true,
|
|
|
|
|
|
apiVersion: "argoproj.io/v1alpha1",
|
|
kind: "Application",
|
|
metadata: {
|
|
name: $.name,
|
|
namespace: "argocd",
|
|
annotations: { "argocd.argoproj.io/sync-wave": std.toString($.sync_wave) },
|
|
finalizers: ["resources-finalizer.argocd.argoproj.io"],
|
|
},
|
|
spec: {
|
|
project: "baseline",
|
|
destination: {
|
|
server: "https://kubernetes.default.svc",
|
|
namespace: $.namespace,
|
|
},
|
|
source: {
|
|
repoURL: $.repo,
|
|
targetRevision: $.version,
|
|
},
|
|
syncPolicy: {
|
|
automated: {
|
|
selfHeal: true,
|
|
prune: true,
|
|
},
|
|
retry: {
|
|
limit: $.retryLimit,
|
|
backoff: {
|
|
duration: "5s",
|
|
factor: 2,
|
|
maxDuration: "5m",
|
|
},
|
|
},
|
|
syncOptions: $.syncOptions,
|
|
}
|
|
}
|
|
|
|
+ ( # append chart name if defined
|
|
if std.length($.chart) > 0 then
|
|
{ source+: { chart: $.chart, } } else {}
|
|
)
|
|
|
|
+ ( # set helm values
|
|
if std.length($.values) > 0 then
|
|
{ source+: { helm+: { values: $.values } } } else {}
|
|
)
|
|
|
|
+ ( # set skipCRDs if defined
|
|
if $.skipCrds then
|
|
{ source+: { helm+: { skipCrds: true } } } else {}
|
|
)
|
|
|
|
+ ( # append generic directory path and recurse option
|
|
if std.length($.path) > 0 then
|
|
{ source+: { path: $.path, directory: { recurse: $.recursive } } } else {}
|
|
)
|
|
|
|
}
|