baseline/manifests/_templates/argocd_app.libsonnet

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 {}
)
}