39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# k3s-manifests
|
|
|
|
Desired-state repo for the k3s cluster. **ArgoCD watches this repo and makes the
|
|
cluster match it.** You deploy by committing here; you roll back with `git revert`.
|
|
Do not `kubectl apply` these by hand — let ArgoCD own them.
|
|
|
|
## Structure
|
|
|
|
```
|
|
apps/ # app-of-apps: one ArgoCD Application per service/env
|
|
gitops-demo.yaml # -> points at gitops-demo/dev
|
|
gitops-demo/ # a service
|
|
dev/ # its dev environment (plain k8s YAML)
|
|
deployment.yaml
|
|
service.yaml
|
|
ingress.yaml
|
|
```
|
|
|
|
Environment is a folder (`dev`, later `prod`). The manifests are **plain YAML on
|
|
purpose** for now — Phase 4 replaces the per-env duplication with a generic Helm
|
|
chart. One new concept per phase.
|
|
|
|
## One-time setup when you first push this
|
|
|
|
The child Application in `apps/gitops-demo.yaml` has a placeholder repo URL.
|
|
Replace it with this repo's real HTTPS URL before (or right after) the first push:
|
|
|
|
```
|
|
# from the repo root, replace the placeholder in every apps/*.yaml:
|
|
sed -i 's#REPLACE_WITH_MANIFEST_REPO_URL#https://gitea.lgkentang.com/you/k3s-manifests.git#' apps/*.yaml
|
|
git add -A && git commit -m "point apps at real repo url" && git push
|
|
```
|
|
|
|
## Onboarding a new service later
|
|
|
|
1. Add `myservice/dev/` manifests (deployment, service, ingress).
|
|
2. Add `apps/myservice.yaml` (copy `gitops-demo.yaml`, change name + path).
|
|
3. Commit + push. ArgoCD's root app picks it up — no cluster access needed.
|