diff --git a/docs/fields.md b/docs/fields.md index ff3439fc6..946e7229d 100644 --- a/docs/fields.md +++ b/docs/fields.md @@ -307,12 +307,14 @@ The content in this patch file can be either in JSON format as or in YAML format as +``` - op: add path: /some/new/path value: value -- op:replace +- op: replace path: /some/existing/path value: new value +``` ``` patchesJson6902: @@ -356,6 +358,7 @@ be modified at the same time. #### Limitation + As this declaration does not take in a `kind:` nor a `group:` it will match any `group` and `kind` that has a matching name and that is one of: diff --git a/docs/zh/README.md b/docs/zh/README.md index 11e553575..21d52a562 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -8,8 +8,7 @@ * [术语表](../glossary.md) - 用于消除术语歧义。 - * [kustomization.yaml](kustomization.yaml) - 包含 - [kustomization](../glossary.md#kustomization) 所有字段的示例文件。 + * [Kustomize 字段](fields.md) - 介绍 [kustomization](../glossary.md#kustomization) 文件中各字段的含义。 * [插件](../plugins) - 使用自定义的资源生成器和资源转换器来拓展 kustomize 功能。 @@ -20,6 +19,8 @@ ## 发行说明 + * [3.0](../v3.0.0.md) - 2019年6月下旬,插件开发者发布。 + * [2.1](../v2.1.0.md) - 2019年6月18日 插件、有序资源等。 diff --git a/docs/zh/fields.md b/docs/zh/fields.md new file mode 100644 index 000000000..1aedf7916 --- /dev/null +++ b/docs/zh/fields.md @@ -0,0 +1,436 @@ +# Kustomization 文件字段 + +介绍 [kustomization](../glossary.md#kustomization) 文件中各字段的含义。 + +## Resources + +现有可定制对象。 + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +|[resources](#resources) | list | 包含 k8s API 对象的文件,或其他包含 kustomizations 文件的目录。 | +|[CRDs](#crds)| list | CDR 文件,以允许在资源列表中指定自定义资源。 | + +## Generators + +生成可定制的对象。 + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +|[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 。 | +| [inventory](#inventory) | struct | 用于生成一个包含清单信息的对象。 | +| [namespace](#namespace) | string | 为所有 resources 添加 namespace 。 | +| [namePrefix](#nameprefix) | string | 该字段的值将添加在所有资源的名称之前。 | +| [nameSuffix](#namesuffix) | string | 该字段的值将添加在所有资源的名称后面。 | +| [replicas](#replicas) | list | 修改资源的副本数。 | +| [patchesStrategicMerge](#patchesstrategicmerge) | list | 此列表中的每个条目都应可以解析为部分或完整的资源定义文件。 | +| [patchesJson6902](#patchesjson6902) | list | 列表中的每个条目都应可以解析为 kubernetes 对象和将应用于该对象的 JSON patch 。 | +| [transformers](#transformers) | list | [插件](../plugins)配置文件。 | + +## Meta + +[k8s metadata]: https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| [vars](#vars) | string | 获取一个对象中的字段并插入到另外的对象中。 | +| [apiVersion](#apiversion) | string | [k8s metadata] 字段。 | +| [kind](#kind) | string | [k8s metadata] 字段。 | + +---- + +### apiVersion + +该字段默认值为: +``` +apiVersion: kustomize.config.k8s.io/v1beta1 +``` + +### bases + +`bases` 字段在 v2.1.0 中已被弃用。 + +该条目已被移动到 [resources](#resources) 字段中。 + +### commonLabels + +为所有资源和 selectors 增加 Labels + +``` +commonLabels: + someName: someValue + owner: alice + app: bingo +``` + +### commonAnnotations + +为所有资源增加 Annotations ,和 labels 一样是 key:value 的键值对。 + +``` +commonAnnotations: + oncallPager: 800-555-1212 +``` + +### 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 +``` + +### crds + +此列表中的每个条目都应该是自定义资源定义(CRD)文件的相对路径。 + +该字段的存在是为了让 kustomize 知道用户自定义的 CRD ,并对这些类型中的对象应用适当的转换。 + +典型用例:CRD 引用 ConfigMap 对象 + +在 kustomization 中,ConfigMap 对象名称可能会通过 namePrefix 、nameSuffix 或 hashing 来更改 CRD 对象中此 ConfigMap 对象的名称, +引用时需要以相同的方式使用 namePrefix 、 nameSuffix 或 hashing 来进行更新。 + +Annotations 可以放入 openAPI 的定义中: + +- "x-kubernetes-annotation": "" +- "x-kubernetes-label-selector": "" +- "x-kubernetes-identity": "" +- "x-kubernetes-object-ref-api-version": "v1", +- "x-kubernetes-object-ref-kind": "Secret", +- "x-kubernetes-object-ref-name-key": "name", + +``` + +crds: +- crds/typeA.yaml +- crds/typeB.yaml +``` + + +### generatorOptions + +generatorOptions 修改所有 [ConfigMapGenerator](#configmapgenerator) 和 [SecretGenerator](#secretgenerator) 的行为。 + +``` +generatorOptions: + # 为所有生成的资源添加 labels + labels: + kustomize.generated.resources: somevalue + # 为所有生成的资源添加 annotations + annotations: + kustomize.generated.resource: somevalue + # disableNameSuffixHash 为 true 时将禁止默认的在名称后添加哈希值后缀的行为 + disableNameSuffixHash: true +``` + +### generators + +[插件](../plugins)生成器配置文件列表。 + +``` +generators: +- mySecretGeneratorPlugin.yaml +- myAppGeneratorPlugin.yaml +``` + +### 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 +``` + +### inventory + +详见 [inventory object](inventory_object.md)。 + +### kind + +该字段默认值为: + +``` +kind: Kustomization +``` + + +### namespace + +为所有 resources 添加 namespace 。 + +``` +namespace: my-namespace +``` + +### namePrefix + +该字段的值将添加在所有资源的名称之前,例如 将资源名称 `wordpress` 变为 `alices-wordpress` 。 + +``` +namePrefix: alices- +``` + +### nameSuffix + +该字段的值将添加在所有资源的名称后面,例如 将资源名称 `wordpress` 变为 `wordpress-v2` 。 + +如果资源类型为 ConfigMap 或 Secret ,则在哈希值之前附加后缀。 + +``` +nameSuffix: -v2 +``` + +### 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 +``` + +### 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 +``` + +### 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 。 + +### resources + +该条目可以是指向本地目录的相对路径,也可以是指向远程仓库中的目录的 URL,例如: + +``` +resource: +- myNamespace.yaml +- sub-dir/some-deployment.yaml +- ../../commonbase +- github.com/kubernetes-sigs/kustomize//examples/multibases?ref=v1.0.6 +- deployment.yaml +- github.com/kubernets-sigs/kustomize//examples/helloWorld?ref=test-branch +``` + +将以深度优先的顺序读取和处理资源。 + + +文件应包含 YAML 格式的 k8s 资源。一个资源描述文件可以含有多个由(“---”)分隔的资源。 +应该包含 `resources` 字段的 kustomization 文件的指定文件目录的相对路径。 + +[hashicorp URL]: https://github.com/hashicorp/go-getter#url-format + +目录规范可以是相对、绝对或部分的 URL。URL 规范应遵循 [hashicorp URL] 格式。该目录必须包含 `kustomization.yaml` 文件。 + +### 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 +``` + +### vars + +Vars 用于从一个 resource 字段中获取文本,并将该文本插入指定位置 - 反射功能。 + +例如,假设需要在容器的 command 中指定了 Service 对象的名称,并在容器的 env 中指定了 Secret 对象的名称来确保以下内容可以正常工作: + +``` +containers: + - image: myimage + command: ["start", "--host", "$(MY_SERVICE_NAME)"] + env: + - name: SECRET_TOKEN + value: $(SOME_SECRET_NAME) +``` + +则可以在 `vars:` 中添加如下内容: + +``` +vars: +- name: SOME_SECRET_NAME + objref: + kind: Secret + name: my-secret + apiVersion: v1 +- name: MY_SERVICE_NAME + objref: + kind: Service + name: my-service + apiVersion: v1 + fieldref: + fieldpath: metadata.name +- name: ANOTHER_DEPLOYMENTS_POD_RESTART_POLICY + objref: + kind: Deployment + name: my-deployment + apiVersion: apps/v1 + fieldref: + fieldpath: spec.template.spec.restartPolicy +``` +var 是包含该对象的变量名、对象引用和字段引用的元组。 + +字段引用是可选的,默认为 `metadata.name`,这是正常的默认值,因为 kustomize 用于生成或修改 resources 的名称。 + +在撰写本文档时,仅支持字符串类型字段,不支持 ints,bools,arrays 等。例如,在某些pod模板的容器编号2中提取镜像的名称是不可能的。 + +变量引用,即字符串 '$(FOO)' ,只能放在 kustomize 配置指定的特定对象的特定字段中。 + +关于 vars 的默认配置数据可以查看: +https://github.com/kubernetes-sigs/kustomize/blob/master/pkg/transformers/config/defaultconfig/varreference.go + +默认目标是所有容器 command args 和 env 字段。 + +Vars _不应该_ 被用于 kustomize 已经处理过的配置中插入 names 。 +例如, Deployment 可以通过 name 引用 ConfigMap ,如果 kustomize 更改 ConfigMap 的名称,则知道更改 Deployment 中的引用的 name 。 diff --git a/docs/zh/kustomization.yaml b/docs/zh/kustomization.yaml deleted file mode 100644 index 564e5cf28..000000000 --- a/docs/zh/kustomization.yaml +++ /dev/null @@ -1,287 +0,0 @@ -# Copyright 2018 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ---------------------------------------------------- -# Example kustomization.yaml content. -# -# This file declares the customization provided by -# the kustomize program. -# -# Since customization is, by definition, _custom_, -# there are no sensible default values for the fields -# in this file. -# -# The field values used below are merely examples, not -# to be copied literally. The values won't work if -# they happen to be references to external files that -# don't exist. -# -# In practice, fields with no value should simply be -# omitted from kustomization.yaml to reduce the content -# visible in configuration reviews. -# ---------------------------------------------------- -# Kustomization 的 apiVersion 和 kind -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# 为所有 resources 添加 namespace -namespace: my-namespace - -# 该字段的值将添加在所有资源的名称之前 -# 例如 将资源名称 “wordpress” 变为 “alices-wordpress” -namePrefix: alices- - -# 该字段的值将添加在所有资源的名称后面 -# 例如 将资源名称 “wordpress” 变为 “wordpress-v2” -# 如果资源类型为 ConfigMap 或 Secret ,则在哈希值之前附加后缀 -nameSuffix: -v2 - -# 为所有资源和 selectors 增加 Labels -commonLabels: - someName: someValue - owner: alice - app: bingo - -# 和 Labels 一样, 增加 Annotations -# 为 key:value 键值对 -commonAnnotations: - oncallPager: 800-555-1212 - -# 此列表中的每条记录都必须是一个存在的 YAML 资源描述文件 -# 一个 YAML 资源描述文件可以含有多个由(“---”)分隔的资源。 -# kustomize 将读取这些YAML文件中的资源,对其进行修改并 -# 发布在 kustomize 的输出中。 -# -# 此列表中的每个条目都应解析为包含 kustomization 文件的目录,否则定制将失败 -# -# 该条目可以是指向本地目录的相对路径 -# 也可以是指向远程仓库中的目录的 URL -# URL 应该遵循 hashicorp/go-getter 中的 URL 格式 -# https://github.com/hashicorp/go-getter#url-format -# -# 此字段的存在意味着此文件(您正在阅读的文件)是 _overlay_ -# 它将进一步定制这些来自 _bases_ 文件中的配置 -# -# 典型用例:开发,演示和生产环境 -# 这些环境大部分相同但有些关键方式存在差异(镜像标签,一些服务器参数等,与公共 base 不同的配置) -resources: -- some-service.yaml -- sub-dir/some-deployment.yaml -- ../../base -- github.com/kubernetes-sigs/kustomize/examples/multibases?ref=v1.0.6 -- github.com/Liujingfang1/mysql -- github.com/Liujingfang1/kustomize/examples/helloWorld?ref=test-branch - -# 列表中的每个条目都将创建一个 ConfigMap (它是n个 ConfigMap 的生成器) -# 下面的示例创建了两个 ConfigMaps -# 一个具有给定文件的名称和内容 -# 另一个包含 key/value 键值对数据 -# 每个 configMapGenerator 项都可以使用 [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 - -# 此列表中的每个条目都会导致创建一个Secret资源(n个 secrets 的生成器) -secretGenerator: -- name: app-tls - files: - - secret/tls.cert - - secret/tls.key - type: "kubernetes.io/tls" -- name: app-tls-namespaced - # 你可以给生成的 secret 定义一个 namespace ,默认为 ”default“ - namespace: apps - files: - - tls.crt=catsecret/tls.cert - - tls.key=secret/tls.key - type: "kubernetes.io/tls" -- name: env_file_secret - # 文件路径以 k=v 键值对的形式,每行一个键值对 - envs: - - env.txt - type: Opaque - -# generatorOptions 修改所有 ConfigMapGenerator 和 SecretGenerator 的行为 -generatorOptions: - # 为所有生成的资源添加 labels - labels: - kustomize.generated.resources: somevalue - # 为所有生成的资源添加 annotations - annotations: - kustomize.generated.resource: somevalue - # disableNameSuffixHash 为 true 时将禁止默认的在名称后添加哈希值后缀的行为 - disableNameSuffixHash: true - -# 此列表中的每个条目都应可以解析为部分或完整的资源定义文件 -# -# 这些(也可能是部分的)资源文件中的 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 - -# 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 - -# 此列表中的每个条目都应该是 openAPI 定义中自定义资源定义(CRD)文件的相对路径 -# -# 该字段的存在是为了让 kustomize 知道用户自定义的 CRD -# 并对这些类型中的对象应用适当的转换 -# -# 典型用例:CRD 引用 ConfigMap 对象 -# 在 kustomization 中,ConfigMap 对象名称可能会通过 namePrefix 、nameSuffix 或 hashing 来更改 CRD 对象中此 ConfigMap 对象的名称 -# 引用时需要以相同的方式使用 namePrefix 、 nameSuffix 或 hashing 来进行更新 -# -# Annotations 可以放入 openAPI 的定义中: -# "x-kubernetes-annotation": "" -# "x-kubernetes-label-selector": "" -# "x-kubernetes-identity": "" -# "x-kubernetes-object-ref-api-version": "v1", -# "x-kubernetes-object-ref-kind": "Secret", -# "x-kubernetes-object-ref-name-key": "name", -crds: -- crds/typeA.json -- crds/typeB.json - -# Vars 用于从一个 resource 字段中获取文本 -# 并将该文本插入指定位置 -# -# 例如,假设需要在容器的 command 中指定了 Service 对象的名称 -# 并在容器的 env 中指定了 Secret 对象的名称 -# 来确保以下内容可以正常工作: -# ``` -# containers: -# - image: myimage -# command: ["start", "--host", "$(MY_SERVICE_NAME)"] -# env: -# - name: SECRET_TOKEN -# value: $(SOME_SECRET_NAME) -# ``` -# -# 则可以在 `vars:` 中添加如下内容: -# -vars: - - name: SOME_SECRET_NAME - objref: - kind: Secret - name: my-secret - apiVersion: v1 - - name: MY_SERVICE_NAME - objref: - kind: Service - name: my-service - apiVersion: v1 - fieldref: - fieldpath: metadata.name - - name: ANOTHER_DEPLOYMENTS_POD_RESTART_POLICY - objref: - kind: Deployment - name: my-deployment - apiVersion: apps/v1 - fieldref: - fieldpath: spec.template.spec.restartPolicy -# -# var 是包含该对象的变量名、对象引用和字段引用的元组 -# -# 字段引用是可选的,默认为 `metadata.name` -# 这是正常的默认值,因为 kustomize 用于生成或修改 resources 的名称 -# -# 在撰写本文档时,仅支持字符串类型字段 -# 不支持 ints,bools,arrays 等 -# -# 变量引用,即字符串 '$(FOO)' ,只能放在 kustomize 配置指定的特定对象的特定字段中 -# -# 关于 vars 的默认配置数据可以查看: -# https://github.com/kubernetes-sigs/kustomize/blob/master/pkg/transformers/config/defaultconfig/varreference.go -# 默认目标是所有容器 command args 和 env 字段 -# -# Vars _不应该_ 被用于 kustomize 已经处理过的配置中插入 names -# 例如, Deployment 可以通过 name 引用 ConfigMap -# 如果 kustomize 更改 ConfigMap 的名称,则知道更改 Deployment 中的引用的 name - -# 修改镜像的名称、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` 修改为 `my-registry/my-postgres:v1`, -# - 将 nginx 的 tag 从 `1.7.9` 修改为 `1.8.0`, -# - 将 镜像名称从 `my-demo-app` 修改为 `my-app`, -# - 将 alpine 的 tag 从 `3.7` 修改为 digest 值 -# -# 可以在 *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