@deftai/directive-content 0.55.0
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/.agents/skills/deft/SKILL.md +6 -0
- package/.agents/skills/deft-directive-article-review/SKILL.md +11 -0
- package/.agents/skills/deft-directive-build/SKILL.md +10 -0
- package/.agents/skills/deft-directive-cost/SKILL.md +12 -0
- package/.agents/skills/deft-directive-debug/SKILL.md +13 -0
- package/.agents/skills/deft-directive-gh-arch/SKILL.md +11 -0
- package/.agents/skills/deft-directive-gh-slice/SKILL.md +10 -0
- package/.agents/skills/deft-directive-glossary/SKILL.md +10 -0
- package/.agents/skills/deft-directive-interview/SKILL.md +9 -0
- package/.agents/skills/deft-directive-pre-pr/SKILL.md +9 -0
- package/.agents/skills/deft-directive-refinement/SKILL.md +10 -0
- package/.agents/skills/deft-directive-release/SKILL.md +12 -0
- package/.agents/skills/deft-directive-review-cycle/SKILL.md +10 -0
- package/.agents/skills/deft-directive-setup/SKILL.md +10 -0
- package/.agents/skills/deft-directive-swarm/SKILL.md +10 -0
- package/.agents/skills/deft-directive-sync/SKILL.md +9 -0
- package/.agents/skills/deft-directive-triage/SKILL.md +9 -0
- package/.agents/skills/deft-directive-write-skill/SKILL.md +9 -0
- package/LICENSE.md +22 -0
- package/QUICK-START.md +167 -0
- package/UPGRADING.md +517 -0
- package/coding/build-output.md +28 -0
- package/coding/coding.md +235 -0
- package/coding/debugging.md +110 -0
- package/coding/holzmann.md +96 -0
- package/coding/hygiene.md +127 -0
- package/coding/security.md +158 -0
- package/coding/testing.md +162 -0
- package/coding/toolchain.md +44 -0
- package/commands.md +300 -0
- package/context/context.md +57 -0
- package/context/deterministic-split.md +67 -0
- package/context/examples.md +26 -0
- package/context/fractal-summaries.md +69 -0
- package/context/long-horizon.md +46 -0
- package/context/spec-deltas.md +177 -0
- package/context/tool-design.md +34 -0
- package/context/working-memory.md +62 -0
- package/contracts/boundary-maps.md +65 -0
- package/contracts/deterministic-questions.md +59 -0
- package/contracts/hierarchy.md +77 -0
- package/conventions/content-manifest.json +399 -0
- package/conventions/machine-generated-banner.md +130 -0
- package/conventions/references.md +120 -0
- package/conventions/rule-ownership.json +382 -0
- package/conventions/task-caching.md +43 -0
- package/conventions/vbrief-filenames.md +70 -0
- package/deployments/README.md +37 -0
- package/deployments/agentuity/README.md +138 -0
- package/deployments/agentuity/via-cli.md +380 -0
- package/deployments/agentuity/via-cloud.md +425 -0
- package/deployments/agentuity/via-github-actions.md +664 -0
- package/deployments/agentuity/via-gravity-network.md +606 -0
- package/deployments/agentuity/via-vpc.md +607 -0
- package/deployments/aws/README.md +38 -0
- package/deployments/aws/via-app-runner.md +612 -0
- package/deployments/aws/via-ecs-fargate.md +561 -0
- package/deployments/aws/via-elastic-beanstalk.md +628 -0
- package/deployments/aws/via-lambda.md +649 -0
- package/deployments/azure/README.md +37 -0
- package/deployments/azure/via-aks.md +390 -0
- package/deployments/azure/via-app-service.md +564 -0
- package/deployments/azure/via-container-apps.md +599 -0
- package/deployments/azure/via-functions.md +552 -0
- package/deployments/cloud-gov/README.md +63 -0
- package/deployments/cloud-gov/agents/compliance-docs.md +154 -0
- package/deployments/cloud-gov/agents.md +39 -0
- package/deployments/cloud-gov/cicd.md +64 -0
- package/deployments/cloud-gov/deployment.md +150 -0
- package/deployments/cloud-gov/logging.md +43 -0
- package/deployments/cloud-gov/manifest.md +121 -0
- package/deployments/cloud-gov/overview.md +58 -0
- package/deployments/cloud-gov/security.md +46 -0
- package/deployments/cloud-gov/services.md +72 -0
- package/deployments/cloud-gov/upstream/README.md +18 -0
- package/deployments/cloudflare/README.md +33 -0
- package/deployments/cloudflare/via-dashboard.md +83 -0
- package/deployments/cloudflare/via-git.md +90 -0
- package/deployments/cloudflare/via-github-actions.md +185 -0
- package/deployments/cloudflare/via-terraform.md +157 -0
- package/deployments/cloudflare/via-wrangler.md +165 -0
- package/deployments/fly-io/README.md +37 -0
- package/deployments/fly-io/via-dockerfile.md +648 -0
- package/deployments/fly-io/via-flyctl.md +653 -0
- package/deployments/fly-io/via-github-actions.md +695 -0
- package/deployments/fly-io/via-multi-region.md +598 -0
- package/deployments/google/README.md +34 -0
- package/deployments/google/via-app-engine.md +42 -0
- package/deployments/google/via-cloud-functions.md +23 -0
- package/deployments/google/via-cloud-run.md +330 -0
- package/deployments/google/via-gke.md +23 -0
- package/deployments/netlify/README.md +99 -0
- package/deployments/netlify/via-cli.md +17 -0
- package/deployments/netlify/via-functions.md +19 -0
- package/deployments/netlify/via-git.md +25 -0
- package/deployments/vercel/README.md +90 -0
- package/deployments/vercel/via-api.md +16 -0
- package/deployments/vercel/via-cli.md +17 -0
- package/deployments/vercel/via-git.md +24 -0
- package/docs/BROWNFIELD.md +179 -0
- package/docs/getting-started.md +137 -0
- package/docs/good-agents-md.md +137 -0
- package/events/README.md +89 -0
- package/events/event-record.schema.json +26 -0
- package/events/registry.json +166 -0
- package/events/registry.schema.json +71 -0
- package/glossary.md +145 -0
- package/incidents/README.md +81 -0
- package/incidents/_template.md +38 -0
- package/interfaces/cli.md +104 -0
- package/interfaces/rest.md +212 -0
- package/interfaces/tui.md +242 -0
- package/interfaces/web.md +123 -0
- package/languages/6502-DASM.md +132 -0
- package/languages/c.md +235 -0
- package/languages/commands.md +23 -0
- package/languages/cpp.md +132 -0
- package/languages/csharp.md +259 -0
- package/languages/dart.md +183 -0
- package/languages/delphi.md +218 -0
- package/languages/elixir.md +208 -0
- package/languages/go.md +78 -0
- package/languages/java.md +278 -0
- package/languages/javascript.md +163 -0
- package/languages/julia.md +175 -0
- package/languages/kotlin.md +193 -0
- package/languages/markdown.md +168 -0
- package/languages/mermaid.md +146 -0
- package/languages/officejs.md +392 -0
- package/languages/python.md +209 -0
- package/languages/r.md +163 -0
- package/languages/rust.md +216 -0
- package/languages/sql.md +216 -0
- package/languages/swift.md +153 -0
- package/languages/typescript.md +132 -0
- package/languages/vba.md +279 -0
- package/languages/vhdl.md +180 -0
- package/languages/visual-basic.md +151 -0
- package/languages/zig.md +196 -0
- package/meta/SOUL.md +27 -0
- package/meta/code-field.md +44 -0
- package/meta/morals.md +40 -0
- package/meta/philosophy.md +39 -0
- package/meta/project.md +49 -0
- package/meta/ralph.md +223 -0
- package/meta/security.md +80 -0
- package/meta/versioning.md +326 -0
- package/package.json +22 -0
- package/packs/lessons/lessons-pack-0.1.json +553 -0
- package/packs/patterns/patterns-pack-0.1.json +57 -0
- package/packs/rules/rules-pack-0.1.json +4767 -0
- package/packs/skills/skills-pack-0.1.json +262 -0
- package/packs/strategies/strategies-pack-0.1.json +167 -0
- package/packs/swarm-spec/swarm-spec-pack-0.1.json +17 -0
- package/patterns/executor-layer-credentials.md +227 -0
- package/patterns/llm-app.md +156 -0
- package/patterns/multi-agent.md +278 -0
- package/patterns/prompt-assembly-layer-ordering.md +154 -0
- package/patterns/role-as-overlay.md +179 -0
- package/platforms/2600.md +137 -0
- package/platforms/unity.md +329 -0
- package/references/composer-skill-porting.md +152 -0
- package/references/cost-models.md +163 -0
- package/references/ip-risk.md +246 -0
- package/references/plain-english-ux.md +275 -0
- package/resilience/context-pruning.md +67 -0
- package/resilience/continue-here.md +62 -0
- package/scm/changelog.md +276 -0
- package/scm/git.md +139 -0
- package/scm/github.md +265 -0
- package/secrets/.gitkeep +0 -0
- package/skills/deft-build/SKILL.md +20 -0
- package/skills/deft-directive-article-review/SKILL.md +156 -0
- package/skills/deft-directive-build/SKILL.md +302 -0
- package/skills/deft-directive-cost/SKILL.md +201 -0
- package/skills/deft-directive-debug/SKILL.md +140 -0
- package/skills/deft-directive-decompose/SKILL.md +96 -0
- package/skills/deft-directive-gh-arch/SKILL.md +160 -0
- package/skills/deft-directive-gh-slice/SKILL.md +199 -0
- package/skills/deft-directive-glossary/SKILL.md +118 -0
- package/skills/deft-directive-interview/SKILL.md +528 -0
- package/skills/deft-directive-pre-pr/SKILL.md +131 -0
- package/skills/deft-directive-probe/SKILL.md +127 -0
- package/skills/deft-directive-refinement/SKILL.md +403 -0
- package/skills/deft-directive-release/SKILL.md +266 -0
- package/skills/deft-directive-review-cycle/SKILL.md +401 -0
- package/skills/deft-directive-setup/SKILL.md +717 -0
- package/skills/deft-directive-swarm/SKILL.md +989 -0
- package/skills/deft-directive-sync/SKILL.md +288 -0
- package/skills/deft-directive-triage/SKILL.md +137 -0
- package/skills/deft-directive-write-skill/SKILL.md +169 -0
- package/skills/deft-interview/SKILL.md +16 -0
- package/skills/deft-pre-pr/SKILL.md +16 -0
- package/skills/deft-review-cycle/SKILL.md +16 -0
- package/skills/deft-roadmap-refresh/SKILL.md +16 -0
- package/skills/deft-setup/SKILL.md +20 -0
- package/skills/deft-swarm/SKILL.md +16 -0
- package/skills/deft-sync/SKILL.md +16 -0
- package/strategies/README.md +83 -0
- package/strategies/artifact-guards.md +85 -0
- package/strategies/bdd.md +115 -0
- package/strategies/brownfield.md +7 -0
- package/strategies/discuss.md +129 -0
- package/strategies/emit-hints.md +69 -0
- package/strategies/enterprise.md +193 -0
- package/strategies/interview.md +551 -0
- package/strategies/map.md +179 -0
- package/strategies/probe.md +151 -0
- package/strategies/rapid.md +155 -0
- package/strategies/research.md +155 -0
- package/strategies/roadmap.md +9 -0
- package/strategies/speckit.md +437 -0
- package/strategies/v0-20-contract.md +134 -0
- package/strategies/yolo.md +169 -0
- package/swarm/swarm.md +300 -0
- package/templates/COST-ESTIMATE.md +114 -0
- package/templates/PULL_REQUEST_TEMPLATE.md +35 -0
- package/templates/agent-prompt-preamble.md +409 -0
- package/templates/agents-entry.md +211 -0
- package/templates/agents-entry.placeholders.md +75 -0
- package/templates/embed.go +20 -0
- package/templates/embed_test.go +36 -0
- package/templates/make-spec-example.md +9 -0
- package/templates/make-spec.md +246 -0
- package/templates/project.md.template +52 -0
- package/templates/specification.md +1 -0
- package/templates/swarm-greptile-poller-prompt.md +556 -0
- package/templates/user.md.template +31 -0
- package/tools/RWLDL.md +80 -0
- package/tools/greptile.md +141 -0
- package/tools/installer.md +23 -0
- package/tools/taskfile-migration.md +32 -0
- package/tools/taskfile.md +185 -0
- package/tools/telemetry.md +285 -0
- package/vbrief/schemas/cache-meta.schema.json +137 -0
- package/vbrief/schemas/candidates.schema.json +130 -0
- package/vbrief/schemas/codebase-map.schema.json +213 -0
- package/vbrief/schemas/lessons-pack.schema.json +134 -0
- package/vbrief/schemas/patterns-pack.schema.json +84 -0
- package/vbrief/schemas/rules-pack.schema.json +105 -0
- package/vbrief/schemas/skills-pack.schema.json +94 -0
- package/vbrief/schemas/slices.schema.json +87 -0
- package/vbrief/schemas/strategies-pack.schema.json +89 -0
- package/vbrief/schemas/swarm-spec-pack.schema.json +84 -0
- package/vbrief/schemas/vbrief-core.schema.json +1022 -0
- package/vbrief/vbrief.md +684 -0
- package/verification/integration.md +76 -0
- package/verification/plan-checking.md +85 -0
- package/verification/uat.md +60 -0
- package/verification/verification.md +117 -0
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
# Deploy via Azure Kubernetes Service (AKS)
|
|
2
|
+
|
|
3
|
+
Deploy containerized applications using Azure Kubernetes Service. Managed Kubernetes with integrated Azure services, auto-scaling, and advanced orchestration.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AKS provides managed Kubernetes:
|
|
8
|
+
- **Managed Control Plane**: Azure handles K8s master nodes
|
|
9
|
+
- **Integrated Services**: Azure Monitor, Container Registry, Key Vault
|
|
10
|
+
- **Auto-scaling**: Cluster and pod autoscaling
|
|
11
|
+
- **Security**: Azure AD integration, RBAC, network policies
|
|
12
|
+
- **Cost Optimization**: Multiple node pools, spot instances
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
- Azure account with subscription
|
|
17
|
+
- Azure CLI installed
|
|
18
|
+
- kubectl installed
|
|
19
|
+
- Docker for local development
|
|
20
|
+
- Container images in registry
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
### 1. Install Tools
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Install kubectl
|
|
28
|
+
az aks install-cli
|
|
29
|
+
|
|
30
|
+
# Verify
|
|
31
|
+
kubectl version --client
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 2. Create AKS Cluster
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Create resource group
|
|
38
|
+
az group create --name myapp-rg --location eastus
|
|
39
|
+
|
|
40
|
+
# Create AKS cluster
|
|
41
|
+
az aks create \
|
|
42
|
+
--resource-group myapp-rg \
|
|
43
|
+
--name myapp-cluster \
|
|
44
|
+
--node-count 2 \
|
|
45
|
+
--enable-managed-identity \
|
|
46
|
+
--generate-ssh-keys \
|
|
47
|
+
--attach-acr myregistry
|
|
48
|
+
|
|
49
|
+
# Get credentials
|
|
50
|
+
az aks get-credentials \
|
|
51
|
+
--resource-group myapp-rg \
|
|
52
|
+
--name myapp-cluster
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Deploy Application
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Create deployment
|
|
59
|
+
kubectl create deployment myapp \
|
|
60
|
+
--image=myregistry.azurecr.io/myapp:latest
|
|
61
|
+
|
|
62
|
+
# Expose as service
|
|
63
|
+
kubectl expose deployment myapp \
|
|
64
|
+
--type=LoadBalancer \
|
|
65
|
+
--port=80 \
|
|
66
|
+
--target-port=8080
|
|
67
|
+
|
|
68
|
+
# Check status
|
|
69
|
+
kubectl get services
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Kubernetes Manifests
|
|
73
|
+
|
|
74
|
+
### Deployment
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
# deployment.yaml
|
|
78
|
+
apiVersion: apps/v1
|
|
79
|
+
kind: Deployment
|
|
80
|
+
metadata:
|
|
81
|
+
name: myapp
|
|
82
|
+
spec:
|
|
83
|
+
replicas: 3
|
|
84
|
+
selector:
|
|
85
|
+
matchLabels:
|
|
86
|
+
app: myapp
|
|
87
|
+
template:
|
|
88
|
+
metadata:
|
|
89
|
+
labels:
|
|
90
|
+
app: myapp
|
|
91
|
+
spec:
|
|
92
|
+
containers:
|
|
93
|
+
- name: myapp
|
|
94
|
+
image: myregistry.azurecr.io/myapp:latest
|
|
95
|
+
ports:
|
|
96
|
+
- containerPort: 8080
|
|
97
|
+
env:
|
|
98
|
+
- name: APP_ENV
|
|
99
|
+
value: "production"
|
|
100
|
+
resources:
|
|
101
|
+
requests:
|
|
102
|
+
memory: "256Mi"
|
|
103
|
+
cpu: "250m"
|
|
104
|
+
limits:
|
|
105
|
+
memory: "512Mi"
|
|
106
|
+
cpu: "500m"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Service
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
# service.yaml
|
|
113
|
+
apiVersion: v1
|
|
114
|
+
kind: Service
|
|
115
|
+
metadata:
|
|
116
|
+
name: myapp
|
|
117
|
+
spec:
|
|
118
|
+
type: LoadBalancer
|
|
119
|
+
selector:
|
|
120
|
+
app: myapp
|
|
121
|
+
ports:
|
|
122
|
+
- port: 80
|
|
123
|
+
targetPort: 8080
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Ingress
|
|
127
|
+
|
|
128
|
+
```yaml
|
|
129
|
+
# ingress.yaml
|
|
130
|
+
apiVersion: networking.k8s.io/v1
|
|
131
|
+
kind: Ingress
|
|
132
|
+
metadata:
|
|
133
|
+
name: myapp
|
|
134
|
+
annotations:
|
|
135
|
+
nginx.ingress.kubernetes.io/rewrite-target: /
|
|
136
|
+
spec:
|
|
137
|
+
ingressClassName: nginx
|
|
138
|
+
rules:
|
|
139
|
+
- host: myapp.example.com
|
|
140
|
+
http:
|
|
141
|
+
paths:
|
|
142
|
+
- path: /
|
|
143
|
+
pathType: Prefix
|
|
144
|
+
backend:
|
|
145
|
+
service:
|
|
146
|
+
name: myapp
|
|
147
|
+
port:
|
|
148
|
+
number: 80
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## ACR Integration
|
|
152
|
+
|
|
153
|
+
### Create and Configure ACR
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Create ACR
|
|
157
|
+
az acr create \
|
|
158
|
+
--resource-group myapp-rg \
|
|
159
|
+
--name myregistry \
|
|
160
|
+
--sku Standard
|
|
161
|
+
|
|
162
|
+
# Build and push image
|
|
163
|
+
az acr build \
|
|
164
|
+
--registry myregistry \
|
|
165
|
+
--image myapp:latest \
|
|
166
|
+
--file Dockerfile .
|
|
167
|
+
|
|
168
|
+
# Attach ACR to AKS
|
|
169
|
+
az aks update \
|
|
170
|
+
--resource-group myapp-rg \
|
|
171
|
+
--name myapp-cluster \
|
|
172
|
+
--attach-acr myregistry
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Auto-scaling
|
|
176
|
+
|
|
177
|
+
### Horizontal Pod Autoscaler
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
# hpa.yaml
|
|
181
|
+
apiVersion: autoscaling/v2
|
|
182
|
+
kind: HorizontalPodAutoscaler
|
|
183
|
+
metadata:
|
|
184
|
+
name: myapp-hpa
|
|
185
|
+
spec:
|
|
186
|
+
scaleTargetRef:
|
|
187
|
+
apiVersion: apps/v1
|
|
188
|
+
kind: Deployment
|
|
189
|
+
name: myapp
|
|
190
|
+
minReplicas: 2
|
|
191
|
+
maxReplicas: 10
|
|
192
|
+
metrics:
|
|
193
|
+
- type: Resource
|
|
194
|
+
resource:
|
|
195
|
+
name: cpu
|
|
196
|
+
target:
|
|
197
|
+
type: Utilization
|
|
198
|
+
averageUtilization: 70
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Cluster Autoscaler
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Enable cluster autoscaler
|
|
205
|
+
az aks update \
|
|
206
|
+
--resource-group myapp-rg \
|
|
207
|
+
--name myapp-cluster \
|
|
208
|
+
--enable-cluster-autoscaler \
|
|
209
|
+
--min-count 1 \
|
|
210
|
+
--max-count 5
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Helm Deployment
|
|
214
|
+
|
|
215
|
+
### Install Helm Chart
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Add Helm repo
|
|
219
|
+
helm repo add myrepo https://charts.example.com
|
|
220
|
+
helm repo update
|
|
221
|
+
|
|
222
|
+
# Install chart
|
|
223
|
+
helm install myapp myrepo/myapp \
|
|
224
|
+
--set image.repository=myregistry.azurecr.io/myapp \
|
|
225
|
+
--set image.tag=latest \
|
|
226
|
+
--set replicaCount=3
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Create Custom Chart
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Create chart
|
|
233
|
+
helm create myapp
|
|
234
|
+
|
|
235
|
+
# Edit values.yaml, then install
|
|
236
|
+
helm install myapp ./myapp
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## CI/CD with GitHub Actions
|
|
240
|
+
|
|
241
|
+
```yaml
|
|
242
|
+
# .github/workflows/aks-deploy.yml
|
|
243
|
+
name: Deploy to AKS
|
|
244
|
+
|
|
245
|
+
on:
|
|
246
|
+
push:
|
|
247
|
+
branches: [main]
|
|
248
|
+
|
|
249
|
+
env:
|
|
250
|
+
AZURE_RESOURCE_GROUP: myapp-rg
|
|
251
|
+
AKS_CLUSTER: myapp-cluster
|
|
252
|
+
ACR_NAME: myregistry
|
|
253
|
+
IMAGE_NAME: myapp
|
|
254
|
+
|
|
255
|
+
jobs:
|
|
256
|
+
build-and-deploy:
|
|
257
|
+
runs-on: ubuntu-latest
|
|
258
|
+
|
|
259
|
+
steps:
|
|
260
|
+
- uses: actions/checkout@v3
|
|
261
|
+
|
|
262
|
+
- uses: azure/login@v1
|
|
263
|
+
with:
|
|
264
|
+
creds: ${{ secrets.AZURE_CREDENTIALS }}
|
|
265
|
+
|
|
266
|
+
- name: Build and push to ACR
|
|
267
|
+
run: |
|
|
268
|
+
az acr build \
|
|
269
|
+
--registry ${{ env.ACR_NAME }} \
|
|
270
|
+
--image ${{ env.IMAGE_NAME }}:${{ github.sha }} \
|
|
271
|
+
--file Dockerfile .
|
|
272
|
+
|
|
273
|
+
- uses: azure/aks-set-context@v3
|
|
274
|
+
with:
|
|
275
|
+
resource-group: ${{ env.AZURE_RESOURCE_GROUP }}
|
|
276
|
+
cluster-name: ${{ env.AKS_CLUSTER }}
|
|
277
|
+
|
|
278
|
+
- uses: azure/k8s-deploy@v4
|
|
279
|
+
with:
|
|
280
|
+
manifests: |
|
|
281
|
+
k8s/deployment.yaml
|
|
282
|
+
k8s/service.yaml
|
|
283
|
+
images: |
|
|
284
|
+
${{ env.ACR_NAME }}.azurecr.io/${{ env.IMAGE_NAME }}:${{ github.sha }}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Monitoring
|
|
288
|
+
|
|
289
|
+
### Enable Azure Monitor
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
az aks enable-addons \
|
|
293
|
+
--resource-group myapp-rg \
|
|
294
|
+
--name myapp-cluster \
|
|
295
|
+
--addons monitoring
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### View Logs
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# Pod logs
|
|
302
|
+
kubectl logs -f deployment/myapp
|
|
303
|
+
|
|
304
|
+
# All pods
|
|
305
|
+
kubectl logs -l app=myapp --all-containers=true
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Secrets Management
|
|
309
|
+
|
|
310
|
+
### Azure Key Vault Integration
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Enable Key Vault add-on
|
|
314
|
+
az aks enable-addons \
|
|
315
|
+
--resource-group myapp-rg \
|
|
316
|
+
--name myapp-cluster \
|
|
317
|
+
--addons azure-keyvault-secrets-provider
|
|
318
|
+
|
|
319
|
+
# Create Key Vault
|
|
320
|
+
az keyvault create \
|
|
321
|
+
--name myapp-kv \
|
|
322
|
+
--resource-group myapp-rg \
|
|
323
|
+
--location eastus
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
```yaml
|
|
327
|
+
# secretproviderclass.yaml
|
|
328
|
+
apiVersion: secrets-store.csi.x-k8s.io/v1
|
|
329
|
+
kind: SecretProviderClass
|
|
330
|
+
metadata:
|
|
331
|
+
name: azure-keyvault
|
|
332
|
+
spec:
|
|
333
|
+
provider: azure
|
|
334
|
+
parameters:
|
|
335
|
+
keyvaultName: myapp-kv
|
|
336
|
+
objects: |
|
|
337
|
+
array:
|
|
338
|
+
- |
|
|
339
|
+
objectName: db-password
|
|
340
|
+
objectType: secret
|
|
341
|
+
tenantId: <tenant-id>
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
## Best Practices
|
|
345
|
+
|
|
346
|
+
1. **Use Namespaces**: Organize workloads
|
|
347
|
+
2. **Resource Limits**: Set requests and limits
|
|
348
|
+
3. **Health Checks**: Configure liveness and readiness probes
|
|
349
|
+
4. **Network Policies**: Control pod-to-pod traffic
|
|
350
|
+
5. **Use Helm**: Package and version deployments
|
|
351
|
+
6. **Enable Monitoring**: Azure Monitor for containers
|
|
352
|
+
7. **RBAC**: Use Azure AD integration
|
|
353
|
+
8. **Multiple Node Pools**: Separate workload types
|
|
354
|
+
9. **Spot Instances**: Save costs for non-critical workloads
|
|
355
|
+
10. **GitOps**: Use Flux or ArgoCD
|
|
356
|
+
|
|
357
|
+
## Troubleshooting
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Check cluster health
|
|
361
|
+
az aks show \
|
|
362
|
+
--resource-group myapp-rg \
|
|
363
|
+
--name myapp-cluster
|
|
364
|
+
|
|
365
|
+
# Node issues
|
|
366
|
+
kubectl get nodes
|
|
367
|
+
kubectl describe node <node-name>
|
|
368
|
+
|
|
369
|
+
# Pod issues
|
|
370
|
+
kubectl get pods
|
|
371
|
+
kubectl describe pod <pod-name>
|
|
372
|
+
kubectl logs <pod-name>
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## Cost Optimization
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Use Standard tier for production
|
|
379
|
+
# Enable cluster autoscaler
|
|
380
|
+
# Use spot node pools for dev/test
|
|
381
|
+
# Right-size node VMs
|
|
382
|
+
# Scale to zero during off-hours
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## References
|
|
386
|
+
|
|
387
|
+
- [AKS Documentation](https://docs.microsoft.com/azure/aks/)
|
|
388
|
+
- [Kubernetes Documentation](https://kubernetes.io/docs/)
|
|
389
|
+
- [Helm Documentation](https://helm.sh/docs/)
|
|
390
|
+
- [AKS Best Practices](https://docs.microsoft.com/azure/aks/best-practices)
|