docs(examples): Add some deployment examples

This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2022-08-11 13:25:03 +02:00
parent 592e2a35dc
commit 216592df83
No known key found for this signature in database
GPG key ID: BC5E2BD907F9A8EC
10 changed files with 280 additions and 34 deletions

View file

@ -45,9 +45,6 @@ theme:
docs_dir: ../../docs docs_dir: ../../docs
site_dir: ../../_site site_dir: ../../_site
extra_css:
- _static/custom.css
# Plugins # Plugins
plugins: plugins:
- search - search
@ -71,6 +68,10 @@ markdown_extensions:
- footnotes - footnotes
- meta - meta
- md_in_html - md_in_html
- pymdownx.highlight
- pymdownx.snippets:
check_paths: true
- pymdownx.superfences
- toc: - toc:
permalink: true permalink: true

View file

@ -14,40 +14,14 @@ Be sure to check out the [common library docs](../../common-library/introduction
and its [`values.yaml`](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common/values.yaml) for and its [`values.yaml`](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common/values.yaml) for
more information about the available configuration options. more information about the available configuration options.
#### Example #### Examples
This is an example `values.yaml` file that would deploy the [echo-server](https://github.com/jmalloc/echo-server) This is an example `values.yaml` file that would deploy the [vaultwarden](https://github.com/dani-garcia/vaultwarden)
application. application. For more deployment examples, check out the [`examples` folder](https://github.com/bjw-s/helm-charts/tree/main/examples/).
```yaml
image:
repository: docker.io/jmalloc/echo-server
tag: 0.3.3
service: ``` yaml title="values.yaml"
main: --8<-- "./examples/helm/values.yaml"
ports:
http:
port: 8080
ingress:
main:
enabled: true
ingressClassName: "nginx"
hosts:
- host: &host "echo-server.${INGRESS_DOMAIN}"
paths:
- path: /
tls:
- hosts:
- *host
resources:
requests:
cpu: 15m
memory: 64M
limits:
memory: 128M
``` ```
## Source code ## Source code

10
examples/flux/README.md Normal file
View file

@ -0,0 +1,10 @@
# Deployment example using a Flux HelmRelease
### Prerequisites
Make sure that the [`bjws-helm-charts` HelmRepository](helmrepository.yaml) is added to your cluster.
### Deployment
When you add the [HelmRelease](helmrelease.yaml) to your cluster, Flux will automatically render and
apply the rendered manifest(s) to your cluster.

View file

@ -0,0 +1,77 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: vaultwarden
namespace: default
spec:
interval: 15m
chart:
spec:
chart: app-template
# -- Version of the app-template helm chart
# this example is not automatically updated, so be sure to use the latest chart version
version: 0.1.1
interval: 15m
sourceRef:
kind: HelmRepository
name: bjw-s-helm-charts
namespace: flux-system
values:
image:
# -- image repository
repository: vaultwarden/server
# -- image pull policy
pullPolicy: IfNotPresent
# -- image tag
# this example is not automatically updated, so be sure to use the latest image
tag: 1.25.2
strategy:
type: Recreate
# -- environment variables.
# See [image docs](https://github.com/dani-garcia/vaultwarden/blob/main/.env.template) for more details.
env:
# -- Config dir
DATA_FOLDER: "config"
# -- Configures service settings for the chart.
service:
main:
ports:
http:
port: 80
websocket:
enabled: true
port: 3012
ingress:
# -- Enable and configure ingress settings for the chart under this key.
main:
enabled: false
hosts:
- host: chart-example.local
paths:
- path: /
pathType: Prefix
service:
port: http
- path: /notifications/hub/negotiate
pathType: Prefix
service:
port: http
- path: /notifications/hub
pathType: Prefix
service:
port: websocket
# -- Configure persistence settings for the chart under this key.
persistence:
config:
enabled: true
type: pvc
accessMode: ReadWriteOnce
size: 1Gi
mountPath: /config

View file

@ -0,0 +1,10 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: bjw-s-helm-charts
namespace: flux-system
spec:
interval: 30m
url: https://bjw-s.github.io/helm-charts/
timeout: 3m

21
examples/helm/README.md Normal file
View file

@ -0,0 +1,21 @@
# Deployment example using Kustomize
### Prerequisites
Makre sure the Helm repository is installed as follows:
```console
helm repo add bjw-s https://bjw-s.github.io/helm-charts
helm repo update
```
### Deployment
In order to deploy the manifest for this example, issue the
following command:
```console
helm install vaultwarden bjw-s/app-template --namespace default --values values.yaml
```
This will apply the rendered manifest(s) to your cluster.

56
examples/helm/values.yaml Normal file
View file

@ -0,0 +1,56 @@
image:
# -- image repository
repository: vaultwarden/server
# -- image pull policy
pullPolicy: IfNotPresent
# -- image tag
# this example is not automatically updated, so be sure to use the latest image
tag: 1.25.2
strategy:
type: Recreate
# -- environment variables.
# See [image docs](https://github.com/dani-garcia/vaultwarden/blob/main/.env.template) for more details.
env:
# -- Config dir
DATA_FOLDER: "config"
# -- Configures service settings for the chart.
service:
main:
ports:
http:
port: 80
websocket:
enabled: true
port: 3012
ingress:
# -- Enable and configure ingress settings for the chart under this key.
main:
enabled: false
hosts:
- host: chart-example.local
paths:
- path: /
pathType: Prefix
service:
port: http
- path: /notifications/hub/negotiate
pathType: Prefix
service:
port: http
- path: /notifications/hub
pathType: Prefix
service:
port: websocket
# -- Configure persistence settings for the chart under this key.
persistence:
config:
enabled: true
type: pvc
accessMode: ReadWriteOnce
size: 1Gi
mountPath: /config

View file

@ -0,0 +1,25 @@
# Deployment example using Kustomize
### Deployment
#### Build
In order to view the resulting manifest for this example through Kustomize, issue
the following command:
```console
kubectl kustomize --enable-helm .
```
This will print the rendered manifest(s) to your console.
#### Apply
In order to deploy the manifest for this example through Kustomize, issue the
following command:
```console
kubectl kustomize --enable-helm . | kubectl apply -f -
```
This will apply the rendered manifest(s) to your cluster.

View file

@ -0,0 +1,16 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: app-template
repo: https://bjw-s.github.io/helm-charts/
# this example is not automatically updated, so be sure to use the latest chart version
version: 0.1.1
releaseName: &releaseName vaultwarden
namespace: &releaseNamespace default
valuesFile: values.yaml
commonAnnotations:
meta.helm.sh/release-name: *releaseName
meta.helm.sh/release-namespace: *releaseNamespace
commonLabels:
app.kubernetes.io/managed-by: Helm

View file

@ -0,0 +1,56 @@
image:
# -- image repository
repository: vaultwarden/server
# -- image pull policy
pullPolicy: IfNotPresent
# -- image tag
# this example is not automatically updated, so be sure to use the latest image
tag: 1.25.2
strategy:
type: Recreate
# -- environment variables.
# See [image docs](https://github.com/dani-garcia/vaultwarden/blob/main/.env.template) for more details.
env:
# -- Config dir
DATA_FOLDER: "config"
# -- Configures service settings for the chart.
service:
main:
ports:
http:
port: 80
websocket:
enabled: true
port: 3012
ingress:
# -- Enable and configure ingress settings for the chart under this key.
main:
enabled: false
hosts:
- host: chart-example.local
paths:
- path: /
pathType: Prefix
service:
port: http
- path: /notifications/hub/negotiate
pathType: Prefix
service:
port: http
- path: /notifications/hub
pathType: Prefix
service:
port: websocket
# -- Configure persistence settings for the chart under this key.
persistence:
config:
enabled: true
type: pvc
accessMode: ReadWriteOnce
size: 1Gi
mountPath: /config