@@ -41,7 +41,7 @@ The programming language of the project is KCL, not JSON/YAML which Kubernetes r
4141Enter stack dir ` examples/appops/nginx-example/dev ` and compile:
4242
4343``` bash
44- cd examples/appops/nginx-example/dev && kcl run
44+ cd examples/appops/nginx-example/dev && kcl run -D env=dev
4545```
4646
4747The output YAML is:
@@ -50,39 +50,43 @@ The output YAML is:
5050apiVersion : apps/v1
5151kind : Deployment
5252metadata :
53- name : sampleappprod
53+ name : sampleappdev
5454 namespace : sampleapp
5555spec :
5656 replicas : 1
5757 selector :
5858 matchLabels :
5959 app.kubernetes.io/name : sampleapp
60- app.kubernetes.io/env : prod
61- app.kubernetes.io/instance : sampleapp-prod
62- app.k8s.io/component : sampleappprod
60+ app.kubernetes.io/env : dev
61+ app.kubernetes.io/instance : sampleapp-dev
62+ app.k8s.io/component : sampleappdev
6363 template :
6464 metadata :
6565 labels :
6666 app.kubernetes.io/name : sampleapp
67- app.kubernetes.io/env : prod
68- app.kubernetes.io/instance : sampleapp-prod
69- app.k8s.io/component : sampleappprod
67+ app.kubernetes.io/env : dev
68+ app.kubernetes.io/instance : sampleapp-dev
69+ app.k8s.io/component : sampleappdev
7070 spec :
7171 containers :
72- - image : nginx:1.7.8
73- name : main
74- ports :
75- - containerPort : 80
76- protocol : TCP
77- resources :
78- limits :
79- cpu : 100m
80- memory : 100Mi
81- ephemeral-storage : 1Gi
82- requests :
83- cpu : 100m
84- memory : 100Mi
85- ephemeral-storage : 1Gi
72+ - env :
73+ - name : MY_ENV
74+ value : MY_VALUE
75+ image : nginx:1.7.8
76+ name : main
77+ ports :
78+ - containerPort : 80
79+ protocol : TCP
80+ resources :
81+ limits :
82+ cpu : ' 100m'
83+ memory : ' 100Mi'
84+ ephemeral-storage : ' 1Gi'
85+ requests :
86+ cpu : ' 100m'
87+ memory : ' 100Mi'
88+ ephemeral-storage : ' 1Gi'
89+ volumeMounts : []
8690---
8791apiVersion : v1
8892kind : Namespace
@@ -96,22 +100,22 @@ metadata:
96100 namespace : sampleapp
97101spec :
98102 ports :
99- - nodePort : 30201
100- port : 80
101- targetPort : 80
103+ - nodePort : 30201
104+ port : 80
105+ targetPort : 80
102106 selector :
103107 app.kubernetes.io/name : sampleapp
104- app.kubernetes.io/env : prod
105- app.kubernetes.io/instance : sampleapp-prod
106- app.k8s.io/component : sampleappprod
108+ app.kubernetes.io/env : dev
109+ app.kubernetes.io/instance : sampleapp-dev
110+ app.k8s.io/component : sampleappdev
107111 type : NodePort
108112` ` `
109113
110114After compiling, we can see three resources:
111115
112- - A ` Deployment` with the name `nginx-exampledev `
113- - A `Namespace` with the name `nginx-example `
114- - A `Service` with the name `nginx-example `
116+ - A ` Deployment` with the name `sampleappprod `
117+ - A `Namespace` with the name `sampleapp `
118+ - A `Service` with the name `nginx`
115119
116120# ## 2. Modification
117121
@@ -134,61 +138,64 @@ kcl run
134138apiVersion: apps/v1
135139kind: Deployment
136140metadata:
137- name: nginx-exampledev
138- namespace: nginx-example
141+ name: sampleappdev
142+ namespace: sampleapp
139143spec:
140144 replicas: 1
141145 selector:
142146 matchLabels:
143- app.kubernetes.io/name: nginx-example
147+ app.kubernetes.io/name: sampleapp
144148 app.kubernetes.io/env: dev
145- app.kubernetes.io/instance: nginx-example -dev
146- app.kubernetes .io/component: nginx-exampledev
149+ app.kubernetes.io/instance: sampleapp -dev
150+ app.k8s .io/component: sampleappdev
147151 template:
148152 metadata:
149153 labels:
150- app.kubernetes.io/name: nginx-example
154+ app.kubernetes.io/name: sampleapp
151155 app.kubernetes.io/env: dev
152- app.kubernetes.io/instance: nginx-example -dev
153- app.kubernetes .io/component: nginx-exampledev
156+ app.kubernetes.io/instance: sampleapp -dev
157+ app.k8s .io/component: sampleappdev
154158 spec:
155159 containers:
156- - image: nginx:latest
157- name: main
158- ports:
159- - containerPort: 80
160- protocol: TCP
161- resources:
162- limits:
163- cpu: 100m
164- memory: 100Mi
165- ephemeral-storage: 1Gi
166- requests:
167- cpu: 100m
168- memory: 100Mi
169- ephemeral-storage: 1Gi
160+ - env:
161+ - name: MY_ENV
162+ value: MY_VALUE
163+ image: nginx:latest
164+ name: main
165+ ports:
166+ - containerPort: 80
167+ protocol: TCP
168+ resources:
169+ limits:
170+ cpu: '100m'
171+ memory: '100Mi'
172+ ephemeral-storage: '1Gi'
173+ requests:
174+ cpu: '100m'
175+ memory: '100Mi'
176+ ephemeral-storage: '1Gi'
177+ volumeMounts: []
170178---
171179apiVersion: v1
172180kind: Namespace
173181metadata:
174- name: nginx-example
182+ name: sampleapp
175183---
176184apiVersion: v1
177185kind: Service
178186metadata:
179- name: nginx-example
180- namespace: nginx-example
187+ name: nginx
188+ namespace: sampleapp
181189spec:
182190 ports:
183- - nodePort: 30201
184- port: 80
185- targetPort: 80
191+ - nodePort: 30201
192+ port: 80
193+ targetPort: 80
186194 selector:
187- app.kubernetes.io/name: nginx-example
195+ app.kubernetes.io/name: sampleapp
188196 app.kubernetes.io/env: dev
189- app.kubernetes.io/instance: nginx-example-dev
190- app.kubernetes.io/component: nginx-exampledev
191- type: NodePort
197+ app.kubernetes.io/instance: sampleapp-dev
198+ app.k8s.io/component: sampleappdev
192199` ` `
193200
194201# # Summary
0 commit comments