Add environment injection to deployment and enhance app rendering

This commit is contained in:
2025-03-14 11:26:43 +08:00
parent 1993029144
commit 09319ab532
4 changed files with 22 additions and 3 deletions
+1
View File
@@ -9,6 +9,7 @@ schema App:
port: int
appRender = lambda a: App {
"""Render app to Deployment and Service"""
deployment = appsv1.Deployment {
apiVersion = "apps/v1"
kind = "Deployment"
+16
View File
@@ -1,3 +1,4 @@
import k8s.api.apps.v1 as appsv1
import k8s.api.core.v1 as corev1
schema Envs:
@@ -15,3 +16,18 @@ envSecretRender = lambda e: Envs {
}
secret
}
envInjector = lambda envs: Envs, deploy: appsv1.Deployment {
"""Inject envs to Deployment"""
_result: [appsv1.Deployment] = []
if deploy.kind != "Deployment":
_result = [deploy]
else:
secretEnv = [{
name = k
secret = v
} for k, v in envs.envs]
deploy.spec.template.spec.containers[0].env = secretEnv
_result = [deploy]
_result
}