Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergk/appset-addons
Argo CD ApplicationSet Blueprint
https://github.com/sergk/appset-addons
applicationset apps argo argocd cicd deploy gitops helm
Last synced: 13 days ago
JSON representation
Argo CD ApplicationSet Blueprint
- Host: GitHub
- URL: https://github.com/sergk/appset-addons
- Owner: SergK
- License: apache-2.0
- Created: 2024-03-09T15:40:33.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-24T12:31:31.000Z (9 months ago)
- Last Synced: 2024-10-10T14:16:45.015Z (2 months ago)
- Topics: applicationset, apps, argo, argocd, cicd, deploy, gitops, helm
- Homepage:
- Size: 109 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ApplicationSet Addons
## Overview
Let's apply Apps of Apps pattern using Argo ApplicationSet.
## Prerequisites
- Kubernetes cluster
```bash
kind create cluster --config kind-1.29.yaml
```- ArgoCD installed
```bash
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```## Repository structure
Here's a brief description of the main directories and files:
`applications/`: This directory contains the main Helm chart for App of Apps Pattern (v1 approach). The `Chart.yaml` file describes the chart and its version, and the `values.yaml` file specifies configuration values for the chart. The `templates/` subdirectory contains template files that represents Argo Applications.
`bootstrap/`: This directory contains YAML files that are used to bootstrap ApplicationSets (v2 approach). Together with `bootstrap.yaml` file, these files are used to provision ApplicationSets.
`charts/`: This directory contains Helm charts for various add-ons or dependencies. Each subdirectory (like addons/, capsule-system/, ingress-nginx/, etc.) represents a different add-on, and contains its own Chart.yaml and values.yaml files.
`clusters/`: This directory contains configuration specific to different Kubernetes clusters where application might be deployed. The dev/, in-cluster/, and prod/ subdirectories correspond to different environments (development, production, etc.). You can use this directory to override values based on the add-ons+environment combination.
`kind-1.29.yaml`: This file is a configuration file for running a local Kubernetes cluster using Kind.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: addons
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- directory:
repoURL: https://github.com/sergk/appset-addons
revision: HEAD
directories:
- path: '*/*/*'
template:
metadata:
name: '{{index .path.segments 0}}-{{path.basename}}'
spec:
project: default
source:
repoURL: https://github.com/sergk/appset-addons
targetRevision: HEAD
path: '{{path}}'
destination:
name: '{{index .path.segments 0}}'
namespace: '{{path.basename}}'
```