Skip to content

Commit

Permalink
ft: add k8s configs
Browse files Browse the repository at this point in the history
  • Loading branch information
shivanshs9 committed Nov 10, 2024
1 parent 23475f1 commit 44468ff
Show file tree
Hide file tree
Showing 9 changed files with 184 additions and 2 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/cd-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
version: ${{ steps.build.outputs.tag }}
steps:
- uses: actions/checkout@v4
- uses: ./composite/build-push-gcloud
- uses: ./actions/build-push-gcloud
id: build
with:
google_key: ${{ secrets.GCLOUD_SECRET_KEY }}
Expand All @@ -30,7 +30,7 @@ jobs:
version: ${{ steps.build.outputs.tag }}
steps:
- uses: actions/checkout@v4
- uses: ./composite/build-push-gcloud
- uses: ./actions/build-push-gcloud
id: build
with:
google_key: ${{ secrets.GCLOUD_SECRET_KEY }}
Expand Down
File renamed without changes.
28 changes: 28 additions & 0 deletions iac/gitops/backend/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
replicas: 1
template:
spec:
containers:
- name: backend
image: grpc-backend:latest
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: sec-backend
key: WEBPASSWORD
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
26 changes: 26 additions & 0 deletions iac/gitops/backend/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- deployment.yaml
- service.yaml

namePrefix: whisper-notes-
namespace: debug # CHANGEME: default

labels:
- pairs:
app.kubernetes.io/name: whisper-notes-grpc
app.kubernetes.io/component: grpc-backend
app.kubernetes.io/part-of: whisper-notes
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/created-by: controller-manager
includeSelectors: true
- pairs:
app.kubernetes.io/version: latest # TODO: add support of dynamic versioning in label
includeSelectors: false

images:
- name: grpc-backend:latest
newName: europe-north1-docker.pkg.dev/polynomial-new/services/whisper-notes-backend
newTag: latest
10 changes: 10 additions & 0 deletions iac/gitops/backend/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
kind: Service
apiVersion: v1
metadata:
name: backend-headless
spec:
type: ClusterIP
clusterIP: None
ports:
- protocol: TCP
port: 8080
28 changes: 28 additions & 0 deletions iac/gitops/proxy/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: proxy
spec:
replicas: 1
template:
spec:
containers:
- name: proxy
image: envoyproxy/envoy:v1.31.3
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
ports:
- name: https
containerPort: 8443
volumeMounts:
- name: config
mountPath: /etc/envoy
volumes:
- name: config
configMap:
name: cm-envoy-proxy
55 changes: 55 additions & 0 deletions iac/gitops/proxy/envoy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
static_resources:
listeners:
- name: listener_0
address:
socket_address:
address: 0.0.0.0
port_value: 8443
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
access_log:
- name: envoy.access_loggers.stdout
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
codec_type: AUTO
stat_prefix: ingress_https
route_config:
name: local_route
virtual_hosts:
- name: https
domains:
- "*"
routes:
- match:
prefix: "/"
route:
cluster: notes-grpc-backend
max_grpc_timeout: 2s
http_filters:
- name: envoy.filters.http.router
typed_config: {}
clusters:
- name: notes-grpc-backend
connect_timeout: 0.5s
type: STRICT_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
http2_protocol_options: {}
load_assignment:
cluster_name: notes-grpc-backend
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: whisper-notes-backend-headless.debug.svc.cluster.local # CHANGEME: target service FQDNS
port_value: 8080
admin:
access_log_path: /dev/stdout
address:
socket_address:
address: 127.0.0.1
port_value: 8090
26 changes: 26 additions & 0 deletions iac/gitops/proxy/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- deployment.yaml
- service.yaml

namePrefix: whisper-notes-
namespace: debug # CHANGEME: default

configMapGenerator:
- files:
- envoy.yaml
name: cm-envoy-proxy

labels:
- pairs:
app.kubernetes.io/name: whisper-notes-grpc
app.kubernetes.io/component: envoy-proxy
app.kubernetes.io/part-of: whisper-notes
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/created-by: controller-manager
includeSelectors: true
- pairs:
app.kubernetes.io/version: latest # TODO: add support of dynamic versioning in label
includeSelectors: false
9 changes: 9 additions & 0 deletions iac/gitops/proxy/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
kind: Service
apiVersion: v1
metadata:
name: proxy
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 8443

0 comments on commit 44468ff

Please sign in to comment.