https://github.com/giraffacorp/k8s_apptemplate
argocd app of apps template repo
https://github.com/giraffacorp/k8s_apptemplate
argocd devops gitops kubernetes
Last synced: 6 months ago
JSON representation
argocd app of apps template repo
- Host: GitHub
- URL: https://github.com/giraffacorp/k8s_apptemplate
- Owner: giraffacorp
- Created: 2025-05-25T12:06:50.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-07-22T23:14:14.000Z (6 months ago)
- Last Synced: 2025-07-23T01:11:36.725Z (6 months ago)
- Topics: argocd, devops, gitops, kubernetes
- Language: Shell
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Kubernetes Application Template Repository
This repository serves as a template for deploying applications to Kubernetes clusters using ArgoCD's "App of Apps" pattern. It provides a structured, maintainable approach to managing Kubernetes applications with built-in support for secrets management via SOPS, automated dependency updates with Renovate, and streamlined workflows through Taskfile.
## Components Overview
- **app1**: description
- **app2**: description
## Repository Structure
```
├── .taskfiles/ # Custom Taskfile scripts modules
├── apps/ # Core application configurations
├── argocd/ # ArgoCD definitions
│ ├── app-of-apps.yaml
│ └── applications/
├── .envrc # Direnv environment variables
├── .gitattributes # Git attributes configuration
├── .gitignore # Git ignore rules
├── .pre-commit-config.yaml # Pre-commit hooks configuration
├── .sops.yaml # SOPS encryption configuration
├── gitleaks.toml # Gitleaks secret scanning configuration
├── renovate.json # Renovate dependency management
├── taskfile.yaml # Task runner definitions
└── yamlfmt.yaml # YAML formatting configuration
```
## Prerequisites
- [Task](https://taskfile.dev/) - Task runner tool
- [direnv](https://direnv.net/) - Environment variable management
- [SOPS](https://github.com/mozilla/sops) - Secret management
- [age](https://github.com/FiloSottile/age) - Encryption tool
- [uv](https://docs.astral.sh/uv/) - Python package management
## Usage Instructions
### 1. Initial Setup
Clone this repository and run the setup task to prepare your development environment:
```bash
git clone
cd
task setup
```
This will:
- Configure direnv for environment variables
- Install pre-commit hooks for code quality
- Set up SOPS differ for secure Git diff operations
### 2. SOPS Secret Management Setup
Generate an Age key for encrypting secrets:
```bash
# If $SOPS_AGE_KEY_FILE is exported trough direnv, set it first
age-keygen -o $SOPS_AGE_KEY_FILE
```
Copy the public key from the output and add it to `.sops.yaml` under the `age:` receivers:
```yaml
age:
- age1haxzj5xhxtpag457wwykd4alk7x0cfdzc0gcfgltlvuh7zfywveqz53gjl # secrets-operator-key
- # Replace this line with your public key
```
### 3. Configure ArgoCD Integration
Update the repository URL in `argocd/app-of-apps.yaml`:
```yaml
spec:
source:
repoURL: # Replace with your Git repository URL
```
### 4. Add Your Applications
1. Add your application manifests to the `apps/` directory
1. Create ArgoCD application definitions in `argocd/applications/`