Add environment injection to deployment and enhance app rendering

This commit is contained in:
suyiiyii 2025-03-14 11:26:43 +08:00
parent 1993029144
commit 09319ab532
Signed by: suyiiyii
GPG Key ID: 044704CB29B8AD85
4 changed files with 22 additions and 3 deletions

View File

@ -9,6 +9,7 @@ schema App:
port: int port: int
appRender = lambda a: App { appRender = lambda a: App {
"""Render app to Deployment and Service"""
deployment = appsv1.Deployment { deployment = appsv1.Deployment {
apiVersion = "apps/v1" apiVersion = "apps/v1"
kind = "Deployment" kind = "Deployment"

View File

@ -1,3 +1,4 @@
import k8s.api.apps.v1 as appsv1
import k8s.api.core.v1 as corev1 import k8s.api.core.v1 as corev1
schema Envs: schema Envs:
@ -15,3 +16,18 @@ envSecretRender = lambda e: Envs {
} }
secret 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
}

6
main.k
View File

@ -15,15 +15,17 @@ base.App {
port = 8080 port = 8080
} }
base.Envs { envs = base.Envs {
envs = { envs = {
"key1": "value1" "key1": "value1"
"key2": "value2" "key2": "value2"
} }
} }
apps_manifests = [base.appRender(a) for a in base.App.instances()] apps_manifests = [base.envInjector(envs,base.appRender(a)) for a in base.App.instances()]
env_manifests = [base.envSecretRender(a) for a in base.Envs.instances()] env_manifests = [base.envSecretRender(a) for a in base.Envs.instances()]
# base.appRender(a) # base.appRender(a)
manifests.yaml_stream([apps_manifests, env_manifests]) manifests.yaml_stream([apps_manifests, env_manifests])

View File

@ -1 +1 @@
exit status 1exit status 2exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1 exit status 1exit status 2exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1