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

View file

@ -1,8 +1,8 @@
local helmapp = import "../_templates/argo_helm_app.libsonnet"; local app = import "../_templates/argocd_app.libsonnet";
[ [
helmapp + { app + {
name:: "cert-manager", chart:: "cert-manager",
repo:: "https://charts.jetstack.io", repo:: "https://charts.jetstack.io",
version:: "v1.8.*", version:: "v1.8.*",
values:: ||| values:: |||

View file

@ -1,8 +1,8 @@
local helmapp = import "../_templates/argo_helm_app.libsonnet"; local app = import "../_templates/argocd_app.libsonnet";
[ [
helmapp + { app + {
name:: "ingress-nginx", chart:: "ingress-nginx",
repo:: "https://kubernetes.github.io/ingress-nginx", repo:: "https://kubernetes.github.io/ingress-nginx",
version:: "4.0.*", version:: "4.0.*",
values:: ||| values:: |||

View file

@ -1,8 +1,8 @@
local helmapp = import "../_templates/argo_helm_app.libsonnet"; local app = import "../_templates/argocd_app.libsonnet";
[ [
helmapp + { app + {
name:: "keel", chart:: "keel",
repo:: "https://charts.keel.sh", repo:: "https://charts.keel.sh",
version:: "0.9.*", version:: "0.9.*",
values:: ||| values:: |||

View file

@ -1,11 +1,11 @@
local helmapp = import "../../_templates/argo_helm_app.libsonnet"; local app = import "../../_templates/argocd_app.libsonnet";
[ [
helmapp + { app + {
name:: "loki", name:: "loki",
namespace:: "metrics", namespace:: "metrics",
repo:: "https://grafana.github.io/helm-charts",
chart:: "loki-stack", chart:: "loki-stack",
repo:: "https://grafana.github.io/helm-charts",
version:: "2.6.*", version:: "2.6.*",
values:: ||| values:: |||
loki: loki:

View file

@ -1,6 +1,5 @@
# see https://blog.ediri.io/kube-prometheus-stack-and-argocd-23-how-to-remove-a-workaround # see https://blog.ediri.io/kube-prometheus-stack-and-argocd-23-how-to-remove-a-workaround
local helmapp = import "../../_templates/argo_helm_app.libsonnet"; local app = import "../../_templates/argocd_app.libsonnet";
local argoapp = import "../../_templates/argo_app.libsonnet";
local vars = { local vars = {
"version": "34.10.0", "version": "34.10.0",
@ -8,20 +7,20 @@ local vars = {
}; };
[ [
argoapp + { app + {
name:: "prometheus-crds", name:: "prometheus-crds",
namespace:: vars.namespace, namespace:: vars.namespace,
repo:: "https://github.com/prometheus-community/helm-charts.git",
path:: "charts/kube-prometheus-stack/crds/", path:: "charts/kube-prometheus-stack/crds/",
repo:: "https://github.com/prometheus-community/helm-charts.git",
version:: "kube-prometheus-stack-" + vars.version, version:: "kube-prometheus-stack-" + vars.version,
syncOptions:: ["CreateNamespace=true", "Replace=true"], syncOptions:: ["CreateNamespace=true", "Replace=true"],
sync_wave:: -1, sync_wave:: -1,
}, },
helmapp + { app + {
name:: "prometheus-grafana", name:: "prometheus-grafana",
namespace: vars.namespace, namespace: vars.namespace,
repo:: "https://prometheus-community.github.io/helm-charts",
chart:: "kube-prometheus-stack", chart:: "kube-prometheus-stack",
repo:: "https://prometheus-community.github.io/helm-charts",
version:: vars.version, version:: vars.version,
skipCrds:: true, skipCrds:: true,
values:: ||| values:: |||

View file

@ -1,8 +1,8 @@
local helmapp = import "../_templates/argo_helm_app.libsonnet"; local app = import "../_templates/argocd_app.libsonnet";
[ [
helmapp + { app + {
name:: "reloader", chart:: "reloader",
repo:: "https://stakater.github.io/stakater-charts", repo:: "https://stakater.github.io/stakater-charts",
version:: "v0.0.*", version:: "v0.0.*",
values:: ||| values:: |||