Add environment injection to deployment and enhance app rendering
This commit is contained in:
		
							parent
							
								
									1993029144
								
							
						
					
					
						commit
						09319ab532
					
				@ -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
									
								
								base/env.k
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								base/env.k
									
									
									
									
									
								
							@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								main.k
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.k
									
									
									
									
									
								
							@ -15,15 +15,17 @@ base.App {
 | 
			
		||||
    port = 8080
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
base.Envs {
 | 
			
		||||
envs = base.Envs {
 | 
			
		||||
    envs = {
 | 
			
		||||
        "key1": "value1"
 | 
			
		||||
        "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()]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# base.appRender(a)
 | 
			
		||||
manifests.yaml_stream([apps_manifests, env_manifests])
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user