feat: Add grafana and kube-prometheus-stack HelmReleases (#758)

This commit is contained in:
Devin Buhl authored and GitHub committed 2023-05-31 10:16:30 -04:00
1 parent 55b3bdd94f
commit d5107d6b90
14 files changed
+345 -12

No files matched your search

Vendored
+32 -2
View File
@@ -66,6 +66,8 @@ main() {
generate_ansible_host_secrets
setup_github_webhook
setup_weave_gitops
setup_grafana_admin
setup_prometheus_endpoints
success
fi
}
@@ -474,11 +476,26 @@ generate_ansible_hosts() {
} > "${PROJECT_DIR}/ansible/inventory/hosts.yml"
}
setup_prometheus_endpoints() {
for var in "${!BOOTSTRAP_ANSIBLE_HOST_ADDR_@}"; do
node_id=$(echo "${var}" | awk -F"_" '{print $5}')
node_control="BOOTSTRAP_ANSIBLE_CONTROL_NODE_${node_id}"
if [[ "${!node_control}" == "true" ]]; then
node_addr="BOOTSTRAP_ANSIBLE_HOST_ADDR_${node_id}"
_log "INFO(${FUNCNAME[0]})" "Setting up Prometheus endpoint for '${!node_addr}'"
yq --inplace 'del(.spec.values.kubeControllerManager.endpoints[])' \
"${PROJECT_DIR}/kubernetes/apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml"
yq --inplace ".spec.values.kubeControllerManager.endpoints += \"${!node_addr}\"" \
"${PROJECT_DIR}/kubernetes/apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml"
fi
done
}
setup_github_webhook() {
_has_envar "BOOTSTRAP_FLUX_GITHUB_WEBHOOK_SECRET"
WEBHOOK_SECRET="${BOOTSTRAP_FLUX_GITHUB_WEBHOOK_SECRET}"
if [[ "${WEBHOOK_SECRET}" == "generated" ]]; then
WEBHOOK_SECRET="$(openssl rand -base64 30)"
WEBHOOK_SECRET="$(openssl rand -hex 12)"
fi
export BOOTSTRAP_FLUX_GITHUB_WEBHOOK_SECRET="${WEBHOOK_SECRET}"
_log "INFO(${FUNCNAME[0]})" "Using GitHub Token '${WEBHOOK_SECRET}' for Flux"
@@ -491,7 +508,7 @@ setup_weave_gitops() {
_has_envar "BOOTSTRAP_WEAVE_GITOPS_ADMIN_PASSWORD"
WEAVE_GITOPS_ADMIN_PASSWORD="${BOOTSTRAP_WEAVE_GITOPS_ADMIN_PASSWORD}"
if [[ "${WEAVE_GITOPS_ADMIN_PASSWORD}" == "generated" ]]; then
WEAVE_GITOPS_ADMIN_PASSWORD="$(openssl rand -base64 30)"
WEAVE_GITOPS_ADMIN_PASSWORD="$(openssl rand -hex 12)"
fi
export BOOTSTRAP_WEAVE_GITOPS_ADMIN_PASSWORD="${WEAVE_GITOPS_ADMIN_PASSWORD}"
_log "INFO(${FUNCNAME[0]})" "Using admin password '${WEAVE_GITOPS_ADMIN_PASSWORD}' for Weave Gitops"
@@ -503,6 +520,19 @@ setup_weave_gitops() {
sops --encrypt --in-place "${PROJECT_DIR}/kubernetes/apps/flux-system/weave-gitops/app/secret.sops.yaml"
}
setup_grafana_admin() {
_has_envar "BOOTSTRAP_GRAFANA_ADMIN_PASSWORD"
GRAFANA_ADMIN_PASSWORD="${BOOTSTRAP_GRAFANA_ADMIN_PASSWORD}"
if [[ "${GRAFANA_ADMIN_PASSWORD}" == "generated" ]]; then
GRAFANA_ADMIN_PASSWORD="$(openssl rand -hex 12)"
fi
export BOOTSTRAP_GRAFANA_ADMIN_PASSWORD="${GRAFANA_ADMIN_PASSWORD}"
_log "INFO(${FUNCNAME[0]})" "Using password '${GRAFANA_ADMIN_PASSWORD}' for Grafana"
envsubst < "${PROJECT_DIR}/tmpl/kubernetes/grafana-admin-secret.sops.yaml" \
> "${PROJECT_DIR}/kubernetes/apps/monitoring/grafana/app/secret.sops.yaml"
sops --encrypt --in-place "${PROJECT_DIR}/kubernetes/apps/monitoring/grafana/app/secret.sops.yaml"
}
success() {
_log "INFO(${FUNCNAME[0]})" "All files have been templated, proceed to the next steps outlined in the README"
exit 0