Skip to content

tron4x/vitepress-helm-chart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Custom Helm Chart for vitepress

See Vitepress Complete Guide on my site.

Values must be adjusted for your needs.

Docker Image

image:
  repository: # example ghcr.io/<account>/docs 
  pullPolicy: Always
  # Overrides the image tag whose default is the chart appVersion.
  tag: ""

Create kubernetes image pull secret

Image pull secret is needed to pull image from ghcr.io
To create a docker secret in kubernetes, do this:
Please set your values in:

  • DOCKER_REGISTRY_SERVER
  • DOCKER_USER
  • DOCKER_PASSWORD ( use github classic token here )
  • DOCKER_EMAIL
  • NAMESPACE
kubectl create secret docker-registry dockerimg \
--docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER \
--docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL \
-n NAMESPACE

Ingress

Please set your domain or subdomain.
Cert-Manager is required. See here how to install and create cluster-issuer.

ingress:
  enabled: true
  className: "nginx"
  annotations: 
    cert-manager.io/cluster-issuer: cert-issuer
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: <domain or subdoamin>
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: 
    - secretName: cert-issuer-secret
      hosts:
        - <domain or subdoamin>

All other values ​​can remain unchanged.

Deploy helm chart to kubernetes

cd < on your helm chart directory >
helm install <release name> . -f values.yaml -n <namespace>

Example:

helm install docs . -f values.yaml -n docs

Cheking if all kubernetes resources are up and running

kubectl get all -n < your namespace >
NAME                       READY   STATUS    RESTARTS   AGE
pod/docs-8cf5cd5bd-xzmm5   1/1     Running   0          7m48s

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
service/docs   ClusterIP   10.43.136.15   <none>        80/TCP    7m48s

NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/docs   1/1     1            1           7m48s

NAME                             DESIRED   CURRENT   READY   AGE
replicaset.apps/docs-8cf5cd5bd   1         1         1       7m48s

Thats it. Have fun 😃 🥳