#!/usr/bin/env bash
# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

source "$SOWLIB/k8s"

cleanup()
{
  if [ "$1" = "delete" ]; then
    PLUGIN_setup cleanup
    getRequiredValue namespace "namespace" PLUGINCONFIGJSON
    K8S_setKubeConfig "$PLUGININSTANCE" 
    kubectl -n $namespace delete --ignore-not-found \
      deployment/gardener-external-admission-controller \
      statefulset/alertmanager \
      statefulset/prometheus \
      service/gardener-external-admission-controller \
      service/alertmanager \
      service/alertmanager-client \
      service/prometheus-web \
      configmap/prometheus-config \
      configmap/prometheus-rules \
      secret/alertmanager-config \
      secret/gardener-external-admission-controller-tls \
      secret/prometheus-token-dg4vh \
      serviceaccount/prometheus \
      persistentvolumeclaim/alertmanager-db-alertmanager-0 \
      persistentvolumeclaim/prometheus-db-prometheus-0 \
      persistentvolumeclaim/elasticsearch-logging-elasticsearch-logging-0 \
      persistentvolumeclaim/fluentd-fluentd-es-0 \
      persistentvolumeclaim/prometheus-db-aggregate-prometheus-0 \
      daemonset.apps/fluent-bit \
      deployment.apps/etcd-druid \
      deployment.apps/dependency-watchdog-endpoint \
      deployment.apps/dependency-watchdog-probe \
      deployment.apps/gardener-resource-manager \
      deployment.apps/grafana \
      deployment.apps/kibana-logging \
      deployment.apps/kube-state-metrics \
      deployment.apps/reserve-excess-capacity \
      deployment.apps/vpa-admission-controller \
      deployment.apps/vpa-exporter \
      deployment.apps/vpa-recommender \
      deployment.apps/vpa-updater \
      deployment.apps/gardener-seed-admission-controller \
      statefulset.apps/aggregate-prometheus \
      statefulset.apps/elasticsearch-logging \
      statefulset.apps/fluentd-es \
      cronjob.batch/daily-curator \
      cronjob.batch/hourly-curator \
      ingress.networking.k8s.io/kibana \
      ingress.extensions/kibana \
      ingress.extensions/aggregate-prometheus \
      ingress.extensions/grafana \
      rolebinding.rbac.authorization.k8s.io/gardener.cloud:dependency-watchdog-endpoint:role-binding \
      rolebinding.rbac.authorization.k8s.io/gardener.cloud:dependency-watchdog-probe:role-binding \
      role.rbac.authorization.k8s.io/gardener.cloud:dependency-watchdog-endpoint:role \
      role.rbac.authorization.k8s.io/gardener.cloud:dependency-watchdog-probe:role \
      serviceaccount/aggregate-prometheus \
      serviceaccount/dependency-watchdog-endpoint \
      serviceaccount/dependency-watchdog-probe \
      serviceaccount/gardener-resource-manager \
      serviceaccount/vpa-admission-controller \
      serviceaccount/vpa-exporter \
      serviceaccount/vpa-recommender \
      serviceaccount/vpa-updater \
      serviceaccount/etcd-druid \
      serviceaccount/fluent-bit \
      serviceaccount/kube-state-metrics \
      service/elasticsearch-logging \
      service/fluent-bit \
      service/fluentd-es \
      service/kibana-logging \
      service/kube-state-metrics \
      service/aggregate-prometheus-web \
      service/grafana \
      service/vpa-exporter \
      service/vpa-webhook \
      service/gardener-seed-admission-controller \
      configmap/aggregate-prometheus-config \
      configmap/aggregate-prometheus-rules \
      configmap/dependency-watchdog-endpoint-config \
      configmap/dependency-watchdog-probe-config \
      configmap/gardener-resource-manager \
      configmap/gardenlet-leader-election \
      configmap/grafana-dashboard-providers \
      configmap/grafana-dashboards \
      configmap/grafana-datasources \
      configmap/controller-leader-election-helper \
      configmap/curator-daily-config \
      configmap/curator-hourly-config \
      configmap/es-configmap \
      configmap/fluent-bit-config \
      configmap/fluentd-es-config \
      configmap/kibana-configmap \
      configmap/kibana-object-registration \
      configmap/kibana-saved-objects \
      validatingwebhookconfiguration.admissionregistration.k8s.io/gardener-seed-admission-controller \
      networkpolicy.networking.k8s.io/allow-elasticsearch \
      networkpolicy.networking.k8s.io/allow-fluentbit \
      networkpolicy.networking.k8s.io/allow-fluentd \
      networkpolicy.networking.k8s.io/allow-kibana \
      networkpolicy.networking.k8s.io/allow-to-aggregate-prometheus \
      networkpolicy.networking.k8s.io/allow-to-elasticsearch \
      networkpolicy.networking.k8s.io/allow-from-aggregate-prometheus \
      networkpolicy.networking.k8s.io/allow-to-all-shoot-apiservers \
      networkpolicy.networking.k8s.io/allow-to-blocked-cidrs \
      networkpolicy.networking.k8s.io/allow-to-dns \
      networkpolicy.networking.k8s.io/allow-to-private-networks \
      networkpolicy.networking.k8s.io/allow-to-public-networks \
      networkpolicy.networking.k8s.io/allow-to-seed-apiserver \
      networkpolicy.networking.k8s.io/deny-all \
      secret/aggregate-prometheus-basic-auth \
      secret/aggregate-prometheus-tls \
      secret/ca-seed \
      secret/gardenlet-kubeconfig \
      secret/grafana-basic-auth \
      secret/grafana-tls \
      secret/seed-monitoring-ingress-credentials \
      secret/etcd-druid-token-555t6 \
      secret/fluent-bit-token-6bzfc \
      secret/fluentd-es-sg-credentials \
      secret/kibana-basic-auth \
      secret/kibana-tls \
      secret/kube-state-metrics-token-sc87j \
      secret/seed-logging-ingress-credentials \
      secret/vpa-tls-certs \
      endpoints/dependency-watchdog \
      endpoints/dependency-watchdog-probe
  fi
}