You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -47,12 +47,12 @@ Kustomize는 쿠버네티스 구성을 사용자 정의화하는 도구이다.
47
47
48
48
### 리소스 생성
49
49
50
-
컨피그 맵과 시크릿은 파드와 같은 다른 쿠버네티스 오브젝트에서 사용되는 설정이나 민감한 데이터를 가지고 있다. 컨피그 맵이나 시크릿의 실질적인 소스는 일반적으로 `.properties` 파일이나 ssh key 파일과 같은 것들은 클러스터 외부에 있다.
51
-
Kustomize는 시크릿과 컨피그 맵을 파일이나 문자열에서 생성하는 `secretGenerator`와 `configMapGenerator`를 가지고 있다.
50
+
컨피그맵과 시크릿은 파드와 같은 다른 쿠버네티스 오브젝트에서 사용되는 설정이나 민감한 데이터를 가지고 있다. 컨피그맵이나 시크릿의 실질적인 소스는 일반적으로 `.properties` 파일이나 ssh key 파일과 같은 것들은 클러스터 외부에 있다.
51
+
Kustomize는 시크릿과 컨피그맵을 파일이나 문자열에서 생성하는 `secretGenerator`와 `configMapGenerator`를 가지고 있다.
52
52
53
53
#### configMapGenerator
54
54
55
-
파일에서 컨피그 맵을 생성하려면 `configMapGenerator` 내의 `files` 리스트에 항목을 추가한다. 다음은 하나의 `.properties` 파일에서 데이터 항목으로 컨피그 맵을 생성하는 예제이다.
55
+
파일에서 컨피그맵을 생성하려면 `configMapGenerator` 내의 `files` 리스트에 항목을 추가한다. 다음은 하나의 `.properties` 파일에서 데이터 항목으로 컨피그맵을 생성하는 예제이다.
56
56
57
57
```shell
58
58
# application.properties 파일을 생성
@@ -68,13 +68,13 @@ configMapGenerator:
68
68
EOF
69
69
```
70
70
71
-
생성된 컨피그 맵은 다음 명령어로 검사할 수 있다.
71
+
생성된 컨피그맵은 다음 명령어로 검사할 수 있다.
72
72
73
73
```shell
74
74
kubectl kustomize ./
75
75
```
76
76
77
-
생성된 컨피그 맵은 다음과 같다.
77
+
생성된 컨피그맵은 다음과 같다.
78
78
79
79
```yaml
80
80
apiVersion: v1
@@ -86,7 +86,7 @@ metadata:
86
86
name: example-configmap-1-8mbdf7882g
87
87
```
88
88
89
-
컨피그 맵은 문자로된 키-값 쌍들로도 생성할 수 있다. 문자로된 키-값 쌍에서 컨피그 맵을 생성하려면, configMapGenerator 내의 `literals` 리스트에 항목을 추가한다. 다음은 키-값 쌍을 데이터 항목으로 받는 컨피그 맵을 생성하는 예제이다.
89
+
컨피그맵은 문자로된 키-값 쌍들로도 생성할 수 있다. 문자로된 키-값 쌍에서 컨피그맵을 생성하려면, configMapGenerator 내의 `literals` 리스트에 항목을 추가한다. 다음은 키-값 쌍을 데이터 항목으로 받는 컨피그맵을 생성하는 예제이다.
90
90
91
91
```shell
92
92
cat <<EOF >./kustomization.yaml
@@ -97,13 +97,13 @@ configMapGenerator:
97
97
EOF
98
98
```
99
99
100
-
생성된 컨피그 맵은 다음 명령어로 확인할 수 있다.
100
+
생성된 컨피그맵은 다음 명령어로 확인할 수 있다.
101
101
102
102
```shell
103
103
kubectl kustomize ./
104
104
```
105
105
106
-
생성된 컨피그 맵은 다음과 같다.
106
+
생성된 컨피그맵은 다음과 같다.
107
107
108
108
```yaml
109
109
apiVersion: v1
@@ -114,6 +114,98 @@ metadata:
114
114
name: example-configmap-2-g2hdhfc6tk
115
115
```
116
116
117
+
디플로이먼트에서 생성된 컨피그맵을 사용하기 위해서는, configMapGenerator의 이름을 참조한다. Kustomize는 자동으로 해당 이름을 생성된 이름으로 교체할 것이다.
118
+
119
+
다음은 생성된 컨피그맵을 사용하는 디플로이먼트의 예시다.
120
+
121
+
```yaml
122
+
# application.properties 파일을 생성한다.
123
+
cat <<EOF >application.properties
124
+
FOO=Bar
125
+
EOF
126
+
127
+
cat <<EOF >deployment.yaml
128
+
apiVersion: apps/v1
129
+
kind: Deployment
130
+
metadata:
131
+
name: my-app
132
+
labels:
133
+
app: my-app
134
+
spec:
135
+
selector:
136
+
matchLabels:
137
+
app: my-app
138
+
template:
139
+
metadata:
140
+
labels:
141
+
app: my-app
142
+
spec:
143
+
containers:
144
+
- name: app
145
+
image: my-app
146
+
volumeMount:
147
+
- name: config
148
+
mountPath: /config
149
+
volumes:
150
+
- name: config
151
+
configMap:
152
+
name: example-configmap-1
153
+
EOF
154
+
155
+
cat <<EOF >./kustomization.yaml
156
+
resources:
157
+
- deployment.yaml
158
+
configMapGenerator:
159
+
- name: example-configmap-1
160
+
files:
161
+
- application.properties
162
+
EOF
163
+
```
164
+
165
+
컨피그맵과 디플로이먼트를 생성한다.
166
+
167
+
```shell
168
+
kubectl kustomize ./
169
+
```
170
+
171
+
생성된 디플로이먼트는 이름을 통해서 생성된 컨피그맵을 참조한다.
172
+
173
+
```yaml
174
+
apiVersion: v1
175
+
data:
176
+
application.properties: |
177
+
FOO=Bar
178
+
kind: ConfigMap
179
+
metadata:
180
+
name: example-configmap-1-g4hk9g2ff8
181
+
---
182
+
apiVersion: apps/v1
183
+
kind: Deployment
184
+
metadata:
185
+
labels:
186
+
app: my-app
187
+
name: my-app
188
+
spec:
189
+
selector:
190
+
matchLabels:
191
+
app: my-app
192
+
template:
193
+
metadata:
194
+
labels:
195
+
app: my-app
196
+
spec:
197
+
containers:
198
+
- image: my-app
199
+
name: app
200
+
volumeMount:
201
+
- mountPath: /config
202
+
name: config
203
+
volumes:
204
+
- configMap:
205
+
name: example-configmap-1-g4hk9g2ff8
206
+
name: config
207
+
```
208
+
117
209
#### secretGenerator
118
210
119
211
파일 또는 문자로된 키-값 쌍들로 시크릿을 생성할 수 있다. 파일에서 시크릿을 생성하려면 `secretGenerator` 내의 `files` 리스트에 항목을 추가한다. 다음은 파일을 데이터 항목으로 받는 시크릿을 생성하는 예제이다.
@@ -170,9 +262,56 @@ metadata:
170
262
type: Opaque
171
263
```
172
264
265
+
컨피그맵과 유사하게, 생성된 시크릿도 secretGenerator의 이름을 참조함으로써 디플로이먼트에서 사용될 수 있다.
266
+
267
+
```shell
268
+
# password.txt 파일을 생성한다.
269
+
cat <<EOF >./password.txt
270
+
username=admin
271
+
password=secret
272
+
EOF
273
+
274
+
cat <<EOF >deployment.yaml
275
+
apiVersion: apps/v1
276
+
kind: Deployment
277
+
metadata:
278
+
name: my-app
279
+
labels:
280
+
app: my-app
281
+
spec:
282
+
selector:
283
+
matchLabels:
284
+
app: my-app
285
+
template:
286
+
metadata:
287
+
labels:
288
+
app: my-app
289
+
spec:
290
+
containers:
291
+
- name: app
292
+
image: my-app
293
+
volumeMount:
294
+
- name: password
295
+
mountPath: /secrets
296
+
volumes:
297
+
- name: password
298
+
secret:
299
+
secretName: example-secret-1
300
+
EOF
301
+
302
+
cat <<EOF >./kustomization.yaml
303
+
resources:
304
+
- deployment.yaml
305
+
secretGenerator:
306
+
- name: example-secret-1
307
+
files:
308
+
- password.txt
309
+
EOF
310
+
```
311
+
173
312
#### generatorOptions
174
313
175
-
생성된 컨피그 맵과 시크릿은 콘텐츠 해시 접미사가 추가된다. 이는 콘텐츠가 변경될 때 새로운 컨피그 맵 이나 시크릿이 생성되는 것을 보장한다. 접미사를 추가하는 동작을 비활성화하는 방법으로 `generatorOptions`를 사용할 수 있다. 그밖에, 생성된 컨피그 맵과 시크릿에 교차 편집 옵션들을 지정해주는 것도 가능하다.
314
+
생성된 컨피그맵과 시크릿은 콘텐츠 해시 접미사가 추가된다. 이는 콘텐츠가 변경될 때 새로운 컨피그맵 이나 시크릿이 생성되는 것을 보장한다. 접미사를 추가하는 동작을 비활성화하는 방법으로 `generatorOptions`를 사용할 수 있다. 그밖에, 생성된 컨피그맵과 시크릿에 교차 편집 옵션들을 지정해주는 것도 가능하다.
| nameSuffix | string | 모든 리소스 네임에 이 필드의 값이 접미사로 추가된다 |
815
954
| commonLabels | map[string]string | 모든 리소스와 셀렉터에 추가될 레이블 |
816
955
| commonAnnotations | map[string]string | 모든 리소스에 추가될 어노테이션 |
817
-
| resources | []string | 이 리스트 내 각각의 항목은 반드시 존재하는 리소스 구성 파일로 해석되어져야 한다 |
818
-
| configmapGenerator | [][ConfigMapArgs](https://github.com/kubernetes-sigs/kustomize/blob/release-kustomize-v4.0/api/types/kustomization.go#L99) | 이 리스트 내 각각의 항목은 컨피그 맵을 생성한다 |
819
-
| secretGenerator | [][SecretArgs](https://github.com/kubernetes-sigs/kustomize/blob/release-kustomize-v4.0/api/types/kustomization.go#L106) | 이 리스트 내 각각의 항목은 시크릿을 생성한다 |
820
-
| generatorOptions | [GeneratorOptions](https://github.com/kubernetes-sigs/kustomize/blob/release-kustomize-v4.0/api/types/kustomization.go#L109) | 모든 configMapGenerator와 secretGenerator의 동작을 변경 |
821
-
| bases | []string | 이 리스트 내 각각의 항목은 kustomization.yaml 파일을 가지는 디렉터리로 해석되어져야 한다 |
822
-
| patchesStrategicMerge | []string | 이 리스트 내 각각의 항목은 쿠버네티스 오브젝트의 전략적 병합 패치로 해석되어져야 한다 |
823
-
| patchesJson6902 | [][Json6902](https://github.com/kubernetes-sigs/kustomize/blob/release-kustomize-v4.0/api/types/patchjson6902.go#L8) | 이 리스트 내 각각의 항목은 쿠버네티스 오브젝트와 Json 패치로 해석되어져야 한다 |
824
-
| vars | [][Var](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/var.go#L31) | 각각의 항목은 한 리소스의 필드에서 텍스트를 캡쳐한다 |
825
-
| images | [][Image](https://github.com/kubernetes-sigs/kustomize/tree/master/api/types/image.go#L23) | 각각의 항목은 패치를 생성하지 않고 한 이미지의 name, tags 그리고/또는 digest를 수정한다 |
826
-
| configurations | []string | 이 리스트 내 각각의 항목은 [Kustomize 변환 설정](https://github.com/kubernetes-sigs/kustomize/tree/master/examples/transformerconfigs)을 포함하는 파일로 해석되어져야 한다 |
827
-
| crds | []string | 이 리스트 내 각각의 항목은 쿠버네티스 타입에 대한 OpenAPI 정의 파일로 해석되어져야 한다 |
956
+
| resources | []string | 이 리스트 내 각각의 항목은 반드시 존재하는 리소스 구성 파일로 해석되어야 한다. |
957
+
| configMapGenerator | [][ConfigMapArgs](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/configmapargs.go#L7) | 이 리스트의 각 항목은 컨피그맵을 생성한다. |
958
+
| secretGenerator | [][SecretArgs](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/secretargs.go#L7) | 이 리스트의 각 항목은 시크릿을 생성한다. |
959
+
| generatorOptions | [GeneratorOptions](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/generatoroptions.go#L7) | 모든 컨피그맵 및 시크릿 생성자(generator)의 동작을 수정한다. |
960
+
| bases | []string | 이 리스트 내 각각의 항목은 kustomization.yaml 파일을 가지는 디렉터리로 해석되어야 한다. |
961
+
| patchesStrategicMerge | []string | 이 리스트 내 각각의 항목은 쿠버네티스 오브젝트의 전략적 병합 패치로 해석되어야 한다. |
962
+
| patchesJson6902 | [][Patch](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/patch.go#L10) | 이 리스트 내 각각의 항목은 쿠버네티스 오브젝트와 Json 패치로 해석되어야 한다. |
963
+
| vars | [][Var](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/var.go#L19) | 각각의 항목은 한 리소스의 필드에서 텍스트를 캡쳐한다. |
964
+
| images | [][Image](https://github.com/kubernetes-sigs/kustomize/blob/master/api/types/image.go#L8) | 각각의 항목은 패치를 생성하지 않고 하나의 이미지에 대한 name, tags 그리고/또는 digest를 수정한다. |
965
+
| configurations | []string | 이 리스트 내 각각의 항목은 [Kustomize 변환 설정](https://github.com/kubernetes-sigs/kustomize/tree/master/examples/transformerconfigs)을 포함하는 파일로 해석되어야 한다. |
966
+
| crds | []string | 이 리스트 내 각각의 항목은 쿠버네티스 타입에 대한 OpenAPI 정의 파일로 해석되어야 한다. |
0 commit comments