From 15996a77aac7ed942439cf961813392f36914255 Mon Sep 17 00:00:00 2001
From: Rob Kooper <kooper@illinois.edu>
Date: Tue, 31 Jan 2023 18:01:40 -0600
Subject: [PATCH] remove argo_master and others

- remove argo_master
- use taiga for NFS
- add rancher monitoring to argocd (disabled)
---
 CHANGELOG.md                                  | 15 ++++
 .../{ => monitoring}/healthmonitor.yaml       |  0
 .../apps/templates/monitoring/monitoring.yaml | 80 +++++++++++++++++++
 charts/apps/templates/storage/nfs.yaml        |  4 +-
 charts/apps/values.yaml                       | 33 ++++----
 terraform/modules/argocd/argocd.tf            |  6 +-
 .../modules/argocd/templates/argocd.yaml.tmpl | 27 ++++---
 terraform/modules/argocd/variables.tf         | 12 +--
 8 files changed, 145 insertions(+), 32 deletions(-)
 rename charts/apps/templates/{ => monitoring}/healthmonitor.yaml (100%)
 create mode 100644 charts/apps/templates/monitoring/monitoring.yaml

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 436fa5e..903c6b8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
 
 The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
 
+## 1.3.1 - 2023-01-31
+
+### Added
+- Ability to set iprange that can access the kubapi (port 6443)
+
+### Changed
+- disabled argocd deployment of monitoring since it never synchronizes in argocd
+
+## 1.3.0 - 2022-11-21
+
+### Changed
+- monitoring is now managed in argocd, this will make it such that the latest version will be installed/upgraded
+
+### Removed
+- removed the argocd-master flag, now all clusters are assumed to be external, including where argocd runs
 
 ## 1.2.2 - 2022-10-24
 
diff --git a/charts/apps/templates/healthmonitor.yaml b/charts/apps/templates/monitoring/healthmonitor.yaml
similarity index 100%
rename from charts/apps/templates/healthmonitor.yaml
rename to charts/apps/templates/monitoring/healthmonitor.yaml
diff --git a/charts/apps/templates/monitoring/monitoring.yaml b/charts/apps/templates/monitoring/monitoring.yaml
new file mode 100644
index 0000000..c6da14f
--- /dev/null
+++ b/charts/apps/templates/monitoring/monitoring.yaml
@@ -0,0 +1,80 @@
+{{- if and .Values.monitoring .Values.monitoring.enabled }}
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+  name: {{ .Values.cluster.name }}-rancher-monitoring
+  labels:
+    cluster: {{ .Values.cluster.name | quote }}
+    app: rancher-monitoring
+  namespace: argocd
+  annotations:
+    {{- toYaml .Values.notifications | nindent 4 }}
+spec:
+  project: {{ .Values.cluster.name }}
+  destination:
+    server: {{ .Values.cluster.url }}
+    namespace: cattle-monitoring-system
+  syncPolicy:
+    {{- if .Values.sync }}
+    automated:
+      prune: true
+      selfHeal: true
+      allowEmpty: false
+    {{- end }}
+    syncOptions:
+      - CreateNamespace=true
+  source:
+    repoURL: https://charts.rancher.io
+    chart: rancher-monitoring
+    targetRevision: {{ .Values.rancherMonitoring.version | quote }}
+    helm:
+      version: v3
+      releaseName: rancher-monitoring
+      values: |
+        global:
+          cattle:
+            clusterId: {{ .Values.cluster.rancher.id }}
+            clusterName: {{ .Values.cluster.name }}
+            systemDefaultRegistry: ""
+          systemDefaultRegistry: ""
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+  name: {{ .Values.cluster.name }}-rancher-monitoring-crd
+  labels:
+    cluster: {{ .Values.cluster.name | quote }}
+    app: rancher-monitoring-crd
+  namespace: argocd
+  annotations:
+    {{- toYaml .Values.notifications | nindent 4 }}
+spec:
+  project: {{ .Values.cluster.name }}
+  destination:
+    server: {{ .Values.cluster.url }}
+    namespace: cattle-monitoring-system
+  syncPolicy:
+    {{- if .Values.sync }}
+    automated:
+      prune: true
+      selfHeal: true
+      allowEmpty: false
+    {{- end }}
+    syncOptions:
+      - Replace=true
+      - CreateNamespace=true
+  source:
+    repoURL: https://charts.rancher.io
+    chart: rancher-monitoring-crd
+    targetRevision: {{ .Values.rancherMonitoring.version | quote }}
+    helm:
+      version: v3
+      releaseName: rancher-monitoring-crd
+      values: |
+        global:
+          cattle:
+            clusterId: {{ .Values.cluster.rancher.id }}
+            clusterName: {{ .Values.cluster.name }}
+            systemDefaultRegistry: ""
+          systemDefaultRegistry: ""
+{{- end }}
diff --git a/charts/apps/templates/storage/nfs.yaml b/charts/apps/templates/storage/nfs.yaml
index 95d56b0..ea93da2 100644
--- a/charts/apps/templates/storage/nfs.yaml
+++ b/charts/apps/templates/storage/nfs.yaml
@@ -35,7 +35,7 @@ spec:
       values: |
         image:
           repository: kooper/nfs-subdir-external-provisioner
