第 12 章 MachineOSConfig [machineconfiguration.openshift.io/v1]
- 描述
- MachineOSConfig 描述了由 MCO 兼容性级别 1 管理的构建过程配置:在主发行版本中至少为 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
12.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 描述了 machineosconfig 的配置 |
|
| status 描述了 machineosconfig 的状态 |
12.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 描述了 machineosconfig 的配置
- 类型
-
object
- 必填
-
imageBuilder
-
machineConfigPool
-
renderedImagePushSecret
-
renderedImagePushSpec
-
属性 | 类型 | 描述 |
---|---|---|
|
| baseImagePullSecret 是用来拉取基础镜像的 secret。如果提供,则必须在 openshift-machine-config-operator 命名空间中。如果没有指定,则默认为使用集群范围的 pull secret。这会在集群安装过程中为集群提供,并作为 secret 在 openshift-config 命名空间中提供。 |
|
| Containerfile 描述了用户指定了要构建到镜像中的自定义数据。这通常也称为 Dockerfile,您可以将其视为这样。内容是 Dockerfile 的内容。有关 spec 参考,请参阅 https://github.com/containers/common/blob/main/docs/Containerfile.5.md。这是按架构名称(如 AMD64)索引的列表,允许为每个架构指定一个 containerFile,最多为 4。 |
|
| MachineOSContainerfile 包含用户要在镜像中构建的所有自定义内容 |
|
| ImageBuilder 描述了此 MachineOSConfig 触发的每个构建中将使用哪个镜像构建器。目前支持的类型:作业 |
|
| MachineConfigPool 是构建所在的池。Machine Config Operator 将执行构建,并将构建的镜像推出到指定的池。 |
|
| renderedImagePushSecret 是用来连接到用户 registry 的 secret。最终的镜像推送和 pull secret 应该分开,并假定主体最小特权。只有托管 MachineConfigController Pod 的节点才会存在具有写入特权的 push secret。所有节点上都需要具有读取只读权限的 pull secret。通过分离两个 secret,写入凭证的风险会降低。 |
|
| renderedImagePushSpec 描述了最终镜像的位置。MachineOSConfig 对象将在集群镜像 registry 配置中使用。如果要使用特定于 registry.conf 的镜像或任何其他设置,请通过集群 image.config、ImageContentSourcePolicies、ImageDigestMirrorSet 或 ImageTagMirrorSet 对象在 cluster wide registry.conf 中指定它们。镜像推送 spec 的格式为:host[:port][/namespace]/name:<tag> 或 svc_name.namespace.svc[:port]/repository/name:<tag>。push spec 的长度必须在 1 到 447 个字符之间。 |
12.1.2. .spec.baseImagePullSecret 复制链接链接已复制到粘贴板!
- 描述
- baseImagePullSecret 是用来拉取基础镜像的 secret。如果提供,则必须在 openshift-machine-config-operator 命名空间中。如果没有指定,则默认为使用集群范围的 pull secret。这会在集群安装过程中为集群提供,并作为 secret 在 openshift-config 命名空间中提供。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是用于推送或拉取此 MachineOSConfig 对象的 secret 的名称。必须包含小写字母数字字符、'-' 或 '.',且必须以字母数字字符开头和结尾。此 secret 必须位于 openshift-machine-config-operator 命名空间中。 |
12.1.3. .spec.containerFile 复制链接链接已复制到粘贴板!
- 描述
- Containerfile 描述了用户指定了要构建到镜像中的自定义数据。这通常也称为 Dockerfile,您可以将其视为这样。内容是 Dockerfile 的内容。有关 spec 参考,请参阅 https://github.com/containers/common/blob/main/docs/Containerfile.5.md。这是按架构名称(如 AMD64)索引的列表,允许为每个架构指定一个 containerFile,最多为 4。
- 类型
-
数组
12.1.4. .spec.containerFile[] 复制链接链接已复制到粘贴板!
- 描述
- MachineOSContainerfile 包含用户要在镜像中构建的所有自定义内容
- 类型
-
object
- 必填
-
content
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerfileArch 描述了要为其构建此容器文件的架构。此 arch 是可选的。如果用户没有指定构架,则假定内容可应用于所有架构,或在单个架构集群中应用内容:唯一的架构。 |
|
| 内容是一个嵌入式 Containerfile/Dockerfile,用于定义要构建您的镜像中的内容。请参阅 https://github.com/containers/common/blob/main/docs/Containerfile.5.md 了解 spec 引用。例如,这会将 tree 软件包添加到主机中: FROM 配置 AS final RUN rpm-ostree install tree && \ ostree container commit this is a required 字段,并且最大长度为 4096 个字符。 |
12.1.5. .spec.imageBuilder 复制链接链接已复制到粘贴板!
- 描述
- ImageBuilder 描述了此 MachineOSConfig 触发的每个构建中将使用哪个镜像构建器。目前支持的类型:作业
- 类型
-
object
- 必填
-
imageBuilderType
-
属性 | 类型 | 描述 |
---|---|---|
|
| imageBuilderType 指定要用于构建镜像的后端。有效选项包括:作业 |
12.1.6. .spec.machineConfigPool 复制链接链接已复制到粘贴板!
- 描述
- MachineConfigPool 是构建所在的池。Machine Config Operator 将执行构建,并将构建的镜像推出到指定的池。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| MachineConfigPool 对象的名称。这个值最多 253 个字符,且必须包含小写字母数字字符、连字符和句点,并且应以字母数字字符开头和结尾。 |
12.1.7. .spec.renderedImagePushSecret 复制链接链接已复制到粘贴板!
- 描述
- renderedImagePushSecret 是用来连接到用户 registry 的 secret。最终的镜像推送和 pull secret 应该分开,并假定主体最小特权。只有托管 MachineConfigController Pod 的节点才会存在具有写入特权的 push secret。所有节点上都需要具有读取只读权限的 pull secret。通过分离两个 secret,写入凭证的风险会降低。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是用于推送或拉取此 MachineOSConfig 对象的 secret 的名称。必须包含小写字母数字字符、'-' 或 '.',且必须以字母数字字符开头和结尾。此 secret 必须位于 openshift-machine-config-operator 命名空间中。 |
12.1.8. .status 复制链接链接已复制到粘贴板!
- 描述
- status 描述了 machineosconfig 的状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件是与对象相关的条件。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| currentImagePullSpec 是 MCO 用来拉取新 OSImage 的完全限定镜像拉取 spec。这包括 sha256 镜像摘要。当 Machine Config Operator 的构建控制器成功完成构建时,会生成它,并从对应的 MachineOSBuild 对象的 FinalImagePushSpec 填充。这可能会在对 spec 更改完成后更改,这会导致新镜像构建,但不会删除。镜像拉取 spec 的格式是:host[:port][/namespace]/name@sha256:<digest>,其中摘要长度必须为 64 个字符,且仅包含小写十六进制字符、a-f 和 0-9。整个 spec 的长度必须在 1 到 447 个字符之间。 |
|
| machineOSBuild 是对此 MachineOSConfig 的 MachineOSBuild 对象的引用,其中包含镜像构建的状态。 |
|
| observedGeneration 代表 Machine Config Operator 的构建控制器观察到的 MachineOSConfig 对象的生成。 |
12.1.9. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件是与对象相关的条件。
- 类型
-
array
12.1.10. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。 |
12.1.11. .status.machineOSBuild 复制链接链接已复制到粘贴板!
- 描述
- machineOSBuild 是对此 MachineOSConfig 的 MachineOSBuild 对象的引用,其中包含镜像构建的状态。
- 类型
-
object
- 必填
-
group
-
name
-
resource
-
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的组。名称只能包含小写字母数字字符 '-' 或 '.',并使用字母数字字符开头/结束。示例: ""、"apps"、"build.openshift.io"等。 |
|
| 引用的名称。名称只能包含小写字母数字字符 '-' 或 '.',并使用字母数字字符开头/结束。 |
|
| 引用的命名空间。这个值应该最多包含 63 个字符,且只能包含小写字母数字字符和连字符,并且应以字母数字字符开头和结尾。 |
|
| 引用的资源。这个值应该最多包含 63 个字符,且只能包含小写字母数字字符和连字符,并以字母字符开头,并以字母数字字符结尾。示例:"deployments", "deploymentconfigs", "pods" 等。 |