From 1e0ad975c1d2ec004baca9792cae01cdb4ccd82b Mon Sep 17 00:00:00 2001
From: Andres De Castro <andresd@stradigi.ai>
Date: Fri, 28 Aug 2020 11:35:40 -0400
Subject: [PATCH] added argocd exmaples

---
 examples/cd/argocd/README.md                  |  9 +++++++
 examples/cd/argocd/application.yaml           | 25 +++++++++++++++++++
 examples/cd/argocd/appproject.yaml            | 22 ++++++++++++++++
 .../kube-prometheus/argocd-basic.jsonnet      | 13 ++++++++++
 4 files changed, 69 insertions(+)
 create mode 100644 examples/cd/argocd/README.md
 create mode 100644 examples/cd/argocd/application.yaml
 create mode 100644 examples/cd/argocd/appproject.yaml
 create mode 100644 examples/cd/argocd/kube-prometheus/argocd-basic.jsonnet

diff --git a/examples/cd/argocd/README.md b/examples/cd/argocd/README.md
new file mode 100644
index 00000000..00fed8bf
--- /dev/null
+++ b/examples/cd/argocd/README.md
@@ -0,0 +1,9 @@
+## ArgoCD Example
+
+This is the simplest, working example of an argocd app, the JSON object built is now an array of objects as that is the prefered format for ArgoCD.
+
+Requirements:
+
+**ArgoCD 1.7+**
+
+Follow the vendor generation steps at the root of this repository and generate a `vendored` folder (referenced in `application.yaml`).
diff --git a/examples/cd/argocd/application.yaml b/examples/cd/argocd/application.yaml
new file mode 100644
index 00000000..feaf5cf4
--- /dev/null
+++ b/examples/cd/argocd/application.yaml
@@ -0,0 +1,25 @@
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+  name: monitoring
+  namespace: argocd
+  annotations:
+    recipients.argocd-notifications.argoproj.io: "slack:jenkins"
+spec:
+  destination:
+    namespace: monitoring
+    server: https://kubernetes.default.svc
+  project: monitoring
+  source:
+    directory:
+      jsonnet:
+        libs:
+          - vendored
+      recurse: true
+    path: examples/cd/argocd/kube-prometheus
+    repoURL: git@github.com:prometheus-operator/kube-prometheus.git
+    targetRevision: HEAD
+  syncPolicy:
+    automated: {}
+---
diff --git a/examples/cd/argocd/appproject.yaml b/examples/cd/argocd/appproject.yaml
new file mode 100644
index 00000000..a571b782
--- /dev/null
+++ b/examples/cd/argocd/appproject.yaml
@@ -0,0 +1,22 @@
+apiVersion: argoproj.io/v1alpha1
+kind: AppProject
+metadata:
+  annotations:
+    recipients.argocd-notifications.argoproj.io: slack:alerts
+  generation: 1
+  name: monitoring
+  namespace: argocd
+spec:
+  clusterResourceWhitelist:
+    - group: "*"
+      kind: "*"
+  description: "Monitoring Stack deployment"
+  destinations:
+    - namespace: kube-system
+      server: https://kubernetes.default.svc
+    - namespace: default
+      server: https://kubernetes.default.svc
+    - namespace: monitoring
+      server: https://kubernetes.default.svc
+  sourceRepos:
+    - git@github.com:prometheus-operator/kube-prometheus.git
diff --git a/examples/cd/argocd/kube-prometheus/argocd-basic.jsonnet b/examples/cd/argocd/kube-prometheus/argocd-basic.jsonnet
new file mode 100644
index 00000000..20c8caa3
--- /dev/null
+++ b/examples/cd/argocd/kube-prometheus/argocd-basic.jsonnet
@@ -0,0 +1,13 @@
+local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') +
+           (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + {
+  _config+:: {
+    namespace: 'monitoring',
+  },
+};
+
+[kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus)] +
+[kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator)] +
+[kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter)] +
+[kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics)] +
+[kp.prometheus[name] for name in std.objectFields(kp.prometheus)] +
+[kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter)]
-- 
GitLab