-          tag: v4.0.3
+          tag: v4.0.17
 
         storageClass:
           name: nfs-{{ $k }}
@@ -48,6 +48,8 @@ spec:
           pathPattern: {{ $v.pathPattern | quote }}
           {{- else if $.Values.nfs.pathPattern }}
           pathPattern: {{ $.Values.nfs.pathPattern | quote }}
+          {{- else }}
+          pathPattern: "{{ $.Values.cluster.name }}/${.PVC.namespace}-${.PVC.name}-${.PVC.pvname}"
           {{- end }}
 
         nfs:
diff --git a/charts/apps/values.yaml b/charts/apps/values.yaml
index 134b44b..68bc1b6 100644
--- a/charts/apps/values.yaml
+++ b/charts/apps/values.yaml
@@ -15,14 +15,10 @@ notifications: {}
 
 sync: false
 
-healthmonitor:
+metallb:
   enabled: false
-  targetRevision: HEAD
-  nfs: false
-  notifiers:
-    console:
-      report: change
-      threshold: 0
+  version: "0.13.*"
+  addresses: []
 
 ingresscontroller:
   enabled: false
@@ -47,10 +43,22 @@ sealedsecrets:
   enabled: false
   version: "2.*"
 
-metallb:
+# ----------------------------------------------------------------------
+# MONITORING
+# ----------------------------------------------------------------------
+
+monitoring:
   enabled: false
-  version: "0.13.*"
-  addresses: []
+  version: "101.*"
+
+healthmonitor:
+  enabled: false
+  targetRevision: HEAD
+  nfs: false
+  notifiers:
+    console:
+      report: change
+      threshold: 0
 
 # ----------------------------------------------------------------------
 # STORAGE
@@ -60,10 +68,7 @@ nfs:
   enabled: false
   version: "4.*"
   servers:
-    taiga: {}
-      #  pathPattern:
-      #  defaultClass: true
-    # custom:
+    # special:
     #   server: server1
     #   path: /export/
     #   pathPattern:
