3.6 KiB
3.6 KiB
Gitea Configuration for Bakery-IA CI/CD
This directory contains the Helm values and scripts for setting up Gitea as the Git server for the Bakery-IA project.
Features
- Automatic Repository Creation: When Gitea is installed via Helm, it automatically creates a
bakery-iarepository owned by the admin user. - Pre-configured Settings: The repository comes with issues, wiki, pull requests, and projects enabled.
- Easy Setup Script: A script to push your existing code to the new Gitea repository.
Installation
1. Install Gitea with Helm
# Add Gitea Helm repository
helm repo add gitea https://dl.gitea.io/charts
helm repo update
# Create namespace
kubectl create namespace gitea
# Install Gitea with automatic repository creation
helm install gitea gitea/gitea -n gitea \
-f infrastructure/cicd/gitea/values.yaml \
--set gitea.admin.password=your-secure-password
2. Wait for Gitea to be ready
kubectl wait --for=condition=ready pod -n gitea -l app.kubernetes.io/name=gitea --timeout=300s
3. Push your code to the new repository
# Set the admin password as environment variable
export GITEA_ADMIN_PASSWORD="your-secure-password"
# Run the setup script
./infrastructure/cicd/gitea/setup-gitea-repository.sh
Configuration Details
Automatic Repository Creation
The values.yaml file includes the following configuration to automatically create the bakery-ia repository:
gitea:
initialRepositories:
- name: bakery-ia
description: "Main repository for Bakery IA project - Automatically created by Helm"
private: false
auto_init: true
default_branch: main
owner: "{{ .Values.gitea.admin.username }}"
enable_issues: true
enable_wiki: true
enable_pull_requests: true
enable_projects: true
Repository Features
The automatically created repository includes:
- Issues: For tracking bugs and feature requests
- Wiki: For project documentation
- Pull Requests: For code review workflow
- Projects: For project management
- Auto Initialization: Creates an initial README.md file
CI/CD Integration
Once the repository is created and your code is pushed, you can configure your CI/CD pipelines to use this repository. The repository URL will be:
https://gitea.bakery-ia.local/bakery-admin/bakery-ia.git
Example Tekton Pipeline Configuration
# In your Tekton PipelineRun or Task
spec:
params:
- name: git-url
value: "https://gitea.bakery-ia.local/bakery-admin/bakery-ia.git"
- name: git-revision
value: "main"
Troubleshooting
Repository not created
If the repository is not automatically created:
- Check Gitea logs:
kubectl logs -n gitea -l app.kubernetes.io/name=gitea - Verify the Helm values were applied correctly
- Manually create the repository using the setup script
Authentication issues
If you have authentication problems when pushing:
- Verify the admin password is correct
- Check that the Gitea service is accessible
- Ensure your kubeconfig has access to the Gitea namespace
Security Notes
- Always use a strong password for the Gitea admin user
- Consider using Kubernetes secrets for sensitive data
- The setup script uses basic authentication - for production, consider using SSH keys or tokens
Upgrading
To upgrade Gitea while preserving your repositories:
helm upgrade gitea gitea/gitea -n gitea \
-f infrastructure/cicd/gitea/values.yaml \
--set gitea.admin.password=your-secure-password
The existing repositories and their contents will be preserved during upgrades.