Skip to content

Commit

Permalink
chore: introduce helm docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
mugioka committed Jun 27, 2022
1 parent 5f0f1de commit 892ba4e
Show file tree
Hide file tree
Showing 6 changed files with 302 additions and 85 deletions.
13 changes: 13 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
repos:
- repo: git://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: end-of-file-fixer
- repo: https://github.com/norwoodj/helm-docs
rev: v1.10.0
hooks:
- id: helm-docs
args:
# Repeating the flag adds this to the list, now [./_templates.gotmpl, README.md.gotmpl]
# A base filename makes it relative to each chart directory found
- --template-files=README.md.gotmpl
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
helm 3.8.0
helm-docs 1.10.0
4 changes: 2 additions & 2 deletions charts/panope/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: panope
description: A Helm chart for Kubernetes
description: A Helm chart for Panope, use Spot VMs/Preemptible VMs in GKE to reduce infrastructure costs while high availability tool

# A chart can be either an 'application' or a 'library' chart.
#
Expand All @@ -15,7 +15,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.7.0
version: 0.7.1

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
150 changes: 141 additions & 9 deletions charts/panope/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,148 @@
# Panope Chart
A Helm Chart for Panope.
# panope

# Prerequisites
*Kubernetes 1.7+*
A Helm chart for Panope, use Spot VMs/Preemptible VMs in GKE to reduce infrastructure costs while high availability tool

