You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Define before you Build**|`devopsos scaffold cicd` / `gha` / `gitlab`| Interactive wizards capture intent before generating any config file |
65
65
|**Standardise before Scale**|`devopsos scaffold gha`, `gitlab`, `jenkins`| Golden-path templates for GitHub Actions, GitLab CI, and Jenkins — reviewed baselines every team can adopt |
66
+
|**Standardise the container runtime & Kubernetes env**|`devopsos scaffold devcontainer`| Encodes Docker/Podman choice and all Kubernetes CLI tools (kubectl, helm, kustomize, argocd_cli, flux, k9s, kind, minikube, kubeseal …) into a reproducible `devcontainer.json`|
66
67
|**Automate the Repeatable**|`devopsos scaffold argocd`| GitOps sync process encoded as an ArgoCD `Application` + `AppProject` CR |
67
68
|**Automate the Repeatable**|`devopsos scaffold devcontainer`| Developer environment setup encoded as `devcontainer.json` — reproducible for every team member |
68
69
|**Observe and Iterate**|`devopsos scaffold sre`| Prometheus alert rules, Grafana dashboards, and SLO manifests — close the measure-improve feedback loop |
@@ -128,11 +129,33 @@ stream **before** selecting or configuring any tool.
128
129
129
130
| Best Practice | Why it matters |
130
131
|---------------|----------------|
131
-
| Define build standards before choosing tools (Docker, Gradle, Maven, Make) | Prevents tool sprawl and ensures consistent outputs |
132
-
| Standardise base images and dependency management across all teams| Reduces "works on my machine" issues |
133
-
| Enforce reproducible builds with version-pinned dependencies| Makes builds auditable and roll-backable |
132
+
| Define build standards before choosing tools (Gradle, Maven, Make) | Prevents tool sprawl and ensures consistent outputs |
133
+
| Standardise dependency management and enforce version-pinned builds| Reduces "works on my machine" issues |
134
+
| Enforce reproducible builds across all teams and environments| Makes builds auditable and roll-backable |
134
135
| Use an artifact repository (Nexus) to cache, version, and audit build outputs | Provides a single source of truth for artifacts |
135
136
137
+
### 🐳 Containerization
138
+
139
+
| Best Practice | Why it matters |
140
+
|---------------|----------------|
141
+
| Choose and document your container runtime (Docker or Podman) before writing the first Dockerfile | Consistency prevents environment drift across teams |
142
+
| Standardise base images: use pinned, minimal images (distroless or Alpine) updated on a schedule | Reduces attack surface and image size |
143
+
| Define a container image naming and tagging convention (`<registry>/<org>/<service>:<gitsha>`) | Makes every image traceable back to its source commit |
144
+
| Scan every image for vulnerabilities in the CI build stage before pushing to a registry | Prevents known CVEs from reaching any environment |
145
+
| Use multi-stage Dockerfiles to keep production images free of build-time dependencies | Smaller images, faster pulls, smaller attack surface |
146
+
| Use `devopsos scaffold devcontainer` to standardise the container runtime for every team member | Every engineer starts from the same reproducible baseline |
147
+
148
+
### ☸️ Kubernetes
149
+
150
+
| Best Practice | Why it matters |
151
+
|---------------|----------------|
152
+
| Define cluster topology and namespace strategy before deploying any workload | Avoids namespace sprawl and permission confusion |
153
+
| Use a local cluster (kind or minikube) for development so every engineer can reproduce production-like conditions locally | Reduces "it works on staging but not prod" surprises |
154
+
| Manage all manifests through version-controlled Kustomize overlays or Helm charts | No kubectl apply from developer laptops in production |
155
+
| Use GitOps (ArgoCD or Flux) as the single deployment path — direct production kubectl changes are prohibited | Every change is auditable, reviewable, and reversible |
156
+
| Manage Kubernetes secrets with Sealed Secrets (Kubeseal) | Encrypted secrets can be safely stored in Git |
157
+
| Use k9s or Lens for day-two operations and cluster observability | Consistent tooling reduces operator error |
0 commit comments