groundhog2k Helm Charts

repository·master·Indexed 41 days ago

https://github.com/groundhog2k/helm-charts

A collection of platform-independent Helm charts for popular open-source projects, including Etcd, Ghost, and Gitea. These charts utilize original Docker Hub images rather than modified Bitnami versions. Documentation covers installation, uninstallation, and detailed configuration for networking, storage, database backends (MySQL, MariaDB, PostgreSQL, SQLite), and Kubernetes Gateway API integration.

Tokens
49.9K
Snippets
106
Records
195
Agent score
46%

What's inside groundhog2k Helm Charts

  1. Overview of groundhog2k Helm charts

    master
    This repository provides Helm charts for popular open-source projects. Unlike Bitnami charts which use modified images, these charts use original Docker Hub images. This makes them platform-independent, supporting both x64/amd64 and arm64v8 (e.g., Raspberry Pi 3/4) Kubernetes clusters.
  2. How Redis High Availability (HA) works in this chart

    master

    This chart supports two deployment modes via the haMode.enabled parameter:

    1. Basic Setup (Standalone)

    Set haMode.enabled: false. This creates a single standalone Redis instance. It is reachable via the service: configuration (defaulting to ClusterIP on port 6379).

    2. Advanced Setup (High Availability)

    Set haMode.enabled: true. This creates a cluster of 3 pods by default, consisting of 1 Redis master and 2 Redis replications.

    Architecture details:

    • Each pod contains two containers: one for the Redis server and one for Redis Sentinel.
    • The default quorum for electing a new master is set to 2.
    • Sentinel instances can be reached via the service: configuration (defaulting to ClusterIP on port 26379).
    # Example for HA mode
    haMode:
      enabled: true
  3. Configure extra containers, secrets, and advanced settings

    master

    The MongoDB chart supports extending the deployment with additional resources:

    • Extra Containers: Support for adding additional containers to the pod was implemented in chart versions 0.2.17 (MongoDB 4.2.18), 0.3.11 (MongoDB 4.4.13), and 0.4.4 (MongoDB 5.0.6).
    • Extra Secrets: Support for including additional secrets was implemented in chart versions 0.2.16 (MongoDB 4.2.18), 0.3.10 (MongoDB 4.4.13), and 0.4.3 (MongoDB 5.0.6).
    • Custom Inline Init Scripts: Support for custom inline initialization scripts was added in chart version 0.5.1 (MongoDB 6.0.1).
  4. Configure advanced Postgres features in the Helm chart

    master

    The Postgres Helm chart supports several advanced configuration capabilities that allow for more complex deployments. Depending on the chart version used, you can leverage the following features:

    • Extra Secrets: Support for adding additional secrets to the deployment.
    • Extra Containers: Ability to run additional containers alongside the main Postgres container.
    • Custom Inline Init Scripts: Support for providing custom initialization scripts to run during startup.
    • Custom Configuration via Secrets: Versions 1.0.0 and above support providing configuration via a dedicated configuration secret, extra config, and extra volume support.
    • Configurable PGDATA: In version 1.5.10 and later, the PGDATA (Postgres data directory) path is configurable.
    • Network Policies and Labels: Version 0.5.2 and later added support for network policies, additional labels, and annotations.
    • Load Balancer Configuration: Version 1.5.6 and later added support for loadBalancerSourceRanges.
    • Resource Management: Version 1.5.7 and later added an optional resources section specifically for the initContainer.
  5. Configure ReplicaSet deployment for MongoDB

    master
    The MongoDB Helm chart supports ReplicaSet deployment modes. Support for ReplicaSet deployment was introduced in chart version 0.2.22 (for MongoDB 4.2.23), 0.3.18 (for MongoDB 4.4.17), 0.4.12 (for MongoDB 5.0.13), and 0.5.4 (for MongoDB 6.0.2). Later versions (0.5.4+) include fixes for pod initialization when deployed without a replicaset and allow for more independent configuration of arbiters and hidden secondaries.
  6. Enable Prometheus metrics and ServiceMonitor for MongoDB

    master
    Starting with chart version 0.8.0 (MongoDB 8.3.7), the chart implements Prometheus metrics and ServiceMonitor support. This is achieved via a mongodb_exporter sidecar container. The exporter covers primary, secondary, and hidden-secondary members, utilizing directConnection for per-member metrics.
  7. Configure Nextcloud with Nginx sidecar (FPM mode)

    master

    By default, the chart uses the Apache-based Nextcloud image. If you enable nginx.enabled: true, the chart switches to the PHP-FPM image (nextcloud:*-fpm) and adds an Nginx container as a sidecar to act as an HTTP reverse proxy.

    Requirements for FPM mode:

    1. Set nginx.enabled: true.
    2. Explicitly set image.tag to an FPM-compatible tag (e.g., 34.0.1-fpm).
    3. Set containerPort to 9000 (the default for Apache mode is 8000).

    Nginx Sidecar Parameters:

    • nginx.containerPort: The HTTP port the Nginx sidecar listens on (default: 8080).
    • nginx.image.*: Configuration for the Nginx image (registry, repository, tag, pullPolicy).
    • nginx.resources: Resource limits/requests for the Nginx container.
    • nginx.custom*Probe: Overwrite default liveness, startup, or readiness probes for the Nginx container.
    nginx:
      enabled: true
    image:
      tag: "34.0.1-fpm"
    containerPort: 9000
  8. Configure advanced RabbitMQ features via Helm

    master

    Recent versions of the RabbitMQ Helm chart (v1.0.0+) support advanced configuration capabilities that allow for more flexible deployments. You can provide:

    • Configuration Secrets: Use secrets to manage sensitive configuration data.
    • Extra Config: Inject additional RabbitMQ configuration files.
    • Extra Volumes: Mount additional volumes into the RabbitMQ pods.

    These features are available in the 1.x.x and 2.x.x series of the chart.

  9. How Valkey High Availability (HA) works

    master

    The Valkey chart supports two deployment modes via the haMode.enabled parameter:

    Basic Setup (Standalone)

    Set haMode.enabled: false. This creates a single standalone Valkey instance. It is accessible via the service: configuration (defaulting to ClusterIP on port 6379).

    Advanced Setup (High Availability)

    Set haMode.enabled: true. This creates a highly available cluster consisting of:

    • 3 Pods by default.
    • 1 Valkey Master (M1) and 2 Valkey Replications (R1/R2).
    • 2 Containers per Pod: One for the Valkey server and one for the Valkey Sentinel (S1/S2/S3).
    • Quorum: The default quorum for electing a new master is set to 2.

    Sentinel instances can be reached via the service: configuration (defaulting to ClusterIP on port 26379).

    # Example for HA mode
    haMode:
      enabled: true
  10. Install the Ghost Helm Chart

    master

    To deploy a Ghost blog on Kubernetes, add the groundhog2k repository and install the ghost chart. This chart uses the official Ghost Docker Hub image and supports multi-architecture deployments.

    Prerequisites

    • Kubernetes 1.12+
    • Helm 3.x
    • PV provisioner support in your infrastructure
    helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
    helm install my-release groundhog2k/ghost