Update Gitea Actions runner to use catthehacker/ubuntu images which
are specifically designed for GitHub Actions/Gitea Actions and include
Docker CLI and common tools pre-installed.
Changes:
- Replace node:20-bullseye labels with catthehacker/ubuntu:act-latest
- Add ubuntu-22.04 label pointing to act-22.04 image
- Configure DOCKER_* environment variables to be passed to jobs
These images are the standard for act (local GitHub Actions runner)
and Gitea Actions, providing better compatibility with workflows
that need Docker access.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add detailed documentation for using Gitea's built-in container
registry with Gitea Actions for automated Docker image builds.
New documentation:
- GITEA_CONTAINER_REGISTRY.md: Complete guide covering:
- Enabling and configuring container registry
- Authentication for Docker CLI and CI/CD
- Automated builds with Gitea Actions workflows
- Using registry images in Kubernetes deployments
- FluxCD integration with Gitea registry
- Troubleshooting common issues
- Best practices for tagging and security
Updates to CLAUDE.md:
- Added reference to GITEA_CONTAINER_REGISTRY.md in repo structure
- Added Container Registry section to Gitea deployment docs
- Included quick reference for registry login and usage
This enables complete GitOps CI/CD pipelines with Gitea similar
to GitLab Container Registry functionality.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add script to cleanly remove and redeploy GitLab:
redeploy-gitlab.sh:
- Deletes existing GitLab deployment and resources
- Removes associated PVCs and data
- Reapplies GitLab manifests from scratch
- Useful for recovering from misconfiguration
- Displays new root password after deployment
Note: Repository now uses Gitea instead of GitLab, but this
script remains for reference or alternative deployments.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add helper scripts for storage management:
install-local-path-storage.sh:
- Installs Rancher local-path-provisioner
- Sets it as default storage class
- Useful for local testing and single-node scenarios
- Alternative to NFS for simpler setups
diagnose-storage.sh:
- Diagnoses storage-related issues
- Checks for provisioner installation
- Lists storage classes and PVC status
- Identifies pods stuck due to storage problems
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add APP_DEPLOYMENT.md with step-by-step guide for deploying applications
to the Talos Kubernetes cluster.
Covers:
- Directory structure and GitOps organization
- Creating namespaces and deployments
- Configuring services and ingress
- Storage with PersistentVolumeClaims
- Using Kustomize for manifest management
- Examples for common application types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add CLAUDE.md with comprehensive guidance for Claude Code when working
with this Talos Kubernetes cluster repository.
Includes:
- Development environment setup (Nix shell)
- Cluster bootstrap procedures
- Storage provisioner installation
- Common commands for Talos and Kubernetes
- GitLab and Gitea deployment instructions
- Troubleshooting guides
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Deploy MetalLB v0.14.9 for bare-metal load balancing with L2 mode.
Configuration:
- IP address pool: 10.0.1.10-10.0.1.20
- L2 advertisement on ens18, eth0, enp* interfaces
- Runs on all control plane nodes with automatic failover
- Enables LoadBalancer service type support
This allows each service to have its own dedicated IP address
instead of using NodePort with random high ports.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Configure nfs-subdir-external-provisioner for persistent storage
backed by NFS server at 10.0.0.57:/mnt/NAS/vmstorage.
Features:
- Dynamic provisioning of PersistentVolumes
- Set as default storage class
- Supports ReadWriteMany access mode
- Prepares cluster for diskless PXE boot nodes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove node.kubernetes.io/exclude-from-external-load-balancers label
from control plane nodes to allow MetalLB speakers to announce
LoadBalancer IPs on all nodes. This enables proper L2 advertisement
and automatic failover for services.
Changed:
- Commented out nodeLabels section in all three controlplane configs
- Applied to nodes 10.0.1.3, 10.0.1.4, and 10.0.1.5
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>