diff --git a/inventory/sample/group_vars/k8s-cluster.yml b/inventory/sample/group_vars/k8s-cluster.yml index 5f4889e8b..3e208bdaf 100644 --- a/inventory/sample/group_vars/k8s-cluster.yml +++ b/inventory/sample/group_vars/k8s-cluster.yml @@ -163,9 +163,15 @@ dashboard_enabled: true # Monitoring apps for k8s efk_enabled: false -# Helm deployment +# Helm deployment. Needs for Prometheus Operator, k8s metrics. helm_enabled: false +# Prometheus Operator. Needs for k8s metrics. Installed Helm is required. +prometheus_operator_enabled: false + +# K8s cluster metrics. Installed Helm and Prometheus Operator are required. +k8s_metrics_enabled: false + # Istio deployment istio_enabled: false diff --git a/roles/kubernetes-apps/meta/main.yml b/roles/kubernetes-apps/meta/main.yml index fca51a3b6..bc05e6f8c 100644 --- a/roles/kubernetes-apps/meta/main.yml +++ b/roles/kubernetes-apps/meta/main.yml @@ -27,6 +27,12 @@ dependencies: - apps - registry + - role: kubernetes-apps/metrics + when: prometheus_operator_enabled + tags: + - apps + - metrics + # istio role should be last because it takes a long time to initialize and # will cause timeouts trying to start other addons. - role: kubernetes-apps/istio diff --git a/roles/kubernetes-apps/metrics/defaults/main.yml b/roles/kubernetes-apps/metrics/defaults/main.yml new file mode 100644 index 000000000..72018e6f5 --- /dev/null +++ b/roles/kubernetes-apps/metrics/defaults/main.yml @@ -0,0 +1,9 @@ +--- +# Prometheus Operator. Needs for k8s metrics. Installed Helm is required. +prometheus_operator_enabled: false + +# K8s cluster metrics. Installed Helm and Prometheus Operators are required. +k8s_metrics_enabled: false + +# Separate namespace for monitoring/metrics +monitoring_namespace: "monitoring" diff --git a/roles/kubernetes-apps/metrics/tasks/main.yml b/roles/kubernetes-apps/metrics/tasks/main.yml new file mode 100644 index 000000000..f64433c69 --- /dev/null +++ b/roles/kubernetes-apps/metrics/tasks/main.yml @@ -0,0 +1,17 @@ +--- +- name: Metrics | Make sure Helm is installed + command: "{{ bin_dir }}/helm version" + +- name: Metrics | Add coreos repo + command: "{{ bin_dir }}/helm repo add coreos https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/" + run_once: true + +- name: Metrics | Install Prometheus Operator + command: "{{ bin_dir }}/helm upgrade --install prometheus-operator coreos/prometheus-operator --namespace {{ monitoring_namespace }}" + when: prometheus_operator_enabled + run_once: true + +- name: Metrics | Install K8s cluster metrics + command: "{{ bin_dir }}/helm upgrade --install kube-prometheus coreos/kube-prometheus --namespace {{ monitoring_namespace }}" + when: k8s_metrics_enabled + run_once: true