Refactor environment injection and secret rendering for improved deployment handling

This commit is contained in:
suyiiyii 2025-03-14 12:23:53 +08:00
parent 09319ab532
commit b729e4030a
Signed by: suyiiyii
GPG Key ID: 044704CB29B8AD85
3 changed files with 21 additions and 14 deletions

View File

@ -14,20 +14,26 @@ envSecretRender = lambda e: Envs {
} }
data = e.envs data = e.envs
} }
secret [secret]
} }
envInjector = lambda envs: Envs, deploy: appsv1.Deployment { envInjector = lambda envs: Envs, deploy {
"""Inject envs to Deployment""" """Inject envs to Deployment"""
_result: [appsv1.Deployment] = [] _result = {}
if deploy.kind != "Deployment": if deploy.kind != "Deployment":
_result = [deploy] _result = deploy
else: else:
secretEnv = [{ secretEnv: [corev1.EnvVar] = [{
name = k name = k
secret = v valueFrom = {
secretKeyRef = {
name = "app-secret"
key = k
}
}
} for k, v in envs.envs] } for k, v in envs.envs]
print(secretEnv)
deploy.spec.template.spec.containers[0].env = secretEnv deploy.spec.template.spec.containers[0].env = secretEnv
_result = [deploy] _result = deploy
_result _result
} }

13
main.k
View File

@ -1,5 +1,5 @@
import base import base
import yaml
import manifests import manifests
base.App { base.App {
@ -17,15 +17,16 @@ base.App {
envs = base.Envs { envs = base.Envs {
envs = { envs = {
"key1": "value1" "APP_VAR": "varvalue"
"key2": "value2" "APP_SECRET": "secretvalue"
} }
} }
apps_manifests = [base.envInjector(envs,base.appRender(a)) for a in base.App.instances()] deploys = sum([base.appRender(a) for a in base.App.instances()], [])
print(yaml.encode(deploys))
apps_manifests = [base.envInjector(envs, deploy) for deploy in deploys]
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 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 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 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 1exit status 1exit status 1exit status 1exit status 1exit status 1