![Version: 0.7.1](https://img.shields.io/badge/Version-0.7.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.7.0](https://img.shields.io/badge/AppVersion-v0.7.0-informational?style=flat-square)

## Prerequisites
*GKE 1.19+*
*Helm v3.0.0+*

# Installing the Chart
## Installing the Chart

To install the chart with the release name `my-release`:
```
$ helm repo add 7knot https://7knot.github.io/helm-charts
"7knot" has been added to your repositories

```console
$ helm repo add 7knot https://7knot.github.io/helm-charts
$ helm install my-release 7knot/panope
NAME: my-release
```

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| agent.affinity | object | `{}` | Affinity for scheduling the agent pods |
| agent.clusterRole.annotations | object | `{}` | Annotations to add to the cluster role |
| agent.clusterRole.labels | object | `{}` | Labels to add to the cluster role |
| agent.clusterRoleBinding.annotations | object | `{}` | Annotations to add to the cluster role binding |
| agent.clusterRoleBinding.labels | object | `{}` | Labels to add to the cluster role binding |
| agent.configMap.agentSubject | string | `""` | Configure NATS subject for agent to publish to NATS server |
| agent.configMap.annotations | object | `{}` | Annotations to add to the config map |
| agent.configMap.clusterNodeMaxSurge | string | `"25%"` | Configure the maximum number of nodes in the cluster as a percentage |
| agent.configMap.controllerSubject | string | `""` | Configure NATS subject for agent to subscribe to NATS server |
| agent.configMap.drainingTimeoutSec | string | `nil` | configure the timeout for draining pods from node. if not set, default value is 180 |
| agent.configMap.failoverEnabled | string | `"false"` | enable the failover feature |
| agent.configMap.healthCheckPort | string | `nil` | Configure the health check port. if not set, default value is 4444 |
| agent.configMap.labels | object | `{}` | Labels to add to the config map |
| agent.configMap.maxProcessedNodeCount | string | `"5"` | Configure the maximum number of nodes to be processed at the same time (cordoned or drained, etc.) |
| agent.configMap.metricsPort | string | `nil` | Configure the metrics port. if not set, default value is 2112 |
| agent.configMap.natsUri | string | `"wss://nats.panope.net:443"` | Configure the NATS URI to connect NATS server, currently, the only supported URI schema is `wss` |
| agent.configMap.rollingUpdateTimeoutSec | string | `nil` | Configure the timeout for rolling update of deployment. if not set, default value is 180 |
| agent.deployment.annotations | object | `{}` | Annotations to add to the deployment of agent |
| agent.deployment.labels | object | `{}` | Labels to add to the deployment of agent |
| agent.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the agent |
| agent.image.repository | string | `"gcr.io/panope/agent"` | Image repository to use for the agent |
| agent.image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion. |
| agent.imagePullSecrets | list | `[]` | If defined, uses a Secret to pull an image from a private Docker registry or repository. |
| agent.livenessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
| agent.livenessProbe.httpGet.path | string | `"/health"` | Path to the health check endpoint |
| agent.livenessProbe.httpGet.port | int | `4444` | Port of health check endpoint |
| agent.livenessProbe.httpGet.scheme | string | `"HTTP"` | Schema of request |
| agent.livenessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated |
| agent.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
| agent.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
| agent.livenessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out |
| agent.nodeSelector | object | `{}` | Node labels for scheduling the agent pods |
| agent.pdb.annotations | object | `{}` | Annotations to add to the pdb |
| agent.pdb.enabled | bool | `false` | Configure PodDisruptionBudget for the agent pods |
| agent.pdb.labels | object | `{}` | Labels to add to the pdb |
| agent.podAnnotations | object | `{}` | Annotations for the agent pods |
| agent.podLabels | object | `{}` | Labels for the agent pods |
| agent.podSecurityContext | object | `{}` | Security context for the agent pods |
| agent.priorityClassName | string | `""` | Priority class name for the agent pods |
| agent.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
| agent.readinessProbe.httpGet.path | string | `"/health"` | Path to the health check endpoint |
| agent.readinessProbe.httpGet.port | int | `4444` | Port of health check endpoint |
| agent.readinessProbe.httpGet.scheme | string | `"HTTP"` | Schema of request |
| agent.readinessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated |
| agent.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
| agent.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
| agent.readinessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out |
| agent.replicaCount | int | `1` | The number of agent pods to run |
| agent.resources | object | `{}` | Resources requests/limits for the agent containers |
| agent.role.annotations | object | `{}` | Annotations to add to the role |
| agent.role.labels | object | `{}` | Labels to add to the role |
| agent.roleBinding.annotations | object | `{}` | Annotations to add to the role binding |
| agent.roleBinding.labels | object | `{}` | Labels to add to the role binding |
| agent.secret.annotations | object | `{}` | Annotations to add to the secret |
| agent.secret.googleServiceAccountKeyfileJson | string | `nil` | JSON key file for a GCP service account to authenticate agent to GCP |
| agent.secret.labels | object | `{}` | Labels to add to the secret |
| agent.secret.nats.credentials | string | `nil` | Configure the NATS credentials for agent to publish/subscribe to NATS server |
| agent.secret.valuesAreBase64Encoded | bool | `false` | If set to true the values are already base64 encoded when provided, otherwise the template performs the base64 encoding |
| agent.securityContext | object | `{}` | Security context for the agent containers |
| agent.service.annotations | object | `{}` | Annotations to add to the service |
| agent.service.labels | object | `{}` | Labels to add to the service |
| agent.serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
| agent.serviceAccount.labels | object | `{}` | Labels to add to the service account |
| agent.serviceAccount.name | string | `""` | Service account name. if not set, panope.agent.fullname is used |
| agent.serviceMonitor.annotations | object | `{}` | Annotations to add to the service monitor |
| agent.serviceMonitor.enabled | bool | `false` | Configure the service monitor for Prometheus |
| agent.serviceMonitor.labels | object | `{}` | Labels to add to the service monitor |
| agent.tolerations | list | `[]` | Tolerations for scheduling the agent pods |
| fullnameOverride | string | `""` | Completely replaces the generated release name. |
| nameOverride | string | `""` | Replaces the name of the chart in the Chart.yaml file |
| observer.affinity | object | `{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"cloud.google.com/gke-preemptible","operator":"Exists"}]},{"matchExpressions":[{"key":"cloud.google.com/gke-spot","operator":"Exists"}]},{"matchExpressions":[{"key":"panope.net/failover","operator":"Exists"}]}]}}}` | Affinity for scheduling the observer pods |
| observer.affinity.nodeAffinity | object | `{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"cloud.google.com/gke-preemptible","operator":"Exists"}]},{"matchExpressions":[{"key":"cloud.google.com/gke-spot","operator":"Exists"}]},{"matchExpressions":[{"key":"panope.net/failover","operator":"Exists"}]}]}}` | Following affinity is required for the observer to work properly |
| observer.clusterRole.annotations | object | `{}` | Annotations to add to the cluster role |
| observer.clusterRole.labels | object | `{}` | Labels to add to the cluster role |
| observer.clusterRoleBinding.annotations | object | `{}` | Annotations to add to the cluster role binding |
| observer.clusterRoleBinding.labels | object | `{}` | Labels to add to the cluster role binding |
| observer.configMap.annotations | object | `{}` | Annotations to add to the config map |
| observer.configMap.controllerSubject | string | `""` | Configure NATS subject for the observer to subscribe |
| observer.configMap.healthCheckPort | string | `nil` | Configure the health check port. if not set, default value is 4444 |
| observer.configMap.labels | object | `{}` | Labels to add to the config map |
| observer.configMap.metricsPort | string | `nil` | |
| observer.configMap.natsUri | string | `"wss://nats.panope.net:443"` | Configure NATS uri to connect to NATS server. currently, the only supported URI schema is `wss` |
| observer.configMap.observerSubject | string | `""` | Configure NATS subject for the observer to publish to NATS server |
| observer.daemonset.annotations | object | `{}` | Annotations to add to the deployment |
| observer.daemonset.labels | object | `{}` | Labels to add to the deployment |
| observer.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the observer |
| observer.image.repository | string | `"gcr.io/panope/observer"` | Image repository to use for the observer |
| observer.image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion |
| observer.imagePullSecrets | list | `[]` | If defined, uses a Secret to pull an image from a private Docker registry or repository |
| observer.livenessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
| observer.livenessProbe.httpGet.path | string | `"/health"` | Path to the health check endpoint |
| observer.livenessProbe.httpGet.port | int | `4444` | Port of health check endpoint |
| observer.livenessProbe.httpGet.scheme | string | `"HTTP"` | Schema of request |
| observer.livenessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated |
| observer.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
| observer.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
| observer.livenessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out |
| observer.podAnnotations | object | `{}` | Annotations for the agent pods |
| observer.podLabels | object | `{}` | Labels for the observer pods |
| observer.podSecurityContext | object | `{}` | Security context for the observer pods |
| observer.priorityClassName | string | `""` | Priority class name for the observer pods |
| observer.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
| observer.readinessProbe.httpGet.path | string | `"/health"` | Path to the health check endpoint |
| observer.readinessProbe.httpGet.port | int | `4444` | Port of health check endpoint |
| observer.readinessProbe.httpGet.scheme | string | `"HTTP"` | Schema of request |
| observer.readinessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated |
| observer.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
| observer.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
| observer.readinessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out |
| observer.resources | object | `{}` | Resources requests/limits for the observer containers |
| observer.secret.annotations | object | `{}` | Annotations to add to the secret |
| observer.secret.labels | object | `{}` | Labels to add to the secret |
| observer.secret.nats.credentials | string | `nil` | Configure the NATS credentials for the observer to publish/subscribe to NATS server |
| observer.service.annotations | object | `{}` | Annotations to add to the service |
| observer.service.labels | object | `{}` | Labels to add to the service |
| observer.serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
| observer.serviceAccount.labels | object | `{}` | Labels to add to the service account |
| observer.serviceAccount.name | string | `""` | Service account name. if not set, (panope.observer.fullname) is used |
| observer.serviceMonitor.annotations | object | `{}` | Annotations to add to the service monitor |
| observer.serviceMonitor.enabled | bool | `false` | Configure the service monitor for Prometheus |
| observer.serviceMonitor.labels | object | `{}` | Labels to add to the service monitor |
| observer.tolerations | list | `[]` | Tolerations for scheduling the observer pods |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
23 changes: 23 additions & 0 deletions charts/panope/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{{ template "chart.header" . }}
{{ template "chart.description" . }}

{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}

## Prerequisites
*GKE 1.19+*
*Helm v3.0.0+*

## Installing the Chart

To install the chart with the release name `my-release`:

```console
$ helm repo add 7knot https://7knot.github.io/helm-charts
$ helm install my-release 7knot/{{ template "chart.name" . }}
```

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}

{{ template "helm-docs.versionFooter" . }}
Loading

0 comments on commit 892ba4e

Please sign in to comment.