deploy 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. if [ -z "${KUBECONFIG}" ]; then
  3. export KUBECONFIG=~/.kube/config
  4. fi
  5. # CAUTION - setting NAMESPACE will deploy most components to the given namespace
  6. # however some are hardcoded to 'monitoring'. Only use if you have reviewed all manifests.
  7. if [ -z "${NAMESPACE}" ]; then
  8. NAMESPACE=monitoring
  9. fi
  10. kubectl create namespace "$NAMESPACE"
  11. #kubectl create -f bundle.yaml
  12. kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=mail-template.tmpl -n "$NAMESPACE"
  13. kubectl -n "$NAMESPACE" create secret generic etcd-certs --from-file=/etc/kubernetes/pki/etcd/peer.crt --from-file=/etc/kubernetes/pki/etcd/peer.key --from-file=/etc/kubernetes/pki/etcd/ca.crt
  14. kctl() {
  15. kubectl --namespace "$NAMESPACE" "$@"
  16. }
  17. kctl apply -f manifests/prometheus-operator
  18. # Wait for CRDs to be ready.
  19. printf "Waiting for Operator to register custom resource definitions..."
  20. until kctl get customresourcedefinitions servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  21. until kctl get customresourcedefinitions prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  22. until kctl get customresourcedefinitions alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  23. until kctl get servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  24. until kctl get prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  25. until kctl get alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
  26. echo "done!"
  27. kctl apply -f manifests/node-exporter
  28. kctl apply -f manifests/kube-state-metrics
  29. kctl apply -f manifests/grafana/grafana-credentials.yaml
  30. kctl apply -f manifests/grafana
  31. find manifests/prometheus -type f ! -name prometheus-k8s-roles.yaml ! -name prometheus-k8s-role-bindings.yaml -exec kubectl --namespace "$NAMESPACE" apply -f {} \;
  32. kubectl apply -f manifests/prometheus/prometheus-k8s-roles.yaml
  33. kubectl apply -f manifests/prometheus/prometheus-k8s-role-bindings.yaml
  34. kctl apply -f manifests/alertmanager/