Skip to content

Commit

Permalink
docs(plutono): add more context (#474)
Browse files Browse the repository at this point in the history
* docs(plutono): add more context

* docs(plutono): Apply suggestions from code review

Co-authored-by: Akshay Iyyadurai Balasundaram <[email protected]>

* docs(plutono): add architecture drawing

* chore(licenserc): ignore all plutono files

* docs(plutono): add disclaimer

---------

Co-authored-by: Akshay Iyyadurai Balasundaram <[email protected]>
  • Loading branch information
richardtief and ibakshay authored Nov 8, 2024
1 parent 77cc6e7 commit 493a77b
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 46 deletions.
2 changes: 1 addition & 1 deletion .github/licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ header:
- 'LICENSES/*.txt'
- 'cert-manager/charts/**' # ignore the license for the cert-manager charts
- 'alerts/charts/**' # ignore the license for the alerts charts
- 'plutono/**' # ignore the license for the plutono charts
- 'kube-monitoring/**' # ignore the license for the kube-monitoring charts
- 'plutono/charts/**' # ignore the license for the plutono charts
- 'thanos/charts/templates/tests/**' # ignore the license for this file
- 'opentelemetry/chart/**' # ignore the license for the opentelemetry chart
- '**/*.md'
Expand Down
61 changes: 16 additions & 45 deletions plutono/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,21 @@
title: Plutono
---

Installs the web dashboarding system [Plutono](https://github.com/credativ/plutono) to easily collect, correlate, and visualize Prometheus metrics with dashboards.
Learn more about the **plutono** Plugin. Use it to install the web dashboarding system [Plutono](https://github.com/credativ/plutono) to collect, correlate, and visualize Prometheus metrics for your Greenhouse cluster.

# Owner
The main terminologies used in this document can be found in [core-concepts](https://cloudoperators.github.io/greenhouse/docs/getting-started/core-concepts).

1. Richard Tief (@richardtief)
## Overview

Observability is often required for the operation and automation of service offerings. Plutono provides you with tools to display Prometheus metrics on live dashboards with insightful charts and visualizations. In the Greenhouse context, this complements the **kube-monitoring** plugin, which automatically acts as a Plutono data source which is recognized by Plutono. In addition, the Plugin provides a mechanism that automates the lifecycle of datasources and dashboards without having to restart Plutono.

![Plutono Architecture](./img/Plutono-arch.png)

## Disclaimer

This is not meant to be a comprehensive package that covers all scenarios. If you are an expert, feel free to configure the Plugin according to your needs.

Contribution is highly appreciated. If you discover bugs or want to add functionality to the plugin, then pull requests are always welcome.

## Quick Start

Expand All @@ -17,7 +27,7 @@ This guide provides a quick and straightforward way how to use Plutono as a Gree
- A running and Greenhouse-managed Kubernetes cluster
- `kube-monitoring` Plugin installed to have at least one Prometheus instance running in the cluster

The plugin works by factory default with anonymous access enabled. If you use the standard configuration in the kube-monitoring plugin, the data source and some [k8s-monitoring](https://github.com/cloudoperators/k8s-monitoring) dashboards are already pre-installed.
The plugin works by default with anonymous access enabled. If you use the standard configuration in the **kube-monitoring** plugin, the data source and some [kubernetes-operations](https://github.com/cloudoperators/kubernetes-operations) dashboards are already pre-installed.

**Step 1: Add your dashboards**

Expand All @@ -35,16 +45,13 @@ Data sources are selected from `Secrets` across namespaces. The plugin searches
| Parameter | Description | Default |
|-------------------------------------------|-----------------------------------------------|---------------------------------------------------------|
| `plutono.replicas` | Number of nodes | `1` |
| `plutono.podDisruptionBudget.minAvailable` | Pod disruption minimum available | `nil` |
| `plutono.podDisruptionBudget.maxUnavailable` | Pod disruption maximum unavailable | `nil` |
| `plutono.podDisruptionBudget.apiVersion` | Pod disruption apiVersion | `nil` |
| `plutono.deploymentStrategy` | Deployment strategy | `{ "type": "RollingUpdate" }` |
| `plutono.livenessProbe` | Liveness Probe settings | `{ "httpGet": { "path": "/api/health", "port": 3000 } "initialDelaySeconds": 60, "timeoutSeconds": 30, "failureThreshold": 10 }` |
| `plutono.readinessProbe` | Readiness Probe settings | `{ "httpGet": { "path": "/api/health", "port": 3000 } }`|
| `plutono.securityContext` | Deployment securityContext | `{"runAsUser": 472, "runAsGroup": 472, "fsGroup": 472}` |
| `plutono.priorityClassName` | Name of Priority Class to assign pods | `nil` |
| `plutono.image.registry` | Image registry | `docker.io` |
| `plutono.image.repository` | Image repository | `plutono/plutono` |
| `plutono.image.registry` | Image registry | `ghcr.io` |
| `plutono.image.repository` | Image repository | `credativ/plutono` |
| `plutono.image.tag` | Overrides the Plutono image tag whose default is the chart appVersion (`Must be >= 5.0.0`) | `` |
| `plutono.image.sha` | Image sha (optional) | `` |
| `plutono.image.pullPolicy` | Image pull policy | `IfNotPresent` |
Expand Down Expand Up @@ -254,23 +261,6 @@ Data sources are selected from `Secrets` across namespaces. The plugin searches
| `plutono.networkPolicy.egress.ports` | An array of ports to allow for the egress | `[]` |
| `plutono.enableKubeBackwardCompatibility` | Enable backward compatibility of kubernetes where pod's definition version below 1.13 doesn't have the enableServiceLinks option | `false` |

### Example ingress with path

With plutono 6.3 and above

```yaml
plutono.ini:
server:
domain: monitoring.example.com
root_url: "%(protocol)s://%(domain)s/plutono"
serve_from_sub_path: true
ingress:
enabled: true
hosts:
- "monitoring.example.com"
path: "/plutono"
```
### Example of extraVolumeMounts and extraVolumes

Configure additional volumes with `extraVolumes` and volume mounts with `extraVolumeMounts`.
Expand Down Expand Up @@ -601,22 +591,3 @@ Include in the `extraSecretMounts` configuration flag:
mountPath: /etc/secrets/auth_generic_oauth
readOnly: true
```

### extraSecretMounts using a Container Storage Interface (CSI) provider

This example uses a CSI driver e.g. retrieving secrets using [Azure Key Vault Provider](https://github.com/Azure/secrets-store-csi-driver-provider-azure)

```yaml
- extraSecretMounts:
- name: secrets-store-inline
mountPath: /run/secrets
readOnly: true
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "my-provider"
nodePublishSecretRef:
name: akv-creds
```

128 changes: 128 additions & 0 deletions plutono/img/Plutono-arch.drawio

Large diffs are not rendered by default.

Binary file added plutono/img/Plutono-arch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 493a77b

Please sign in to comment.