@@ -41,7 +41,7 @@ The programming language of the project is KCL, not JSON/YAML which Kubernetes r
41
41
Enter stack dir ` examples/appops/nginx-example/dev ` and compile:
42
42
43
43
``` bash
44
- cd examples/appops/nginx-example/dev && kcl run
44
+ cd examples/appops/nginx-example/dev && kcl run -D env=dev
45
45
```
46
46
47
47
The output YAML is:
@@ -50,39 +50,43 @@ The output YAML is:
50
50
apiVersion : apps/v1
51
51
kind : Deployment
52
52
metadata :
53
- name : sampleappprod
53
+ name : sampleappdev
54
54
namespace : sampleapp
55
55
spec :
56
56
replicas : 1
57
57
selector :
58
58
matchLabels :
59
59
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
63
63
template :
64
64
metadata :
65
65
labels :
66
66
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
70
70
spec :
71
71
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 : []
86
90
---
87
91
apiVersion : v1
88
92
kind : Namespace
@@ -96,22 +100,22 @@ metadata:
96
100
namespace : sampleapp
97
101
spec :
98
102
ports :
99
- - nodePort : 30201
100
- port : 80
101
- targetPort : 80
103
+ - nodePort : 30201
104
+ port : 80
105
+ targetPort : 80
102
106
selector :
103
107
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
107
111
type : NodePort
108
112
` ` `
109
113
110
114
After compiling, we can see three resources:
111
115
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`
115
119
116
120
# ## 2. Modification
117
121
@@ -134,61 +138,64 @@ kcl run
134
138
apiVersion: apps/v1
135
139
kind: Deployment
136
140
metadata:
137
- name: nginx-exampledev
138
- namespace: nginx-example
141
+ name: sampleappdev
142
+ namespace: sampleapp
139
143
spec:
140
144
replicas: 1
141
145
selector:
142
146
matchLabels:
143
- app.kubernetes.io/name: nginx-example
147
+ app.kubernetes.io/name: sampleapp
144
148
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
147
151
template:
148
152
metadata:
149
153
labels:
150
- app.kubernetes.io/name: nginx-example
154
+ app.kubernetes.io/name: sampleapp
151
155
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
154
158
spec:
155
159
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: []
170
178
---
171
179
apiVersion: v1
172
180
kind: Namespace
173
181
metadata:
174
- name: nginx-example
182
+ name: sampleapp
175
183
---
176
184
apiVersion: v1
177
185
kind: Service
178
186
metadata:
179
- name: nginx-example
180
- namespace: nginx-example
187
+ name: nginx
188
+ namespace: sampleapp
181
189
spec:
182
190
ports:
183
- - nodePort: 30201
184
- port: 80
185
- targetPort: 80
191
+ - nodePort: 30201
192
+ port: 80
193
+ targetPort: 80
186
194
selector:
187
- app.kubernetes.io/name: nginx-example
195
+ app.kubernetes.io/name: sampleapp
188
196
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
192
199
` ` `
193
200
194
201
# # Summary
0 commit comments