REFACTOR: merge templates into one

This commit is contained in:
Sebastian Mark 2022-04-16 10:13:51 +02:00
parent 1953320691
commit 80e517c656
10 changed files with 99 additions and 105 deletions

View file

@ -1,17 +0,0 @@
local base = import "argo_base.libsonnet";
base + {
repo:: error "repo must be defined",
version:: error "version must be defined",
path:: error "path must be defined",
recursive:: true,
spec+: {
source: {
repoURL: $.repo,
path: $.path,
targetRevision: $.version,
directory: { recurse: $.recursive },
}
}
}

View file

@ -1,38 +0,0 @@
{
name:: error "name must be defined",
namespace:: $.name,
syncOptions:: ["CreateNamespace=true"],
retryLimit:: 5,
sync_wave:: 0,
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,
},
syncPolicy: {
automated: {
selfHeal: true,
prune: true,
},
retry: {
limit: $.retryLimit,
backoff: {
duration: "5s",
factor: 2,
maxDuration: "5m",
},
},
syncOptions: $.syncOptions,
}
}
}

View file

@ -1,29 +0,0 @@
local base = import "argo_base.libsonnet";
base + {
repo:: error "repo must be defined",
chart:: $.name,
version:: error "version must be defined",
skipCrds:: false,
values:: "",
spec+: {
source+: {
repoURL: $.repo,
chart: $.chart,
targetRevision: $.version,
}
+ (
if std.length($.values) > 0 then
{ helm+: { values: $.values } } else {}
)
+ (
if $.skipCrds then
{ helm+: { skipCrds: true } } else {}
)
}
}

View file

@ -0,0 +1,79 @@
{
# 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 {}
)
}