container-superposition 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +843 -0
- package/dist/scripts/init.d.ts +3 -0
- package/dist/scripts/init.d.ts.map +1 -0
- package/dist/scripts/init.js +1190 -0
- package/dist/scripts/init.js.map +1 -0
- package/dist/scripts/migrate-to-manifests.d.ts +12 -0
- package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
- package/dist/scripts/migrate-to-manifests.js +230 -0
- package/dist/scripts/migrate-to-manifests.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -0
- package/dist/tool/questionnaire/composer.d.ts.map +1 -0
- package/dist/tool/questionnaire/composer.js +1232 -0
- package/dist/tool/questionnaire/composer.js.map +1 -0
- package/dist/tool/readme/markdown-parser.d.ts +30 -0
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
- package/dist/tool/readme/markdown-parser.js +139 -0
- package/dist/tool/readme/markdown-parser.js.map +1 -0
- package/dist/tool/readme/readme-generator.d.ts +9 -0
- package/dist/tool/readme/readme-generator.d.ts.map +1 -0
- package/dist/tool/readme/readme-generator.js +422 -0
- package/dist/tool/readme/readme-generator.js.map +1 -0
- package/dist/tool/schema/custom-loader.d.ts +17 -0
- package/dist/tool/schema/custom-loader.d.ts.map +1 -0
- package/dist/tool/schema/custom-loader.js +149 -0
- package/dist/tool/schema/custom-loader.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +47 -0
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
- package/dist/tool/schema/overlay-loader.js +252 -0
- package/dist/tool/schema/overlay-loader.js.map +1 -0
- package/dist/tool/schema/types.d.ts +212 -0
- package/dist/tool/schema/types.d.ts.map +1 -0
- package/dist/tool/schema/types.js +5 -0
- package/dist/tool/schema/types.js.map +1 -0
- package/docs/README.md +308 -0
- package/docs/architecture.md +233 -0
- package/docs/creating-overlays.md +549 -0
- package/docs/custom-patches.md +540 -0
- package/docs/dependencies.md +279 -0
- package/docs/examples/custom-patches-example.md +85 -0
- package/docs/examples.md +576 -0
- package/docs/messaging-comparison.md +265 -0
- package/docs/messaging-quick-start.md +385 -0
- package/docs/observability-workflow.md +537 -0
- package/docs/overlay-manifest-refactoring.md +214 -0
- package/docs/overlay-metadata-archive.md +54 -0
- package/docs/overlays.md +523 -0
- package/docs/presets-architecture.md +498 -0
- package/docs/presets.md +366 -0
- package/docs/publishing.md +476 -0
- package/docs/quick-reference.md +326 -0
- package/docs/ux.md +170 -0
- package/features/README.md +85 -0
- package/features/cross-distro-packages/README.md +146 -0
- package/features/cross-distro-packages/devcontainer-feature.json +20 -0
- package/features/cross-distro-packages/install.sh +58 -0
- package/features/local-secrets-manager/devcontainer-feature.json +18 -0
- package/features/local-secrets-manager/install.sh +127 -0
- package/features/project-scaffolder/devcontainer-feature.json +24 -0
- package/features/project-scaffolder/install.sh +100 -0
- package/features/team-conventions/devcontainer-feature.json +24 -0
- package/features/team-conventions/install.sh +93 -0
- package/overlays/.registry/README.md +14 -0
- package/overlays/.registry/base-images.yml +26 -0
- package/overlays/.registry/base-templates.yml +7 -0
- package/overlays/README.md +155 -0
- package/overlays/alertmanager/.env.example +5 -0
- package/overlays/alertmanager/README.md +465 -0
- package/overlays/alertmanager/alert-rules.yml +56 -0
- package/overlays/alertmanager/alertmanager.yml +42 -0
- package/overlays/alertmanager/devcontainer.patch.json +12 -0
- package/overlays/alertmanager/docker-compose.yml +20 -0
- package/overlays/alertmanager/overlay.yml +17 -0
- package/overlays/alertmanager/setup.sh +53 -0
- package/overlays/alertmanager/verify.sh +31 -0
- package/overlays/aws-cli/README.md +473 -0
- package/overlays/aws-cli/devcontainer.patch.json +13 -0
- package/overlays/aws-cli/overlay.yml +13 -0
- package/overlays/azure-cli/README.md +551 -0
- package/overlays/azure-cli/devcontainer.patch.json +8 -0
- package/overlays/azure-cli/overlay.yml +13 -0
- package/overlays/bun/README.md +312 -0
- package/overlays/bun/devcontainer.patch.json +41 -0
- package/overlays/bun/overlay.yml +16 -0
- package/overlays/bun/setup.sh +79 -0
- package/overlays/bun/verify.sh +30 -0
- package/overlays/codex/README.md +128 -0
- package/overlays/codex/devcontainer.patch.json +3 -0
- package/overlays/codex/overlay.yml +14 -0
- package/overlays/codex/setup.sh +24 -0
- package/overlays/codex/verify.sh +30 -0
- package/overlays/commitlint/README.md +333 -0
- package/overlays/commitlint/devcontainer.patch.json +8 -0
- package/overlays/commitlint/overlay.yml +16 -0
- package/overlays/commitlint/setup.sh +234 -0
- package/overlays/direnv/README.md +504 -0
- package/overlays/direnv/devcontainer.patch.json +6 -0
- package/overlays/direnv/overlay.yml +13 -0
- package/overlays/direnv/setup.sh +139 -0
- package/overlays/docker-in-docker/README.md +534 -0
- package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
- package/overlays/docker-in-docker/overlay.yml +13 -0
- package/overlays/docker-sock/README.md +256 -0
- package/overlays/docker-sock/devcontainer.patch.json +9 -0
- package/overlays/docker-sock/docker-compose.yml +8 -0
- package/overlays/docker-sock/overlay.yml +13 -0
- package/overlays/dotnet/README.md +147 -0
- package/overlays/dotnet/devcontainer.patch.json +51 -0
- package/overlays/dotnet/global-tools.txt +24 -0
- package/overlays/dotnet/overlay.yml +13 -0
- package/overlays/dotnet/setup.sh +51 -0
- package/overlays/dotnet/verify.sh +26 -0
- package/overlays/gcloud/README.md +269 -0
- package/overlays/gcloud/devcontainer.patch.json +14 -0
- package/overlays/gcloud/overlay.yml +14 -0
- package/overlays/gcloud/verify.sh +52 -0
- package/overlays/git-helpers/README.md +168 -0
- package/overlays/git-helpers/devcontainer.patch.json +33 -0
- package/overlays/git-helpers/overlay.yml +15 -0
- package/overlays/git-helpers/setup.sh +91 -0
- package/overlays/go/README.md +293 -0
- package/overlays/go/devcontainer.patch.json +43 -0
- package/overlays/go/overlay.yml +15 -0
- package/overlays/go/setup.sh +33 -0
- package/overlays/go/verify.sh +40 -0
- package/overlays/grafana/.env.example +9 -0
- package/overlays/grafana/README.md +462 -0
- package/overlays/grafana/dashboard-provider.yml +11 -0
- package/overlays/grafana/dashboards/observability-overview.json +263 -0
- package/overlays/grafana/devcontainer.patch.json +12 -0
- package/overlays/grafana/docker-compose.yml +27 -0
- package/overlays/grafana/grafana-datasources.yml +57 -0
- package/overlays/grafana/overlay.yml +21 -0
- package/overlays/grafana/verify.sh +34 -0
- package/overlays/jaeger/.env.example +7 -0
- package/overlays/jaeger/README.md +867 -0
- package/overlays/jaeger/devcontainer.patch.json +12 -0
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +19 -0
- package/overlays/java/README.md +267 -0
- package/overlays/java/devcontainer.patch.json +44 -0
- package/overlays/java/overlay.yml +16 -0
- package/overlays/java/setup.sh +41 -0
- package/overlays/java/verify.sh +42 -0
- package/overlays/just/README.md +443 -0
- package/overlays/just/devcontainer.patch.json +3 -0
- package/overlays/just/overlay.yml +13 -0
- package/overlays/just/setup.sh +182 -0
- package/overlays/kubectl-helm/README.md +660 -0
- package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
- package/overlays/kubectl-helm/overlay.yml +13 -0
- package/overlays/loki/.env.example +5 -0
- package/overlays/loki/README.md +1156 -0
- package/overlays/loki/devcontainer.patch.json +12 -0
- package/overlays/loki/docker-compose.yml +18 -0
- package/overlays/loki/loki-config.yaml +45 -0
- package/overlays/loki/overlay.yml +17 -0
- package/overlays/minio/.env.example +9 -0
- package/overlays/minio/README.md +639 -0
- package/overlays/minio/devcontainer.patch.json +30 -0
- package/overlays/minio/docker-compose.yml +28 -0
- package/overlays/minio/overlay.yml +18 -0
- package/overlays/minio/setup.sh +61 -0
- package/overlays/minio/verify.sh +64 -0
- package/overlays/mkdocs/README.md +309 -0
- package/overlays/mkdocs/devcontainer.patch.json +24 -0
- package/overlays/mkdocs/overlay.yml +15 -0
- package/overlays/modern-cli-tools/README.md +556 -0
- package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
- package/overlays/modern-cli-tools/overlay.yml +13 -0
- package/overlays/modern-cli-tools/setup.sh +153 -0
- package/overlays/mongodb/.env.example +9 -0
- package/overlays/mongodb/README.md +481 -0
- package/overlays/mongodb/devcontainer.patch.json +32 -0
- package/overlays/mongodb/docker-compose.yml +44 -0
- package/overlays/mongodb/overlay.yml +17 -0
- package/overlays/mongodb/verify.sh +48 -0
- package/overlays/mysql/.env.example +11 -0
- package/overlays/mysql/README.md +542 -0
- package/overlays/mysql/devcontainer.patch.json +34 -0
- package/overlays/mysql/docker-compose.yml +55 -0
- package/overlays/mysql/overlay.yml +16 -0
- package/overlays/mysql/verify.sh +48 -0
- package/overlays/nats/.env.example +5 -0
- package/overlays/nats/README.md +762 -0
- package/overlays/nats/devcontainer.patch.json +24 -0
- package/overlays/nats/docker-compose.yml +31 -0
- package/overlays/nats/overlay.yml +18 -0
- package/overlays/nats/verify.sh +50 -0
- package/overlays/ngrok/README.md +503 -0
- package/overlays/ngrok/devcontainer.patch.json +3 -0
- package/overlays/ngrok/overlay.yml +14 -0
- package/overlays/ngrok/setup.sh +125 -0
- package/overlays/nodejs/README.md +192 -0
- package/overlays/nodejs/devcontainer.patch.json +49 -0
- package/overlays/nodejs/global-packages.txt +16 -0
- package/overlays/nodejs/overlay.yml +14 -0
- package/overlays/nodejs/setup.sh +46 -0
- package/overlays/nodejs/verify.sh +32 -0
- package/overlays/otel-collector/.env.example +9 -0
- package/overlays/otel-collector/README.md +1257 -0
- package/overlays/otel-collector/devcontainer.patch.json +28 -0
- package/overlays/otel-collector/docker-compose.yml +22 -0
- package/overlays/otel-collector/otel-collector-config.yaml +68 -0
- package/overlays/otel-collector/overlay.yml +21 -0
- package/overlays/otel-collector/setup.sh +49 -0
- package/overlays/otel-demo-nodejs/.env.example +2 -0
- package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
- package/overlays/otel-demo-nodejs/README.md +409 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
- package/overlays/otel-demo-nodejs/overlay.yml +23 -0
- package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
- package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
- package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
- package/overlays/otel-demo-nodejs/verify.sh +31 -0
- package/overlays/otel-demo-python/.env.example +2 -0
- package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
- package/overlays/otel-demo-python/README.md +82 -0
- package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
- package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-python/docker-compose.yml +19 -0
- package/overlays/otel-demo-python/overlay.yml +23 -0
- package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
- package/overlays/otel-demo-python/verify.sh +31 -0
- package/overlays/playwright/README.md +629 -0
- package/overlays/playwright/devcontainer.patch.json +9 -0
- package/overlays/playwright/overlay.yml +13 -0
- package/overlays/postgres/.env.example +6 -0
- package/overlays/postgres/README.md +602 -0
- package/overlays/postgres/devcontainer.patch.json +21 -0
- package/overlays/postgres/docker-compose.yml +22 -0
- package/overlays/postgres/overlay.yml +15 -0
- package/overlays/postgres/verify.sh +45 -0
- package/overlays/powershell/README.md +314 -0
- package/overlays/powershell/devcontainer.patch.json +22 -0
- package/overlays/powershell/overlay.yml +13 -0
- package/overlays/powershell/setup.sh +29 -0
- package/overlays/powershell/verify.sh +38 -0
- package/overlays/pre-commit/README.md +263 -0
- package/overlays/pre-commit/devcontainer.patch.json +9 -0
- package/overlays/pre-commit/overlay.yml +16 -0
- package/overlays/pre-commit/setup.sh +129 -0
- package/overlays/presets/docs-site.yml +118 -0
- package/overlays/presets/fullstack.yml +181 -0
- package/overlays/presets/microservice.yml +118 -0
- package/overlays/presets/web-api.yml +109 -0
- package/overlays/prometheus/.env.example +5 -0
- package/overlays/prometheus/README.md +1246 -0
- package/overlays/prometheus/devcontainer.patch.json +12 -0
- package/overlays/prometheus/docker-compose.yml +22 -0
- package/overlays/prometheus/overlay.yml +17 -0
- package/overlays/prometheus/prometheus.yml +12 -0
- package/overlays/prometheus/verify.sh +34 -0
- package/overlays/promtail/.env.example +2 -0
- package/overlays/promtail/README.md +357 -0
- package/overlays/promtail/devcontainer.patch.json +5 -0
- package/overlays/promtail/docker-compose.yml +16 -0
- package/overlays/promtail/overlay.yml +17 -0
- package/overlays/promtail/promtail-config.yaml +60 -0
- package/overlays/promtail/verify.sh +31 -0
- package/overlays/pulumi/README.md +472 -0
- package/overlays/pulumi/devcontainer.patch.json +13 -0
- package/overlays/pulumi/overlay.yml +14 -0
- package/overlays/pulumi/verify.sh +31 -0
- package/overlays/python/README.md +919 -0
- package/overlays/python/devcontainer.patch.json +41 -0
- package/overlays/python/overlay.yml +12 -0
- package/overlays/python/requirements-overlay.txt +13 -0
- package/overlays/python/setup.sh +47 -0
- package/overlays/python/verify.sh +32 -0
- package/overlays/rabbitmq/.env.example +7 -0
- package/overlays/rabbitmq/README.md +680 -0
- package/overlays/rabbitmq/devcontainer.patch.json +28 -0
- package/overlays/rabbitmq/docker-compose.yml +30 -0
- package/overlays/rabbitmq/overlay.yml +18 -0
- package/overlays/rabbitmq/verify.sh +41 -0
- package/overlays/redis/.env.example +4 -0
- package/overlays/redis/README.md +776 -0
- package/overlays/redis/devcontainer.patch.json +21 -0
- package/overlays/redis/docker-compose.yml +21 -0
- package/overlays/redis/overlay.yml +15 -0
- package/overlays/redis/verify.sh +41 -0
- package/overlays/redpanda/.env.example +10 -0
- package/overlays/redpanda/README.md +703 -0
- package/overlays/redpanda/devcontainer.patch.json +37 -0
- package/overlays/redpanda/docker-compose.yml +67 -0
- package/overlays/redpanda/overlay.yml +21 -0
- package/overlays/redpanda/verify.sh +48 -0
- package/overlays/rust/README.md +299 -0
- package/overlays/rust/devcontainer.patch.json +39 -0
- package/overlays/rust/overlay.yml +15 -0
- package/overlays/rust/setup.sh +36 -0
- package/overlays/rust/verify.sh +51 -0
- package/overlays/sqlite/README.md +584 -0
- package/overlays/sqlite/devcontainer.patch.json +14 -0
- package/overlays/sqlite/overlay.yml +15 -0
- package/overlays/sqlite/setup.sh +27 -0
- package/overlays/sqlite/verify.sh +43 -0
- package/overlays/sqlserver/.env.example +6 -0
- package/overlays/sqlserver/README.md +592 -0
- package/overlays/sqlserver/devcontainer.patch.json +22 -0
- package/overlays/sqlserver/docker-compose.yml +32 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/sqlserver/verify.sh +30 -0
- package/overlays/tempo/.env.example +5 -0
- package/overlays/tempo/README.md +273 -0
- package/overlays/tempo/devcontainer.patch.json +12 -0
- package/overlays/tempo/docker-compose.yml +20 -0
- package/overlays/tempo/overlay.yml +20 -0
- package/overlays/tempo/tempo-config.yaml +32 -0
- package/overlays/tempo/verify.sh +31 -0
- package/overlays/terraform/README.md +389 -0
- package/overlays/terraform/devcontainer.patch.json +15 -0
- package/overlays/terraform/overlay.yml +14 -0
- package/overlays/terraform/verify.sh +63 -0
- package/package.json +74 -0
- package/templates/README.md +285 -0
- package/templates/compose/.devcontainer/devcontainer.json +46 -0
- package/templates/compose/.devcontainer/docker-compose.yml +12 -0
- package/templates/compose/README.md +20 -0
- package/templates/plain/.devcontainer/devcontainer.json +35 -0
- package/templates/plain/README.md +21 -0
- package/tool/README.md +281 -0
- package/tool/schema/base-images.schema.json +43 -0
- package/tool/schema/base-templates.schema.json +34 -0
- package/tool/schema/config.schema.json +71 -0
- package/tool/schema/overlay-manifest.schema.json +86 -0
|
@@ -0,0 +1,660 @@
|
|
|
1
|
+
# kubectl + Helm Overlay
|
|
2
|
+
|
|
3
|
+
Kubernetes command-line tools for managing containerized applications and Helm package manager for Kubernetes.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **kubectl** - Kubernetes command-line interface
|
|
8
|
+
- **Helm 3** - Kubernetes package manager
|
|
9
|
+
- **Auto-completion** - Command completion for kubectl and helm
|
|
10
|
+
- **Multiple cluster support** - Switch between different Kubernetes contexts
|
|
11
|
+
- **YAML validation** - Kubernetes manifest validation
|
|
12
|
+
|
|
13
|
+
## Getting Started
|
|
14
|
+
|
|
15
|
+
### Connecting to a Cluster
|
|
16
|
+
|
|
17
|
+
Before using kubectl, you need to configure access to your Kubernetes cluster.
|
|
18
|
+
|
|
19
|
+
#### Local Clusters
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# For minikube
|
|
23
|
+
minikube start
|
|
24
|
+
kubectl config use-context minikube
|
|
25
|
+
|
|
26
|
+
# For kind (Kubernetes in Docker)
|
|
27
|
+
kind create cluster
|
|
28
|
+
kubectl config use-context kind-kind
|
|
29
|
+
|
|
30
|
+
# For Docker Desktop
|
|
31
|
+
kubectl config use-context docker-desktop
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
#### Cloud-Managed Clusters
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# AWS EKS (requires aws-cli overlay)
|
|
38
|
+
aws eks update-kubeconfig --region us-east-1 --name my-cluster
|
|
39
|
+
|
|
40
|
+
# Google GKE (requires gcloud overlay)
|
|
41
|
+
gcloud container clusters get-credentials my-cluster --zone us-central1-a
|
|
42
|
+
|
|
43
|
+
# Azure AKS (requires azure-cli overlay)
|
|
44
|
+
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
#### Manual Configuration
|
|
48
|
+
|
|
49
|
+
Add cluster to `~/.kube/config`:
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
apiVersion: v1
|
|
53
|
+
kind: Config
|
|
54
|
+
clusters:
|
|
55
|
+
- cluster:
|
|
56
|
+
certificate-authority-data: <base64-cert>
|
|
57
|
+
server: https://kubernetes.example.com:6443
|
|
58
|
+
name: my-cluster
|
|
59
|
+
contexts:
|
|
60
|
+
- context:
|
|
61
|
+
cluster: my-cluster
|
|
62
|
+
user: my-user
|
|
63
|
+
name: my-cluster-context
|
|
64
|
+
current-context: my-cluster-context
|
|
65
|
+
users:
|
|
66
|
+
- name: my-user
|
|
67
|
+
user:
|
|
68
|
+
token: <bearer-token>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## kubectl Common Commands
|
|
72
|
+
|
|
73
|
+
### Cluster Information
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# View cluster info
|
|
77
|
+
kubectl cluster-info
|
|
78
|
+
|
|
79
|
+
# View cluster nodes
|
|
80
|
+
kubectl get nodes
|
|
81
|
+
|
|
82
|
+
# View node details
|
|
83
|
+
kubectl describe node <node-name>
|
|
84
|
+
|
|
85
|
+
# Get cluster version
|
|
86
|
+
kubectl version
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Working with Contexts
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# List contexts
|
|
93
|
+
kubectl config get-contexts
|
|
94
|
+
|
|
95
|
+
# View current context
|
|
96
|
+
kubectl config current-context
|
|
97
|
+
|
|
98
|
+
# Switch context
|
|
99
|
+
kubectl config use-context my-cluster
|
|
100
|
+
|
|
101
|
+
# Set default namespace for context
|
|
102
|
+
kubectl config set-context --current --namespace=my-namespace
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Pods
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# List pods in current namespace
|
|
109
|
+
kubectl get pods
|
|
110
|
+
|
|
111
|
+
# List pods in all namespaces
|
|
112
|
+
kubectl get pods --all-namespaces
|
|
113
|
+
kubectl get pods -A
|
|
114
|
+
|
|
115
|
+
# Get pod details
|
|
116
|
+
kubectl describe pod my-pod
|
|
117
|
+
|
|
118
|
+
# View pod logs
|
|
119
|
+
kubectl logs my-pod
|
|
120
|
+
|
|
121
|
+
# Follow pod logs
|
|
122
|
+
kubectl logs -f my-pod
|
|
123
|
+
|
|
124
|
+
# Logs from specific container in pod
|
|
125
|
+
kubectl logs my-pod -c my-container
|
|
126
|
+
|
|
127
|
+
# Execute command in pod
|
|
128
|
+
kubectl exec -it my-pod -- bash
|
|
129
|
+
|
|
130
|
+
# Execute in specific container
|
|
131
|
+
kubectl exec -it my-pod -c my-container -- sh
|
|
132
|
+
|
|
133
|
+
# Port forward to pod
|
|
134
|
+
kubectl port-forward my-pod 8080:80
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Deployments
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# List deployments
|
|
141
|
+
kubectl get deployments
|
|
142
|
+
|
|
143
|
+
# Create deployment
|
|
144
|
+
kubectl create deployment my-app --image=nginx:latest
|
|
145
|
+
|
|
146
|
+
# Get deployment details
|
|
147
|
+
kubectl describe deployment my-app
|
|
148
|
+
|
|
149
|
+
# Scale deployment
|
|
150
|
+
kubectl scale deployment my-app --replicas=3
|
|
151
|
+
|
|
152
|
+
# Update deployment image
|
|
153
|
+
kubectl set image deployment/my-app nginx=nginx:1.21
|
|
154
|
+
|
|
155
|
+
# Rollout status
|
|
156
|
+
kubectl rollout status deployment/my-app
|
|
157
|
+
|
|
158
|
+
# Rollout history
|
|
159
|
+
kubectl rollout history deployment/my-app
|
|
160
|
+
|
|
161
|
+
# Rollback to previous version
|
|
162
|
+
kubectl rollout undo deployment/my-app
|
|
163
|
+
|
|
164
|
+
# Rollback to specific revision
|
|
165
|
+
kubectl rollout undo deployment/my-app --to-revision=2
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Services
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# List services
|
|
172
|
+
kubectl get services
|
|
173
|
+
kubectl get svc
|
|
174
|
+
|
|
175
|
+
# Expose deployment as service
|
|
176
|
+
kubectl expose deployment my-app --port=80 --target-port=8080 --type=LoadBalancer
|
|
177
|
+
|
|
178
|
+
# Get service details
|
|
179
|
+
kubectl describe service my-app
|
|
180
|
+
|
|
181
|
+
# Port forward to service
|
|
182
|
+
kubectl port-forward service/my-app 8080:80
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### ConfigMaps and Secrets
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Create ConfigMap from literal
|
|
189
|
+
kubectl create configmap my-config --from-literal=key1=value1
|
|
190
|
+
|
|
191
|
+
# Create ConfigMap from file
|
|
192
|
+
kubectl create configmap my-config --from-file=config.yaml
|
|
193
|
+
|
|
194
|
+
# List ConfigMaps
|
|
195
|
+
kubectl get configmaps
|
|
196
|
+
|
|
197
|
+
# View ConfigMap
|
|
198
|
+
kubectl describe configmap my-config
|
|
199
|
+
|
|
200
|
+
# Create Secret
|
|
201
|
+
kubectl create secret generic my-secret --from-literal=password=s3cr3t
|
|
202
|
+
|
|
203
|
+
# Create Secret from file
|
|
204
|
+
kubectl create secret generic my-secret --from-file=ssh-key=/path/to/key
|
|
205
|
+
|
|
206
|
+
# List secrets
|
|
207
|
+
kubectl get secrets
|
|
208
|
+
|
|
209
|
+
# View secret (base64 encoded)
|
|
210
|
+
kubectl get secret my-secret -o yaml
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Namespaces
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# List namespaces
|
|
217
|
+
kubectl get namespaces
|
|
218
|
+
kubectl get ns
|
|
219
|
+
|
|
220
|
+
# Create namespace
|
|
221
|
+
kubectl create namespace my-namespace
|
|
222
|
+
|
|
223
|
+
# Delete namespace (deletes all resources)
|
|
224
|
+
kubectl delete namespace my-namespace
|
|
225
|
+
|
|
226
|
+
# Set default namespace
|
|
227
|
+
kubectl config set-context --current --namespace=my-namespace
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Applying Manifests
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# Apply YAML file
|
|
234
|
+
kubectl apply -f deployment.yaml
|
|
235
|
+
|
|
236
|
+
# Apply multiple files
|
|
237
|
+
kubectl apply -f deployment.yaml -f service.yaml
|
|
238
|
+
|
|
239
|
+
# Apply directory
|
|
240
|
+
kubectl apply -f ./manifests/
|
|
241
|
+
|
|
242
|
+
# Delete resources from file
|
|
243
|
+
kubectl delete -f deployment.yaml
|
|
244
|
+
|
|
245
|
+
# Dry run (validate without applying)
|
|
246
|
+
kubectl apply -f deployment.yaml --dry-run=client
|
|
247
|
+
kubectl apply -f deployment.yaml --dry-run=server
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Resource Debugging
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Get events
|
|
254
|
+
kubectl get events --sort-by=.metadata.creationTimestamp
|
|
255
|
+
|
|
256
|
+
# Get events for specific resource
|
|
257
|
+
kubectl get events --field-selector involvedObject.name=my-pod
|
|
258
|
+
|
|
259
|
+
# View resource usage
|
|
260
|
+
kubectl top nodes
|
|
261
|
+
kubectl top pods
|
|
262
|
+
|
|
263
|
+
# Describe any resource
|
|
264
|
+
kubectl describe <resource-type> <resource-name>
|
|
265
|
+
|
|
266
|
+
# Get resource in YAML format
|
|
267
|
+
kubectl get pod my-pod -o yaml
|
|
268
|
+
|
|
269
|
+
# Get resource in JSON format
|
|
270
|
+
kubectl get pod my-pod -o json
|
|
271
|
+
|
|
272
|
+
# Use JSONPath queries
|
|
273
|
+
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Helm Common Commands
|
|
277
|
+
|
|
278
|
+
### Repository Management
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
# Add repository
|
|
282
|
+
helm repo add stable https://charts.helm.sh/stable
|
|
283
|
+
helm repo add bitnami https://charts.bitnami.com/bitnami
|
|
284
|
+
|
|
285
|
+
# Update repositories
|
|
286
|
+
helm repo update
|
|
287
|
+
|
|
288
|
+
# List repositories
|
|
289
|
+
helm repo list
|
|
290
|
+
|
|
291
|
+
# Search for charts
|
|
292
|
+
helm search repo nginx
|
|
293
|
+
|
|
294
|
+
# Search Helm Hub
|
|
295
|
+
helm search hub wordpress
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Installing Charts
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# Install chart
|
|
302
|
+
helm install my-release bitnami/nginx
|
|
303
|
+
|
|
304
|
+
# Install with custom values
|
|
305
|
+
helm install my-release bitnami/nginx --set replicaCount=3
|
|
306
|
+
|
|
307
|
+
# Install with values file
|
|
308
|
+
helm install my-release bitnami/nginx -f values.yaml
|
|
309
|
+
|
|
310
|
+
# Install in specific namespace
|
|
311
|
+
helm install my-release bitnami/nginx --namespace my-namespace --create-namespace
|
|
312
|
+
|
|
313
|
+
# Dry run (template without installing)
|
|
314
|
+
helm install my-release bitnami/nginx --dry-run --debug
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Managing Releases
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
# List releases
|
|
321
|
+
helm list
|
|
322
|
+
|
|
323
|
+
# List releases in all namespaces
|
|
324
|
+
helm list --all-namespaces
|
|
325
|
+
|
|
326
|
+
# Get release status
|
|
327
|
+
helm status my-release
|
|
328
|
+
|
|
329
|
+
# Upgrade release
|
|
330
|
+
helm upgrade my-release bitnami/nginx
|
|
331
|
+
|
|
332
|
+
# Upgrade with new values
|
|
333
|
+
helm upgrade my-release bitnami/nginx -f new-values.yaml
|
|
334
|
+
|
|
335
|
+
# Upgrade or install (if doesn't exist)
|
|
336
|
+
helm upgrade --install my-release bitnami/nginx
|
|
337
|
+
|
|
338
|
+
# Rollback release
|
|
339
|
+
helm rollback my-release
|
|
340
|
+
|
|
341
|
+
# Rollback to specific revision
|
|
342
|
+
helm rollback my-release 2
|
|
343
|
+
|
|
344
|
+
# Uninstall release
|
|
345
|
+
helm uninstall my-release
|
|
346
|
+
|
|
347
|
+
# Uninstall but keep history
|
|
348
|
+
helm uninstall my-release --keep-history
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Working with Charts
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
# Show chart values
|
|
355
|
+
helm show values bitnami/nginx
|
|
356
|
+
|
|
357
|
+
# Show chart readme
|
|
358
|
+
helm show readme bitnami/nginx
|
|
359
|
+
|
|
360
|
+
# Show all chart information
|
|
361
|
+
helm show all bitnami/nginx
|
|
362
|
+
|
|
363
|
+
# Download chart
|
|
364
|
+
helm pull bitnami/nginx
|
|
365
|
+
|
|
366
|
+
# Download and extract chart
|
|
367
|
+
helm pull bitnami/nginx --untar
|
|
368
|
+
|
|
369
|
+
# Template chart (render locally)
|
|
370
|
+
helm template my-release bitnami/nginx
|
|
371
|
+
|
|
372
|
+
# Template with values
|
|
373
|
+
helm template my-release bitnami/nginx -f values.yaml
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### Creating Charts
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
# Create new chart
|
|
380
|
+
helm create my-chart
|
|
381
|
+
|
|
382
|
+
# Lint chart
|
|
383
|
+
helm lint my-chart/
|
|
384
|
+
|
|
385
|
+
# Package chart
|
|
386
|
+
helm package my-chart/
|
|
387
|
+
|
|
388
|
+
# Install local chart
|
|
389
|
+
helm install my-release ./my-chart
|
|
390
|
+
|
|
391
|
+
# Test release
|
|
392
|
+
helm test my-release
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
## Configuration
|
|
396
|
+
|
|
397
|
+
### kubectl Config File
|
|
398
|
+
|
|
399
|
+
Location: `~/.kube/config`
|
|
400
|
+
|
|
401
|
+
```yaml
|
|
402
|
+
apiVersion: v1
|
|
403
|
+
kind: Config
|
|
404
|
+
clusters:
|
|
405
|
+
- cluster:
|
|
406
|
+
certificate-authority-data: ...
|
|
407
|
+
server: https://kubernetes.example.com:6443
|
|
408
|
+
name: production
|
|
409
|
+
- cluster:
|
|
410
|
+
server: https://dev.kubernetes.example.com:6443
|
|
411
|
+
name: development
|
|
412
|
+
contexts:
|
|
413
|
+
- context:
|
|
414
|
+
cluster: production
|
|
415
|
+
namespace: default
|
|
416
|
+
user: admin
|
|
417
|
+
name: prod-context
|
|
418
|
+
- context:
|
|
419
|
+
cluster: development
|
|
420
|
+
namespace: dev
|
|
421
|
+
user: developer
|
|
422
|
+
name: dev-context
|
|
423
|
+
current-context: dev-context
|
|
424
|
+
users:
|
|
425
|
+
- name: admin
|
|
426
|
+
user:
|
|
427
|
+
client-certificate-data: ...
|
|
428
|
+
client-key-data: ...
|
|
429
|
+
- name: developer
|
|
430
|
+
user:
|
|
431
|
+
token: ...
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Helm Values Files
|
|
435
|
+
|
|
436
|
+
**values.yaml:**
|
|
437
|
+
|
|
438
|
+
```yaml
|
|
439
|
+
replicaCount: 3
|
|
440
|
+
|
|
441
|
+
image:
|
|
442
|
+
repository: nginx
|
|
443
|
+
tag: '1.21'
|
|
444
|
+
pullPolicy: IfNotPresent
|
|
445
|
+
|
|
446
|
+
service:
|
|
447
|
+
type: LoadBalancer
|
|
448
|
+
port: 80
|
|
449
|
+
|
|
450
|
+
ingress:
|
|
451
|
+
enabled: true
|
|
452
|
+
hosts:
|
|
453
|
+
- host: myapp.example.com
|
|
454
|
+
paths:
|
|
455
|
+
- path: /
|
|
456
|
+
pathType: Prefix
|
|
457
|
+
|
|
458
|
+
resources:
|
|
459
|
+
limits:
|
|
460
|
+
cpu: 100m
|
|
461
|
+
memory: 128Mi
|
|
462
|
+
requests:
|
|
463
|
+
cpu: 100m
|
|
464
|
+
memory: 128Mi
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
## Use Cases
|
|
468
|
+
|
|
469
|
+
### Application Deployment
|
|
470
|
+
|
|
471
|
+
- Deploy containerized applications
|
|
472
|
+
- Manage multi-tier applications with Helm charts
|
|
473
|
+
- Roll out updates and rollback when needed
|
|
474
|
+
|
|
475
|
+
### Cluster Management
|
|
476
|
+
|
|
477
|
+
- Monitor cluster health
|
|
478
|
+
- Scale applications
|
|
479
|
+
- Manage resources across namespaces
|
|
480
|
+
|
|
481
|
+
### Development Workflows
|
|
482
|
+
|
|
483
|
+
- Port forward for local testing
|
|
484
|
+
- Debug pods and containers
|
|
485
|
+
- View logs and events
|
|
486
|
+
|
|
487
|
+
### CI/CD Integration
|
|
488
|
+
|
|
489
|
+
- Automated deployments
|
|
490
|
+
- Helm chart releases
|
|
491
|
+
- Environment-specific configurations
|
|
492
|
+
|
|
493
|
+
## Best Practices
|
|
494
|
+
|
|
495
|
+
### kubectl
|
|
496
|
+
|
|
497
|
+
1. **Use namespaces** - Organize resources logically
|
|
498
|
+
2. **Label resources** - Enable better filtering and selection
|
|
499
|
+
3. **Use declarative configs** - Prefer `kubectl apply` over `kubectl create`
|
|
500
|
+
4. **Version control manifests** - Track changes in git
|
|
501
|
+
5. **Use dry-run** - Validate before applying
|
|
502
|
+
6. **Set resource limits** - Prevent resource starvation
|
|
503
|
+
7. **Use health checks** - Configure liveness and readiness probes
|
|
504
|
+
|
|
505
|
+
### Helm
|
|
506
|
+
|
|
507
|
+
1. **Use values files** - Don't hardcode in templates
|
|
508
|
+
2. **Version charts** - Use semantic versioning
|
|
509
|
+
3. **Lint charts** - Run `helm lint` before packaging
|
|
510
|
+
4. **Document values** - Add comments in values.yaml
|
|
511
|
+
5. **Test releases** - Use `helm test` for validation
|
|
512
|
+
6. **Use dependencies** - Leverage existing charts
|
|
513
|
+
7. **Keep charts simple** - Don't over-template
|
|
514
|
+
|
|
515
|
+
## Security Considerations
|
|
516
|
+
|
|
517
|
+
### RBAC (Role-Based Access Control)
|
|
518
|
+
|
|
519
|
+
```bash
|
|
520
|
+
# Create service account
|
|
521
|
+
kubectl create serviceaccount my-service-account
|
|
522
|
+
|
|
523
|
+
# Create role
|
|
524
|
+
kubectl create role pod-reader \
|
|
525
|
+
--verb=get,list,watch \
|
|
526
|
+
--resource=pods
|
|
527
|
+
|
|
528
|
+
# Bind role to service account
|
|
529
|
+
kubectl create rolebinding pod-reader-binding \
|
|
530
|
+
--role=pod-reader \
|
|
531
|
+
--serviceaccount=default:my-service-account
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
### Secrets Management
|
|
535
|
+
|
|
536
|
+
⚠️ **Best Practices:**
|
|
537
|
+
|
|
538
|
+
1. **Never commit secrets to git**
|
|
539
|
+
2. **Use external secret management** (Vault, AWS Secrets Manager)
|
|
540
|
+
3. **Encrypt secrets at rest** - Enable encryption in etcd
|
|
541
|
+
4. **Use RBAC** - Limit who can read secrets
|
|
542
|
+
5. **Rotate secrets regularly**
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
# Create secret from file (not in git)
|
|
546
|
+
kubectl create secret generic db-password --from-file=./password.txt
|
|
547
|
+
|
|
548
|
+
# Use sealed secrets (encrypted in git)
|
|
549
|
+
# Requires sealed-secrets controller
|
|
550
|
+
kubeseal -f secret.yaml -w sealed-secret.yaml
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
## Troubleshooting
|
|
554
|
+
|
|
555
|
+
### kubectl/helm command not found
|
|
556
|
+
|
|
557
|
+
Rebuild container:
|
|
558
|
+
|
|
559
|
+
- **VS Code:** `Cmd+Shift+P` → "Dev Containers: Rebuild Container"
|
|
560
|
+
|
|
561
|
+
### Connection refused
|
|
562
|
+
|
|
563
|
+
```bash
|
|
564
|
+
# Verify cluster is accessible
|
|
565
|
+
kubectl cluster-info
|
|
566
|
+
|
|
567
|
+
# Check kubeconfig
|
|
568
|
+
kubectl config view
|
|
569
|
+
|
|
570
|
+
# Test specific context
|
|
571
|
+
kubectl config use-context my-cluster
|
|
572
|
+
kubectl get nodes
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
### Authentication errors
|
|
576
|
+
|
|
577
|
+
```bash
|
|
578
|
+
# Verify credentials
|
|
579
|
+
kubectl auth can-i get pods
|
|
580
|
+
|
|
581
|
+
# Update cluster credentials (cloud providers)
|
|
582
|
+
aws eks update-kubeconfig --name my-cluster # EKS
|
|
583
|
+
gcloud container clusters get-credentials my-cluster # GKE
|
|
584
|
+
az aks get-credentials --name my-cluster # AKS
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
### Pod not starting
|
|
588
|
+
|
|
589
|
+
```bash
|
|
590
|
+
# Check pod status
|
|
591
|
+
kubectl get pods
|
|
592
|
+
|
|
593
|
+
# Describe pod for events
|
|
594
|
+
kubectl describe pod my-pod
|
|
595
|
+
|
|
596
|
+
# Check logs
|
|
597
|
+
kubectl logs my-pod
|
|
598
|
+
|
|
599
|
+
# Check previous logs (if crashed)
|
|
600
|
+
kubectl logs my-pod --previous
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
### Helm installation fails
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
# Debug with dry-run
|
|
607
|
+
helm install my-release bitnami/nginx --dry-run --debug
|
|
608
|
+
|
|
609
|
+
# Check release history
|
|
610
|
+
helm history my-release
|
|
611
|
+
|
|
612
|
+
# View rendered templates
|
|
613
|
+
helm template my-release bitnami/nginx
|
|
614
|
+
|
|
615
|
+
# Check values
|
|
616
|
+
helm get values my-release
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
## Useful Aliases
|
|
620
|
+
|
|
621
|
+
Add to `.bashrc` or `.zshrc`:
|
|
622
|
+
|
|
623
|
+
```bash
|
|
624
|
+
# kubectl aliases
|
|
625
|
+
alias k='kubectl'
|
|
626
|
+
alias kgp='kubectl get pods'
|
|
627
|
+
alias kgs='kubectl get svc'
|
|
628
|
+
alias kgd='kubectl get deployments'
|
|
629
|
+
alias kga='kubectl get all'
|
|
630
|
+
alias kdp='kubectl describe pod'
|
|
631
|
+
alias kl='kubectl logs'
|
|
632
|
+
alias kx='kubectl exec -it'
|
|
633
|
+
alias kaf='kubectl apply -f'
|
|
634
|
+
alias kdf='kubectl delete -f'
|
|
635
|
+
|
|
636
|
+
# Helm aliases
|
|
637
|
+
alias h='helm'
|
|
638
|
+
alias hls='helm list'
|
|
639
|
+
alias hi='helm install'
|
|
640
|
+
alias hu='helm upgrade'
|
|
641
|
+
alias hr='helm rollback'
|
|
642
|
+
alias hun='helm uninstall'
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
## Related Overlays
|
|
646
|
+
|
|
647
|
+
- **gcloud** - For Google GKE cluster authentication
|
|
648
|
+
- **aws-cli** - For Amazon EKS cluster authentication
|
|
649
|
+
- **azure-cli** - For Azure AKS cluster authentication
|
|
650
|
+
- **docker-sock/docker-in-docker** - For building container images
|
|
651
|
+
- **terraform** - Infrastructure as Code for cluster provisioning
|
|
652
|
+
- **pulumi** - Modern IaC for Kubernetes resources
|
|
653
|
+
|
|
654
|
+
## Additional Resources
|
|
655
|
+
|
|
656
|
+
- [kubectl Documentation](https://kubernetes.io/docs/reference/kubectl/)
|
|
657
|
+
- [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
|
|
658
|
+
- [Helm Documentation](https://helm.sh/docs/)
|
|
659
|
+
- [Helm Charts Repository](https://artifacthub.io/)
|
|
660
|
+
- [Kubernetes Best Practices](https://kubernetes.io/docs/concepts/configuration/overview/)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
|
+
"features": {
|
|
4
|
+
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {
|
|
5
|
+
"version": "latest",
|
|
6
|
+
"helm": "latest",
|
|
7
|
+
"minikube": "none"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|