baseimage-gui creates the app user (UID 1000) at runtime with
shell=/sbin/nologin and home=/dev/null. VSCode tries to spawn the
user's login shell for terminals, which fails with exit code 1.
Adds a cont-init script that runs as root after baseimage-gui's
adduser step and corrects both the shell and home directory.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
The npm package installs a binary named 'happy', not 'happy-coder'.
Use 'happy daemon start' to run it as a background service.
Also create $HOME on the PVC if it doesn't exist yet, which was
causing git config failures on fresh volumes.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Introduces chart/ with deployment, service, and PVC templates driven
by Helm values instead of Kustomize variable substitution. Removes
the flux/ directory which is superseded by the chart.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Change hostname from antigravity.dev.farh.net to antigravity.farh.net
to match the gateway's *.farh.net listener
- Set SECURE_CONNECTION=0 since TLS is terminated at the gateway,
avoiding the redirect loop caused by the app doing its own HTTP->HTTPS redirect
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Fix chown/sudo to use numeric UID/GID instead of hardcoded 'claude'
username (baseimage-gui creates users dynamically, name not available
at script runtime)
- Fix image name: ghcr.io/cpfarhood/devcontainer (matches github.repository)
- Fix ConfigMap name: antigravity-config -> antigravity (matches statefulset refs)
- Set github-repo in ConfigMap to headlamp-polaris-plugin
- Set HTTPRoute to external gateway at antigravity.dev.farh.net
- Add CLAUDE.md for Claude Code guidance
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Changed from incorrect `@happy-sdk/happy-coder` to correct `happy-coder`
package name. The scoped package doesn't exist on npm, causing Docker
build failures.
This fixes the v1.0.0 release Docker build.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Changed SHA tag prefix from `{{branch}}-` to `sha-` to fix build
failures when creating releases from tags. The `{{branch}}` variable
is empty when building from tags (e.g., v1.0.0), which resulted in
invalid Docker tags like `:-7bdde95` instead of `sha-7bdde95`.
This fixes the v1.0.0 release build failure.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Add comprehensive release management documentation and changelog.
New files:
- .github/workflows/tag-release.md: Complete release process guide
- Semantic versioning guidelines
- 3 methods for creating releases (CLI, git, web UI)
- Version bump guidelines (major/minor/patch)
- Pre-release support (alpha/beta/rc)
- Release checklist
- Docker image tagging strategy
- Example workflows
- CHANGELOG.md: Changelog following Keep a Changelog format
- Unreleased section with all current features
- Template for future releases
- Adheres to Semantic Versioning
Release Process:
1. Create annotated git tag (e.g., v1.0.0)
2. Push tag to GitHub
3. GitHub Actions automatically:
- Builds Docker image
- Pushes with multiple tags (v1.0.0, 1.0, 1, latest)
- Creates GitHub release with notes
Ready for v1.0.0 release!
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Add detailed documentation to enable autonomous deployment by other AI agents.
New files:
- DEPLOYMENT.md: Complete step-by-step deployment guide
- Prerequisites checklist
- Required vs optional variables clearly marked
- All configuration variables documented with examples
- Troubleshooting section
- Quick deploy example with all values
- Configuration summary table
- VARIABLES.md: Complete variables reference
- All variables listed with file, line, type, description
- Required variables clearly marked
- Optional variables with defaults
- Variables grouped by use case
- Quick copy templates
- Environment variables reference
Updated README.md:
- Add links to new documentation files
- Clear pointer to DEPLOYMENT.md for deployment
These docs enable another Claude Code instance to:
1. Identify all required configuration variables
2. Know where to find/set each variable
3. Understand what values are valid
4. Deploy successfully without human intervention
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Switch from Ingress to HTTPRoute for Gateway API compatibility.
Changes:
- Remove k8s/ingress.yaml
- Add k8s/httproute.yaml with Gateway API configuration
- Update kustomization.yaml to reference httproute.yaml
- Update README.md references from Ingress to HTTPRoute
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Add containerized GUI development environment featuring:
- Antigravity IDE (VSCode) accessible via web browser
- Happy Coder AI assistant integration
- Automatic GitHub repository cloning on startup
- Persistent user home directory (ReadWriteMany PVC)
- Secure non-root execution as user claude (UID 1000)
Components:
- Dockerfile based on jlesage/baseimage-gui
- Startup scripts for repo initialization and app launch
- Kubernetes manifests (StatefulSet, ConfigMap, Secrets)
- Makefile for build and deployment automation
- Comprehensive documentation
Features:
- Web-based VNC interface (port 5800)
- GitHub token authentication for private repos
- Happy Coder runs as background service in workspace
- CephFS storage for persistent home directory
- Configurable display resolution and security
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>