Skip to content

fix and update kube manifests for v7#215

Open
ghost wants to merge 5 commits intohcengineering:mainfrom
crocsinsocks:kube-manifests-clean-290925
Open

fix and update kube manifests for v7#215
ghost wants to merge 5 commits intohcengineering:mainfrom
crocsinsocks:kube-manifests-clean-290925

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Sep 29, 2025

🧩 Summary

The Kubernetes manifests in this repository were significantly out of date, lacked structure, and offered little guidance for deployment. This pull request modernizes and reorganizes them to make self-hosting Huly easier and more maintainable.

💡 Motivation

I recently discovered this project and wanted to self-host it. While doing so, I realized that the existing Kubernetes setup required a lot of reverse-engineering and manual trial and error — much of which could be avoided with clearer manifests and documentation.

This PR aims to:

  • Bring the Kubernetes manifests up to date and aligned with the current platform architecture.
  • Provide a clear and maintainable structure under kube/.
  • Improve readability and consistency across deployments and services.
  • Help new contributors and self-hosters get started faster.

🛠️ Changes

  • Reorganized and updated all manifests under kube/
  • Added a high-level README.md explaining prerequisites, service architecture, and routing
  • Introduced a structured layout for each service (deployment + service)
  • Cleaned up and validated references to Redpanda, CockroachDB, and MinIO
  • Added an example HTTPRoute definition for Gateway API routing
  • Removed deprecated or redundant configuration patterns

🧾 Notes

These changes are based on a recent successful self-hosted deployment.
I’ve included comments and sensible defaults that should make local and test deployments much easier to bootstrap.

🧩 Related Issues

Fixes #181

🙏 Acknowledgment

I really appreciate the effort the team has put into building this project.
This PR is intended as a contribution back to the community — to help others understand the platform internals and deploy it more easily.

@huly-github-staging
Copy link
Copy Markdown

Connected to Huly®: SELFH-213

Copy link
Copy Markdown
Member

@aonnikov aonnikov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me except the section about services. Will you be able to fix it?

Comment thread kube/README.md Outdated
Comment thread kube/README.md Outdated
Comment thread kube/README.md Outdated
Comment thread kube/README.md Outdated
Comment thread kube/README.md Outdated
@aonnikov aonnikov requested a review from lexiv0re October 6, 2025 05:46
@aonnikov
Copy link
Copy Markdown
Member

aonnikov commented Oct 9, 2025

Hey @crocinsocks ! Sorry for delay, I was busy with something else and it took me some time to pull the code and test it. From what I see, it works fine, so I'm about to merge it.

@0xtejas
Copy link
Copy Markdown
Contributor

0xtejas commented Feb 8, 2026

@aonnikov, when will this be merged?

dnplkndll added a commit to ledoent/huly-selfhost that referenced this pull request Mar 9, 2026
Replace the existing flat kube/ manifests (broken for v7, see hcengineering#181) with a
battle-tested Kustomize-based deployment structure.

Structure:
  kube/base/        - config, infra, app, ingress layers
  kube/overlays/    - example overlay users copy & customize
  kube/deploy.sh    - one-liner deploy script

Key design decisions:
- Path-based routing (/_accounts, /_transactor, etc.) matching compose.yml
- Elasticsearch 7.14.2 (not OpenSearch) - Huly's elasticsearch-js rejects
  non-ES backends
- Explicit env vars on backend services (no bulk envFrom leaking external URLs)
- Init containers for startup ordering (busybox wait loops)
- Readiness probes on all services (TCP for WS/POST-only, HTTP for REST)
- Imperative secret creation (no secret YAML in repo)
- huly.example placeholder domain - users must customize via overlay

Tested on K3s with v0.7.382. Renders 34 resources:
12 Deployments, 11 Services, 6 Ingresses, 4 PVCs, 1 ConfigMap.

Closes hcengineering#181
Addresses hcengineering#20
Supersedes hcengineering#215

Co-Authored-By: Claude Opus 4.6 <[email protected]>
dnplkndll added a commit to ledoent/huly-selfhost that referenced this pull request Mar 22, 2026
Replace the existing flat kube/ manifests (broken for v7, see hcengineering#181) with a
battle-tested Kustomize-based deployment structure.

Structure:
  kube/base/        - config, infra, app, ingress layers
  kube/overlays/    - example overlay users copy & customize
  kube/deploy.sh    - one-liner deploy script

Key design decisions:
- Path-based routing (/_accounts, /_transactor, etc.) matching compose.yml
- Elasticsearch 7.14.2 (not OpenSearch) - Huly's elasticsearch-js rejects
  non-ES backends
- Explicit env vars on backend services (no bulk envFrom leaking external URLs)
- Init containers for startup ordering (busybox wait loops)
- Readiness probes on all services (TCP for WS/POST-only, HTTP for REST)
- Imperative secret creation (no secret YAML in repo)
- huly.example placeholder domain - users must customize via overlay

Tested on K3s with v0.7.382. Renders 34 resources:
12 Deployments, 11 Services, 6 Ingresses, 4 PVCs, 1 ConfigMap.

Closes hcengineering#181
Addresses hcengineering#20
Supersedes hcengineering#215

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

k8s files to support latest version of Huly

3 participants