fluxcd-helm-upgrader

FluxCD Helm Upgrader Helm Repository

License Helm

Welcome to the official Helm chart repository for the FluxCD Helm Upgrader! This repository provides automated Helm chart upgrades within your FluxCD-managed Kubernetes clusters.

๐Ÿš€ Quick Start

Add the Helm Repository

Add this repository to your Helm client:

helm repo add fluxcd-helm-upgrader https://kenchrcum.github.io/fluxcd-helm-upgrader
helm repo update

Install the FluxCD Helm Upgrader Chart

Install the chart with default values:

helm install fluxcd-helm-upgrader fluxcd-helm-upgrader/fluxcd-helm-upgrader

Or install in a specific namespace:

helm install fluxcd-helm-upgrader fluxcd-helm-upgrader/fluxcd-helm-upgrader \
  --namespace flux-system \
  --create-namespace

Upgrade the Chart

To upgrade to the latest version:

helm repo update
helm upgrade fluxcd-helm-upgrader fluxcd-helm-upgrader/fluxcd-helm-upgrader

๐Ÿ“‹ What is FluxCD Helm Upgrader?

The FluxCD Helm Upgrader is a Kubernetes controller that automatically detects and creates pull requests for Helm chart upgrades in your GitOps repositories managed by FluxCD. It integrates seamlessly with your existing FluxCD setup to keep your Helm dependencies up-to-date.

Key Features

๐Ÿ“– Documentation

For detailed installation instructions, configuration options, and examples, visit the main repository.

Configuration Examples

Using GitHub Token Authentication

helm install fluxcd-helm-upgrader fluxcd-helm-upgrader/fluxcd-helm-upgrader \
  --set github.token=your-github-token \
  --set github.owner=your-org \
  --set github.repo=your-repo

Using SSH Authentication

# First, create the SSH secret
kubectl create secret generic fluxcd-helm-upgrader-ssh \
  --from-file=id_rsa=/path/to/your/deploy-key \
  --from-file=id_rsa.pub=/path/to/your/deploy-key.pub \
  --from-literal=known_hosts="$(ssh-keyscan -t rsa github.com)" \
  -n flux-system

# Then install the chart
helm install fluxcd-helm-upgrader fluxcd-helm-upgrader/fluxcd-helm-upgrader \
  --set ssh.enabled=true \
  --set github.owner=your-org \
  --set github.repo=your-repo

Configuration Parameters

Parameter Description Default
image.repository Docker image repository kenchrcum/fluxcd-helm-upgrader
image.tag Docker image tag โ€œ0.3.2โ€
image.pullPolicy Image pull policy IfNotPresent
mode Deployment mode: โ€œdeploymentโ€ for continuous operation, โ€œcronjobโ€ for scheduled execution deployment
replicaCount Number of replicas for deployment mode 1
cronjob.schedule Schedule in cron format (e.g., โ€œ0 */6 * * *โ€ for every 6 hours) โ€œ0 */6 * * *โ€
cronjob.concurrencyPolicy How to handle concurrent executions Forbid
cronjob.successfulJobsHistoryLimit Number of successful jobs to retain 3
cronjob.failedJobsHistoryLimit Number of failed jobs to retain 1
cronjob.startingDeadlineSeconds Deadline in seconds for starting the job if missed 300
cronjob.suspend Suspend the cron job false
cronjob.activeDeadlineSeconds Deadline in seconds for job execution 3600
cronjob.backoffLimit Number of retries before marking job as failed 3
resources.limits.cpu CPU limit for the pod 200m
resources.limits.memory Memory limit for the pod 256Mi
resources.requests.cpu CPU request for the pod 50m
resources.requests.memory Memory request for the pod 64Mi
nodeSelector Node selector for pod scheduling {}
tolerations Tolerations for pod scheduling []
affinity Affinity rules for pod scheduling {}
serviceAccount.create Create a service account true
serviceAccount.name Name of the service account โ€โ€
rbac.create Create RBAC resources true
rbac.clusterWide Create cluster-wide RBAC true
logLevel Logging level INFO
intervalSeconds Interval between checks in seconds 300
includePrerelease Include prerelease versions in upgrades false
podAnnotations Annotations for the pod {}
repo.url URL of the Git repository โ€โ€
repo.branch Branch to use โ€โ€
repo.searchPattern Pattern to search for HelmRelease manifests โ€œ/components/{namespace}//helmrelease.y*mlโ€
repo.cloneDir Mount path for cloning the repo โ€œ/tmp/fluxcd-repoโ€
repo.sshKeySecret.enabled Enable SSH key authentication false
repo.sshKeySecret.name Name of the SSH secret โ€โ€
repo.sshKeySecret.privateKey Key name for private key in secret โ€œid_rsaโ€
repo.sshKeySecret.publicKey Key name for public key in secret โ€œid_rsa.pubโ€
repo.sshKeySecret.knownHosts Key name for known_hosts in secret โ€œknown_hostsโ€
github.tokenSecret.enabled Enable GitHub token secret false
github.tokenSecret.name Name of the token secret โ€โ€
github.tokenSecret.key Key name for token in secret โ€œtokenโ€
github.repository GitHub repository in format โ€˜owner/repoโ€™ โ€โ€
github.defaultBranch Override default branch detection โ€โ€
git.userName Git user name for commits โ€œfluxcd-helm-upgraderโ€
git.userEmail Git user email for commits โ€œfluxcd-helm-upgrader@noreply.localโ€
git.forcePush Force push branches when they exist false

๐Ÿ“Š Available Charts

Chart Version Description
fluxcd-helm-upgrader Latest Automated Helm chart upgrades for FluxCD

๐Ÿค Contributing

We welcome contributions! Please see the contributing guidelines in the main repository.

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

๐Ÿ†˜ Support


Keep your Helm charts fresh with FluxCD Helm Upgrader! ๐ŸŒŸ