diff --git a/terraform/modules/argocd/argocd.tf b/terraform/modules/argocd/argocd.tf
index 3faaa5f..2f767e3 100644
--- a/terraform/modules/argocd/argocd.tf
+++ b/terraform/modules/argocd/argocd.tf
@@ -1,5 +1,5 @@
 locals {
-  cluster_argocd_url = var.argocd_master ? "https://kubernetes.default.svc" : "${var.rancher_url}/k8s/clusters/${var.cluster_kube_id}"
+  cluster_argocd_url = "${var.rancher_url}/k8s/clusters/${var.cluster_kube_id}"
 
   argocd_cluster = templatefile("${path.module}/templates/cluster.yaml.tmpl", {
     cluster_name   = var.cluster_name
@@ -25,6 +25,7 @@ locals {
     argocd_annotations          = var.argocd_annotations
     argocd_sync                 = var.argocd_sync
     argocd_repo_url             = var.argocd_repo_url
+    argocd_repo_version         = var.argocd_repo_version
     openstack_url               = var.openstack_url
     openstack_credential_id     = var.openstack_credential_id
     openstack_credential_secret = var.openstack_credential_secret
@@ -42,6 +43,7 @@ locals {
     acme_staging                = var.acme_staging
     acme_email                  = var.acme_email
     sealedsecrets_enabled       = var.sealedsecrets_enabled
+    monitoring_enabled          = var.monitoring_enabled
     healthmonitor_enabled       = var.healthmonitor_enabled
     healthmonitor_nfs           = var.healthmonitor_nfs
     healthmonitor_secrets       = var.healthmonitor_secrets
@@ -52,7 +54,7 @@ locals {
 # upload to central argocd server
 # ----------------------------------------------------------------------
 resource "kubectl_manifest" "argocd_cluster" {
-  count     = var.argocd_kube_id == "" || var.argocd_master ? 0 : 1
+  count     = var.argocd_kube_id != "" ? 1 : 0
   yaml_body = local.argocd_cluster
 }
 
diff --git a/terraform/modules/argocd/templates/argocd.yaml.tmpl b/terraform/modules/argocd/templates/argocd.yaml.tmpl
index 41a2256..1442ab3 100644
--- a/terraform/modules/argocd/templates/argocd.yaml.tmpl
+++ b/terraform/modules/argocd/templates/argocd.yaml.tmpl
@@ -27,7 +27,7 @@ spec:
   source:
     repoURL: ${argocd_repo_url}
     path: charts/apps
-    targetRevision: HEAD
+    targetRevision: ${argocd_repo_version}
     helm:
       version: v3
       releaseName: ${cluster_name}
@@ -90,6 +90,14 @@ spec:
           %{~ endif ~}
           %{~ endif ~}
 
+        sealedsecrets:
+          enabled: ${sealedsecrets_enabled}
+
+        monitoring:
+          # broken, use rancher to deply
+          enabled: false
+          #enabled: ${monitoring_enabled}
+
         healthmonitor:
           enabled: ${healthmonitor_enabled}
           %{~ if healthmonitor_enabled ~}
@@ -97,8 +105,15 @@ spec:
           existingSecret: ${healthmonitor_secrets}
           %{~ endif ~}
 
-        sealedsecrets:
-          enabled: ${sealedsecrets_enabled}
+        nfs:
+          enabled: ${nfs_enabled}
+          %{~ if nfs_enabled ~}
+          servers:
+            taiga:
+              server: taiga-nfs.ncsa.illinois.edu
+              path: "/taiga/ncsa/radiant/${openstack_project}"
+              defaultClass: true
+          %{~ endif ~}
 
         longhorn:
           enabled: ${longhorn_enabled}
@@ -106,11 +121,5 @@ spec:
           replicas: ${longhorn_replicas}
           %{~ endif ~}
 
-        nfs:
-          enabled: ${nfs_enabled}
-          %{~ if nfs_enabled ~}
-          pathPattern: "${cluster_name}/$${.PVC.namespace}-$${.PVC.name}-$${.PVC.volume}"
-          %{~ endif ~}
-
         cinder:
           enabled: ${cinder_enabled}
diff --git a/terraform/modules/argocd/variables.tf b/terraform/modules/argocd/variables.tf
index fa068b1..3411513 100644
--- a/terraform/modules/argocd/variables.tf
+++ b/terraform/modules/argocd/variables.tf
@@ -67,12 +67,6 @@ variable "openstack_project" {
 # ----------------------------------------------------------------------
 # ARGOCD
 # ----------------------------------------------------------------------
-variable "argocd_master" {
-  type        = bool
-  description = "Is this the master argocd cluster, you most likely don't need to modify this value"
-  default     = false
-}
-
 variable "argocd_kube_id" {
   type        = string
   description = "Rancher argocd cluster, set to blank to not install argocd"
@@ -90,6 +84,12 @@ variable "argocd_repo_url" {
   default     = "https://github.com/ncsa/radiant-cluster.git"
 }
 
+variable "argocd_repo_version" {
+  type        = string
+  description = "What version of the application to deploy"
+  default     = "HEAD"
+}
+
 variable "argocd_annotations" {
   type        = set(string)
   description = "Should argocd be used for infrastructure"
-- 
GitLab