Unverified Commit c901e119 authored by Kevin Di Lallo's avatar Kevin Di Lallo Committed by GitHub
Browse files

Merge pull request #193 from nikhildoifode/na-1195-96

Resolved issues related to pvcs delete and prerequisite crds
parents 37989a0f 9c1c05a6
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

version: 1.6.3
version: 1.6.4
repo:
  name: AdvantEDGE

@@ -82,6 +82,14 @@ repo:
        # OAuth k8s secret (data: client-id, secret)
        secret: meep-oauth-gitlab

  #------------------------------
  #  Resource Prerequisites
  #------------------------------
  resource-prerequisites:
    # k8s Custom Resource Definitions
    crds:
      servicemonitors.monitoring.coreos.com: charts/kube-prometheus-stack/crds/crd-servicemonitors.yaml

  #------------------------------
  #  Core Subsystem
  #------------------------------
@@ -658,8 +666,6 @@ repo:
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-postgis.yaml
    meep-prometheus:
      # Priority 1 is highest to make sure Prometheus is deployed first
      priority: 1
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
+58 −0
Original line number Diff line number Diff line
{{- if and .Values.prometheus.prometheusSpec.persistentVolume.enabled .Values.alertmanager.alertmanagerSpec.persistentVolume.enabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pvc-deleter-role
rules:
- apiGroups: [""]
  resources: ["persistentvolumeclaims"]
  verbs: ["get", "list", "delete", "deletecollection"]

---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: pvc-deleter-sa

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pvc-deleter-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pvc-deleter-role
subjects:
- kind: ServiceAccount
  name: pvc-deleter-sa

---

apiVersion: batch/v1
kind: Job
metadata:
  name: pvc-deleter-job
  annotations:
    "helm.sh/hook": pre-delete
    "helm.sh/hook-weight": "-5"
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: post-delete-job
        image: "bitnami/kubectl"
        command: ["kubectl"]
        args:
        - "delete"
        - "pvc"
        - "{{ .Values.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.metadata.name }}-prometheus-{{ template "kube-prometheus-stack.fullname" . }}-prometheus-0"
        - "{{ .Values.alertmanager.alertmanagerSpec.storage.volumeClaimTemplate.metadata.name }}-alertmanager-{{ template "kube-prometheus-stack.fullname" . }}-alertmanager-0"
      serviceAccountName: pvc-deleter-sa
      securityContext:
        runAsUser: 0
{{- end }}
+0 −14
Original line number Diff line number Diff line
{{- if .Values.prometheus.prometheusSpec.storageClass.enabled }}
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: {{ template "kube-prometheus-stack.fullname" . }}-server
  labels:
    app: {{ template "kube-prometheus-stack.name" . }}-server
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Delete
{{- end }}
+15 −18
Original line number Diff line number Diff line
@@ -154,21 +154,21 @@ alertmanager:
  ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
  ##      https://prometheus.io/webtools/alerting/routing-tree-editor/
  ##
  # config:
  #   global:
  #     resolve_timeout: 5m
  #   route:
  #     group_by: ['job']
  #     group_wait: 30s
  #     group_interval: 5m
  #     repeat_interval: 12h
  #     receiver: 'null'
  #     routes:
  #     - match:
  #         alertname: Watchdog
  #       receiver: 'null'
  #   receivers:
  #   - name: 'null'
  config:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'null'
      routes:
      - match:
          alertname: Watchdog
        receiver: 'null'
    receivers:
    - name: 'null'

  # config:
  #   global:
@@ -1952,9 +1952,6 @@ prometheus:
            matchLabels:
              app: prometheus-server

    storageClass:
      enabled: false

    persistentVolume:
      enabled: true
      accessModes:
+16 −0
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@
package cmd

import (
	"errors"
	"fmt"
	"os/exec"
	"time"

	"github.com/InterDigitalInc/AdvantEDGE/go-apps/meepctl/utils"
@@ -28,6 +30,7 @@ import (
type DeleteData struct {
	coreApps []string
	depApps  []string
	crds     []string
}

const deleteDesc = `Delete containers from the K8s cluster
@@ -56,6 +59,7 @@ var deleteData DeleteData

func init() {
	// Get targets from repo config file
	deleteData.crds, _ = utils.GetResourcePrerequisites("repo.resource-prerequisites.crds")
	deleteData.coreApps = utils.GetTargets("repo.core.go-apps", "deploy")
	deleteData.depApps = utils.GetTargets("repo.dep", "deploy")

@@ -93,6 +97,7 @@ func deleteRun(cmd *cobra.Command, args []string) {
		deleteApps(deleteData.coreApps, cmd)
	} else if group == "dep" {
		deleteApps(deleteData.depApps, cmd)
		deleteCRD(deleteData.crds, cmd)
	}

	elapsed := time.Since(start)
@@ -101,6 +106,17 @@ func deleteRun(cmd *cobra.Command, args []string) {
	}
}

func deleteCRD(apps []string, cobraCmd *cobra.Command) {
	for _, crd := range apps {
		cmd := exec.Command("kubectl", "delete", "crd", crd)
		_, err := utils.ExecuteCmd(cmd, cobraCmd)
		if err != nil {
			err = errors.New("Error deleting CRD, name: [" + crd + "]")
			fmt.Println(err)
		}
	}
}

func deleteApps(apps []string, cobraCmd *cobra.Command) {
	for _, app := range apps {
		k8sDelete(app, cobraCmd)
Loading