Skip to content

Commit b1a0c04

Browse files
Anmol1696claude
andcommitted
add Skaffold config with local-simple and local profiles
Create skaffold.yaml with two profiles: - local-simple: plain k8s Deployments (no Knative needed) - local: full Knative Services (production parity) Both profiles support file sync for handler hot reload and automatic port forwarding. Add images transformer to local overlay so Skaffold can replace GHCR image refs. Add Make targets for both profiles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 872880c commit b1a0c04

3 files changed

Lines changed: 95 additions & 0 deletions

File tree

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ dev-down:
3232
dev-logs:
3333
docker compose logs -f
3434

35+
# --- Skaffold k8s development ---
36+
# Plain k8s (Deployments + Services, no Knative operators needed)
37+
skaffold-dev:
38+
skaffold dev -p local-simple
39+
40+
# Full Knative setup (requires: cd k8s && make operators-knative-only)
41+
skaffold-dev-knative:
42+
skaffold dev -p local
43+
3544
# --- Docker image builds ---
3645

3746
docker-build:

k8s/overlays/local/kustomization.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ resources:
2727
- ../../base/functions/simple-email.yaml
2828
- ../../base/functions/send-email-link.yaml
2929

30+
# Skaffold image replacement: map the GHCR image to the locally-built image
31+
images:
32+
- name: ghcr.io/constructive-io/constructive
33+
newName: constructive-functions
34+
3035
patches:
3136
- path: ./constructive/config.yaml
3237
- path: ./constructive/dashboard-config.yaml

skaffold.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
apiVersion: skaffold/v4beta11
2+
kind: Config
3+
metadata:
4+
name: constructive-functions
5+
6+
profiles:
7+
# Plain k8s (Deployments + Services) — no Knative operators needed.
8+
- name: local-simple
9+
build:
10+
artifacts:
11+
- image: constructive-functions
12+
context: .
13+
docker:
14+
dockerfile: Dockerfile.dev
15+
sync:
16+
manual:
17+
- src: 'functions/**/*.ts'
18+
dest: /usr/src/app
19+
local:
20+
push: false
21+
deploy:
22+
kustomize:
23+
paths:
24+
- k8s/overlays/local-simple
25+
portForward:
26+
- resourceType: service
27+
resourceName: simple-email
28+
port: 80
29+
localPort: 8081
30+
- resourceType: service
31+
resourceName: send-email-link
32+
port: 80
33+
localPort: 8082
34+
- resourceType: service
35+
resourceName: knative-job-service
36+
port: 8080
37+
localPort: 8080
38+
- resourceType: service
39+
resourceName: postgres
40+
port: 5432
41+
localPort: 5432
42+
43+
# Full Knative setup — requires `cd k8s && make operators-knative-only` first.
44+
- name: local
45+
build:
46+
artifacts:
47+
- image: constructive-functions
48+
context: .
49+
docker:
50+
dockerfile: Dockerfile.dev
51+
sync:
52+
manual:
53+
- src: 'functions/**/*.ts'
54+
dest: /usr/src/app
55+
local:
56+
push: false
57+
deploy:
58+
kustomize:
59+
paths:
60+
- k8s/overlays/local
61+
portForward:
62+
- resourceType: service
63+
resourceName: simple-email
64+
port: 80
65+
localPort: 8081
66+
- resourceType: service
67+
resourceName: send-email-link
68+
port: 80
69+
localPort: 8082
70+
- resourceType: service
71+
resourceName: knative-job-service
72+
port: 8080
73+
localPort: 8080
74+
- resourceType: service
75+
resourceName: postgres
76+
port: 5432
77+
localPort: 5432
78+
- resourceType: service
79+
resourceName: constructive-server
80+
port: 3000
81+
localPort: 3002

0 commit comments

Comments
 (0)