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