Simplify GitOps to test with just core files first
This commit is contained in:
parent
faa488f7a8
commit
ccbb55cada
2 changed files with 64 additions and 10 deletions
63
DEPLOYMENT.md
Normal file
63
DEPLOYMENT.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Deployment Guide
|
||||||
|
|
||||||
|
## Crossplane Resource Management
|
||||||
|
|
||||||
|
### ✅ Correct Approach - Declarative Updates
|
||||||
|
|
||||||
|
Always use `kubectl apply` for Crossplane Objects:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Make changes to YAML files
|
||||||
|
kubectl apply -f filename.yaml
|
||||||
|
|
||||||
|
# For directory updates
|
||||||
|
kubectl apply -f .
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
- Update existing Objects (shows "configured")
|
||||||
|
- Create new Objects (shows "created")
|
||||||
|
- Leave unchanged Objects (shows "unchanged")
|
||||||
|
- Maintain resource state and ownership
|
||||||
|
|
||||||
|
### ❌ Avoid - Delete/Recreate Pattern
|
||||||
|
|
||||||
|
Don't use delete/apply cycles unless absolutely necessary:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# This is generally wrong for routine updates
|
||||||
|
kubectl delete -f filename.yaml
|
||||||
|
kubectl apply -f filename.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Only use delete/recreate for:
|
||||||
|
- Schema changes that require recreation
|
||||||
|
- Fixing stuck resources
|
||||||
|
- Resource type changes
|
||||||
|
|
||||||
|
### Verification Steps
|
||||||
|
|
||||||
|
After applying changes:
|
||||||
|
|
||||||
|
1. Check Crossplane Object status:
|
||||||
|
```bash
|
||||||
|
kubectl get objects.kubernetes.crossplane.io -A
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Verify managed resources:
|
||||||
|
```bash
|
||||||
|
kubectl get <resource-type> -n <namespace>
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Check Object details if issues:
|
||||||
|
```bash
|
||||||
|
kubectl describe object <name> -n crossplane-system
|
||||||
|
```
|
||||||
|
|
||||||
|
### GitOps Compatibility
|
||||||
|
|
||||||
|
This declarative approach ensures:
|
||||||
|
- Flux/ArgoCD can manage resources properly
|
||||||
|
- No unexpected deletions
|
||||||
|
- Proper drift detection
|
||||||
|
- Safe rollbacks
|
||||||
|
|
@ -2,18 +2,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
# Core infrastructure - individual files to avoid conflicts
|
# Start with just core files for GitOps testing
|
||||||
- forgejo-k8s.yaml
|
- forgejo-k8s.yaml
|
||||||
- pomerium.yaml
|
- pomerium.yaml
|
||||||
- providers.yaml
|
|
||||||
- provider-configs.yaml
|
|
||||||
- external-dns.yaml
|
|
||||||
|
|
||||||
# Directories with their own kustomizations
|
|
||||||
- auth/
|
|
||||||
- cert-manager/
|
|
||||||
- dns/
|
|
||||||
- emissary/
|
|
||||||
|
|
||||||
# Exclude problematic directories:
|
# Exclude problematic directories:
|
||||||
# - flux/ (managed by Flux itself)
|
# - flux/ (managed by Flux itself)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue