mirror of
https://github.com/hcengineering/huly-selfhost.git
synced 2026-08-25 17:12:38 +02:00
* feat: add Helm chart for Kubernetes deployment Comprehensive Helm chart for deploying Huly to Kubernetes: - All core services (front, account, transactor, collaborator, etc.) - Infrastructure (CockroachDB, Redpanda, Elasticsearch, MinIO) - Optional AI bot with MongoDB - Automated backup CronJobs to S3-compatible storage - Configurable image registry and version pinning - Auto-generated secrets with persistence across upgrades - NGINX ingress with TLS via cert-manager - CI workflow for lint, template validation, and OCI publish Chart lives at helm/ (outside kube/) to avoid conflict with the existing kubectl-based CI that recursively applies kube/*.yaml. Signed-off-by: Daniel Kendall <dkendall@ledoweb.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Don Kendall <kendall@donkendall.com> * feat(helm): add optional GitHub integration service Deploy pod-github for bidirectional sync of issues, PRs, and comments between Huly and GitHub. Gated behind githubIntegration.enabled (false by default). Adds: - templates/github/deployment.yaml + service.yaml - GITHUB_URL to configmap and front deployment - GitHub App credentials to shared secret - /_github ingress backend - README documentation for GitHub integration and AI bot Signed-off-by: Daniel Kendall <dkendall@ledoweb.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Don Kendall <kendall@donkendall.com> --------- Signed-off-by: Don Kendall <kendall@donkendall.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
53 lines
1.3 KiB
YAML
53 lines
1.3 KiB
YAML
name: Helm Chart
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "helm/**"
|
|
pull_request:
|
|
paths:
|
|
- "helm/**"
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
env:
|
|
CHART_PATH: helm/huly
|
|
OCI_REGISTRY: oci://ghcr.io/${{ github.repository_owner }}/charts
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint & Template
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: azure/setup-helm@v4
|
|
- run: helm lint ${{ env.CHART_PATH }}
|
|
- run: helm template huly ${{ env.CHART_PATH }} --set domain=ci.example.com
|
|
|
|
publish:
|
|
name: Package & Push OCI
|
|
needs: lint
|
|
if: github.ref == 'refs/heads/main'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: azure/setup-helm@v4
|
|
|
|
- name: Extract chart version
|
|
id: chart
|
|
run: |
|
|
version=$(grep '^version:' ${{ env.CHART_PATH }}/Chart.yaml | awk '{print $2}')
|
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Login to GHCR
|
|
run: echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ghcr.io -u ${{ github.actor }} --password-stdin
|
|
|
|
- name: Package chart
|
|
run: helm package ${{ env.CHART_PATH }} -d /tmp/charts
|
|
|
|
- name: Push to OCI registry
|
|
run: helm push /tmp/charts/huly-${{ steps.chart.outputs.version }}.tgz ${{ env.OCI_REGISTRY }}
|