feat: project skeleton

- infra (k8s, kind, helm, docker) backbone is implemented
- security: implementation + unit tests are done
This commit is contained in:
2025-11-21 12:00:00 -05:00
commit fbe9fbba6e
46 changed files with 3450 additions and 0 deletions

122
skaffold.yaml Normal file
View File

@@ -0,0 +1,122 @@
apiVersion: skaffold/v4beta11
kind: Config
metadata:
name: incidentops
build:
artifacts:
- image: incidentops/api
docker:
dockerfile: Dockerfile
target: api
sync:
manual:
- src: "app/**/*.py"
dest: /app
- src: "worker/**/*.py"
dest: /app
- image: incidentops/worker
docker:
dockerfile: Dockerfile
target: worker
sync:
manual:
- src: "app/**/*.py"
dest: /app
- src: "worker/**/*.py"
dest: /app
- image: incidentops/web
docker:
dockerfile: Dockerfile.web
context: .
sync:
manual:
- src: "web/src/**/*"
dest: /app
local:
push: false
useBuildkit: true
deploy:
helm:
releases:
- name: incidentops
chartPath: helm/incidentops
valuesFiles:
- helm/incidentops/values.yaml
setValues:
api.image.repository: incidentops/api
api.image.tag: ""
worker.image.repository: incidentops/worker
worker.image.tag: ""
web.image.repository: incidentops/web
web.image.tag: ""
createNamespace: true
namespace: incidentops
profiles:
- name: dev
activation:
- command: dev
build:
local:
push: false
deploy:
helm:
releases:
- name: incidentops
chartPath: helm/incidentops
valuesFiles:
- helm/incidentops/values.yaml
setValues:
api.replicaCount: 1
worker.replicaCount: 1
web.replicaCount: 1
api.image.repository: incidentops/api
api.image.tag: ""
worker.image.repository: incidentops/worker
worker.image.tag: ""
web.image.repository: incidentops/web
web.image.tag: ""
createNamespace: true
namespace: incidentops
- name: production
activation:
- env: SKAFFOLD_PROFILE=production
build:
local:
push: true
deploy:
helm:
releases:
- name: incidentops
chartPath: helm/incidentops
valuesFiles:
- helm/incidentops/values.yaml
- helm/incidentops/values-production.yaml
createNamespace: true
namespace: incidentops-prod
- name: kind
activation:
- kubeContext: kind-.*
patches:
- op: add
path: /build/local/push
value: false
portForward:
- resourceType: service
resourceName: incidentops-api
namespace: incidentops
port: 8000
localPort: 8000
- resourceType: service
resourceName: incidentops-web
namespace: incidentops
port: 3000
localPort: 3000