mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-10 08:20:59 +00:00
update:docs/zh/fields.md
This commit is contained in:
@@ -1,6 +1,18 @@
|
||||
# Kustomization 文件字段
|
||||
|
||||
介绍 [kustomization](../glossary.md#kustomization) 文件中各字段的含义。
|
||||
[field-name-namespace]: ../plugins/builtins.md#field-name-namespace
|
||||
[field-name-images]: ../plugins/builtins.md#field-name-images
|
||||
[field-names-namePrefix-nameSuffix]: ../plugins/builtins.md#field-names-namePrefix-nameSuffix
|
||||
[field-name-patches]: ../plugins/builtins.md#field-name-patches
|
||||
[field-name-patchesStrategicMerge]: ../plugins/builtins.md#field-name-patchesStrategicMerge
|
||||
[field-name-patchesJson6902]: ../plugins/builtins.md#field-name-patchesJson6902
|
||||
[field-name-replicas]: ../plugins/builtins.md#field-name-replicas
|
||||
[field-name-secretGenerator]: ../plugins/builtins.md#field-name-secretGenerator
|
||||
[field-name-commonLabels]: ../plugins/builtins.md#field-name-commonLabels
|
||||
[field-name-commonAnnotations]: ../plugins/builtins.md#field-name-commonAnnotations
|
||||
[field-name-configMapGenerator]: ../plugins/builtins.md#field-name-configMapGenerator
|
||||
|
||||
介绍 [kustomization.yaml](../glossary.md#kustomization) 配置文件中各字段的含义。
|
||||
|
||||
## Resources
|
||||
|
||||
@@ -8,36 +20,36 @@
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
|[resources](#resources) | list | 包含 k8s API 对象的文件,或其他包含 kustomizations 文件的目录。 |
|
||||
|[CRDs](#crds)| list | CDR 文件,以允许在资源列表中指定自定义资源。 |
|
||||
|[resources](#resources) | list | 包含 k8s API 对象的文件,或其他包含 `kustomization.yaml` 文件的目录。 |
|
||||
|[CRDs](#crds)| list | CDR 文件,允许在资源列表中指定自定义资源。 |
|
||||
|
||||
## Generators
|
||||
|
||||
生成可定制的对象。
|
||||
资源生成生成器。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
|[configMapGenerator](#configmapgenerator)| list | 列表中的每个条目都将创建一个 ConfigMap (它是n个 ConfigMap 的生成器)。 |
|
||||
|[secretGenerator](#secretgenerator)| list | 此列表中的每个条目都将创建一个 Secret 资源(它是n个 secrets 的生成器)。 |
|
||||
|[configMapGenerator](#configmapgenerator)| list | 列表中的每个条目都将生成一个 ConfigMap (它可以生成是 n 个 ConfigMap)。 |
|
||||
|[secretGenerator](#secretgenerator)| list | 列表中的每个条目都将生成一个 Secret(它可以是 n 个 Secrets)。 |
|
||||
|[generatorOptions](#generatoroptions)| string | generatorOptions 可以修改所有 ConfigMapGenerator 和 SecretGenerator 的行为。 |
|
||||
|[generators](#generators)| list | [插件](../plugins)配置文件。 |
|
||||
|
||||
## Transformers
|
||||
|
||||
可用的转换。
|
||||
资源字段转换项。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| [commonLabels](#commonlabels) | string | 为所有资源和 selectors 增加 Labels 。 |
|
||||
| [commonAnnotations](#commonannotations) | string | 为所有资源增加 Annotations 。 |
|
||||
| [images](#images) | list | 修改镜像的名称、tag 或 image digest ,而无需使用 patches 。 |
|
||||
| [images](#images) | list | 无需使用 patches,即可修改镜像的名称、tag 或 image digest。 |
|
||||
| [inventory](#inventory) | struct | 用于生成一个包含清单信息的对象。 |
|
||||
| [namespace](#namespace) | string | 为所有 resources 添加 namespace 。 |
|
||||
| [namePrefix](#nameprefix) | string | 该字段的值将添加在所有资源的名称之前。 |
|
||||
| [nameSuffix](#namesuffix) | string | 该字段的值将添加在所有资源的名称后面。 |
|
||||
| [namePrefix](#nameprefix) | string | 为所有资源的名称添加前缀。 |
|
||||
| [nameSuffix](#namesuffix) | string | 为所有资源的名称添加后缀。 |
|
||||
| [replicas](#replicas) | list | 修改资源的副本数。 |
|
||||
| [patchesStrategicMerge](#patchesstrategicmerge) | list | 此列表中的每个条目都应可以解析为部分或完整的资源定义文件。 |
|
||||
| [patchesJson6902](#patchesjson6902) | list | 列表中的每个条目都应可以解析为 kubernetes 对象和将应用于该对象的 JSON patch 。 |
|
||||
| [patchesJson6902](#patchesjson6902) | list | 列表中的每个条目都应可以解析为 Kubernetes 对象和将应用于该对象的 JSON patch 。 |
|
||||
| [transformers](#transformers) | list | [插件](../plugins)配置文件。 |
|
||||
|
||||
## Meta
|
||||
@@ -46,7 +58,7 @@
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| [vars](#vars) | string | 获取一个对象中的字段并插入到另外的对象中。 |
|
||||
| [vars](#vars) | string | 将一个对象中的字段值插入另一个对象中。 |
|
||||
| [apiVersion](#apiversion) | string | [k8s metadata] 字段。 |
|
||||
| [kind](#kind) | string | [k8s metadata] 字段。 |
|
||||
|
||||
@@ -67,59 +79,26 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
|
||||
### commonLabels
|
||||
|
||||
为所有资源和 selectors 增加 Labels
|
||||
|
||||
```
|
||||
commonLabels:
|
||||
someName: someValue
|
||||
owner: alice
|
||||
app: bingo
|
||||
```
|
||||
详见 [field-name-commonLabels]。
|
||||
|
||||
### commonAnnotations
|
||||
|
||||
为所有资源增加 Annotations ,和 labels 一样是 key:value 的键值对。
|
||||
|
||||
```
|
||||
commonAnnotations:
|
||||
oncallPager: 800-555-1212
|
||||
```
|
||||
详见 [field-name-commonAnnotations].
|
||||
|
||||
### configMapGenerator
|
||||
|
||||
列表中的每个条目都将创建一个 ConfigMap (它是n个 ConfigMap 的生成器)。
|
||||
|
||||
下面的示例创建了两个 ConfigMaps:
|
||||
|
||||
- 一个具有给定文件的名称和内容
|
||||
- 另一个包含 key/value 键值对数据
|
||||
|
||||
每个 configMapGenerator 项都可以使用 `behavior: [create|replace|merge]` 参数。
|
||||
|
||||
允许 overlay 从父级修改或替换现有的 configMap。
|
||||
|
||||
```
|
||||
configMapGenerator:
|
||||
- name: myJavaServerProps
|
||||
files:
|
||||
- application.properties
|
||||
- more.properties
|
||||
- name: myJavaServerEnvVars
|
||||
literals:
|
||||
- JAVA_HOME=/opt/java/jdk
|
||||
- JAVA_TOOL_OPTIONS=-agentlib:hprof
|
||||
```
|
||||
详见 [field-name-configMapGenerator].
|
||||
|
||||
### crds
|
||||
|
||||
此列表中的每个条目都应该是自定义资源定义(CRD)文件的相对路径。
|
||||
|
||||
该字段的存在是为了让 kustomize 知道用户自定义的 CRD ,并对这些类型中的对象应用适当的转换。
|
||||
该字段的存在是为了让 kustomize 识别用户自定义的 CRD ,并对这些类型中的对象应用适当的转换。
|
||||
|
||||
典型用例:CRD 引用 ConfigMap 对象
|
||||
|
||||
在 kustomization 中,ConfigMap 对象名称可能会通过 namePrefix 、nameSuffix 或 hashing 来更改 CRD 对象中此 ConfigMap 对象的名称,
|
||||
引用时需要以相同的方式使用 namePrefix 、 nameSuffix 或 hashing 来进行更新。
|
||||
在 kustomization 中,ConfigMap 对象名称可能会通过 `namePrefix` 、`nameSuffix` 或 `hashing` 来更改 CRD 对象中该 ConfigMap 对象的名称,
|
||||
引用时需要以相同的方式使用 `namePrefix` 、 `nameSuffix` 或 `hashing` 来进行更新。
|
||||
|
||||
Annotations 可以放入 openAPI 的定义中:
|
||||
|
||||
@@ -140,7 +119,7 @@ crds:
|
||||
|
||||
### generatorOptions
|
||||
|
||||
generatorOptions 修改所有 [ConfigMapGenerator](#configmapgenerator) 和 [SecretGenerator](#secretgenerator) 的行为。
|
||||
generatorOptions 可以修改所有 [ConfigMapGenerator](#configmapgenerator) 和 [SecretGenerator](#secretgenerator) 的行为。
|
||||
|
||||
```
|
||||
generatorOptions:
|
||||
@@ -166,41 +145,7 @@ generators:
|
||||
|
||||
### images
|
||||
|
||||
修改镜像的名称、tag 或 image digest ,而无需使用 patches 。例如,对于这种 kubernetes Deployment 片段:
|
||||
|
||||
```
|
||||
containers:
|
||||
- name: mypostgresdb
|
||||
image: postgres:8
|
||||
- name: nginxapp
|
||||
image: nginx:1.7.9
|
||||
- name: myapp
|
||||
image: my-demo-app:latest
|
||||
- name: alpine-app
|
||||
image: alpine:3.7
|
||||
```
|
||||
|
||||
可以通过以下方式更改 `image` :
|
||||
|
||||
- `postgres:8` to `my-registry/my-postgres:v1`,
|
||||
- nginx tag `1.7.9` to `1.8.0`,
|
||||
- image name `my-demo-app` to `my-app`,
|
||||
- alpine's tag `3.7` to a digest value
|
||||
|
||||
可以在 *kustomization* 中添加以下内容:
|
||||
|
||||
```
|
||||
images:
|
||||
- name: postgres
|
||||
newName: my-registry/my-postgres
|
||||
newTag: v1
|
||||
- name: nginx
|
||||
newTag: 1.8.0
|
||||
- name: my-demo-app
|
||||
newName: my-app
|
||||
- name: alpine
|
||||
digest: sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d3
|
||||
```
|
||||
详见 [field-name-images]。
|
||||
|
||||
### inventory
|
||||
|
||||
@@ -217,120 +162,31 @@ kind: Kustomization
|
||||
|
||||
### namespace
|
||||
|
||||
为所有 resources 添加 namespace 。
|
||||
|
||||
```
|
||||
namespace: my-namespace
|
||||
```
|
||||
详见 [field-name-namespace]。
|
||||
|
||||
### namePrefix
|
||||
|
||||
该字段的值将添加在所有资源的名称之前,例如 将资源名称 `wordpress` 变为 `alices-wordpress` 。
|
||||
|
||||
```
|
||||
namePrefix: alices-
|
||||
```
|
||||
详见 [field-names-namePrefix-nameSuffix]。
|
||||
|
||||
### nameSuffix
|
||||
|
||||
该字段的值将添加在所有资源的名称后面,例如 将资源名称 `wordpress` 变为 `wordpress-v2` 。
|
||||
详见 [field-names-namePrefix-nameSuffix]。
|
||||
|
||||
如果资源类型为 ConfigMap 或 Secret ,则在哈希值之前附加后缀。
|
||||
### patches
|
||||
|
||||
```
|
||||
nameSuffix: -v2
|
||||
```
|
||||
详见 [field-name-patches]。
|
||||
|
||||
### patchesStrategicMerge
|
||||
|
||||
此列表中的每个条目都应可以解析为部分或完整的资源定义文件。
|
||||
|
||||
这些(也可能是部分的)资源文件中的 name 必须与已经通过 `resources` 加载的 name 字段匹配,或者通过 `bases` 中的 name 字段匹配。这些条目将用于 _patch_(修改)已知资源。
|
||||
|
||||
推荐使用小的 patches,例如:修改内存的 request/limit,更改 ConfigMap 中的 env 变量等小的 patches 易于维护和查看,并且易于在 overlays 中混合使用。
|
||||
|
||||
```
|
||||
patchesStrategicMerge:
|
||||
- service_port_8888.yaml
|
||||
- deployment_increase_replicas.yaml
|
||||
- deployment_increase_memory.yaml
|
||||
```
|
||||
详见 [field-name-patchesStrategicMerge]。
|
||||
|
||||
### patchesJson6902
|
||||
|
||||
patchesJson6902 列表中的每个条目都应可以解析为 kubernetes 对象和将应用于该对象的 JSON patch
|
||||
|
||||
JSON patch 的文档地址:https://tools.ietf.org/html/rfc6902
|
||||
|
||||
目标字段指向的 kubernetes 对象的 group、 version、 kind、 name 和 namespace 在同一 kustomization 内 path 字段内容是 JSON patch 文件的相对路径。
|
||||
|
||||
patch 文件中的内容可以如下这种 JSON 格式:
|
||||
|
||||
```
|
||||
[
|
||||
{"op": "add", "path": "/some/new/path", "value": "value"},
|
||||
{"op": "replace", "path": "/some/existing/path", "value": "new value"}
|
||||
]
|
||||
```
|
||||
|
||||
也可以使用 YAML 格式表示:
|
||||
|
||||
```
|
||||
- op: add
|
||||
path: /some/new/path
|
||||
value: value
|
||||
- op: replace
|
||||
path: /some/existing/path
|
||||
value: new value
|
||||
```
|
||||
|
||||
```
|
||||
patchesJson6902:
|
||||
- target:
|
||||
version: v1
|
||||
kind: Deployment
|
||||
name: my-deployment
|
||||
path: add_init_container.yaml
|
||||
- target:
|
||||
version: v1
|
||||
kind: Service
|
||||
name: my-service
|
||||
path: add_service_annotation.yaml
|
||||
```
|
||||
详见 [field-name-patchesJson6902]。
|
||||
|
||||
### replicas
|
||||
|
||||
修改资源的副本数。
|
||||
|
||||
例如:对于如下 kubernetes Deployment 片段:
|
||||
|
||||
```
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deployment-name
|
||||
spec:
|
||||
replicas: 3
|
||||
```
|
||||
|
||||
在 kustomization 中添加以下内容,将副本数更改为5:
|
||||
|
||||
```
|
||||
replicas:
|
||||
- name: deployment-name
|
||||
count: 5
|
||||
```
|
||||
|
||||
该字段内容为列表,所以可以同时修改许多资源。
|
||||
|
||||
#### Limitation
|
||||
|
||||
由于这个声明无法设置 `kind:` 或 `group:` 它将匹配任何可以匹配名称的 `group` 和 `kind` ,并且它是以下之一:
|
||||
- `Deployment`
|
||||
- `ReplicationController`
|
||||
- `ReplicaSet`
|
||||
- `StatefulSet`
|
||||
|
||||
对于更复杂的用例,请使用 patch 。
|
||||
详见 [field-name-replicas]。
|
||||
|
||||
### resources
|
||||
|
||||
@@ -348,8 +204,7 @@ resource:
|
||||
|
||||
将以深度优先的顺序读取和处理资源。
|
||||
|
||||
|
||||
文件应包含 YAML 格式的 k8s 资源。一个资源描述文件可以含有多个由(“---”)分隔的资源。
|
||||
文件应包含 YAML 格式的 k8s 资源。一个资源描述文件可以含有多个由(`---`)分隔的资源。
|
||||
应该包含 `resources` 字段的 kustomization 文件的指定文件目录的相对路径。
|
||||
|
||||
[hashicorp URL]: https://github.com/hashicorp/go-getter#url-format
|
||||
@@ -358,31 +213,11 @@ resource:
|
||||
|
||||
### secretGenerator
|
||||
|
||||
此列表中的每个条目都将创建一个 Secret 资源(它是n个 secrets 的生成器)。
|
||||
|
||||
```
|
||||
secretGenerator:
|
||||
- name: app-tls
|
||||
files:
|
||||
- secret/tls.cert
|
||||
- secret/tls.key
|
||||
type: "kubernetes.io/tls"
|
||||
- name: app-tls-namespaced
|
||||
# you can define a namespace to generate secret in, defaults to: "default"
|
||||
namespace: apps
|
||||
files:
|
||||
- tls.crt=catsecret/tls.cert
|
||||
- tls.key=secret/tls.key
|
||||
type: "kubernetes.io/tls"
|
||||
- name: env_file_secret
|
||||
envs:
|
||||
- env.txt
|
||||
type: Opaque
|
||||
```
|
||||
详见 [field-name-secretGenerator]。
|
||||
|
||||
### vars
|
||||
|
||||
Vars 用于从一个 resource 字段中获取文本,并将该文本插入指定位置 - 反射功能。
|
||||
Vars 用于从一个 resource 字段中获取值,并将该值插入指定位置 - 反射功能。
|
||||
|
||||
例如,假设需要在容器的 command 中指定了 Service 对象的名称,并在容器的 env 中指定了 Secret 对象的名称来确保以下内容可以正常工作:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user