第 8 章 OperatorGroup [operators.coreos.com/v1]
- 描述
- OperatorGroup 是 OLM 管理的 Operator 的多租户单元。它将 Operator 的安装限制到一组指定的目标命名空间。
- 类型
-
object
- 必填
-
metadata
-
8.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 | |
|
| OperatorGroupSpec 是 OperatorGroup 资源的 spec。 |
|
| OperatorGroupStatus 是 OperatorGroupResource 的状态。 |
8.1.1. .spec
- 描述
- OperatorGroupSpec 是 OperatorGroup 资源的 spec。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| selector 选择 OperatorGroup 的目标命名空间。 |
|
| serviceAccountName 是 admin 指定的服务帐户,它将在此 operator 组中部署 operator。 |
|
| 静态告诉 OLM 不会更新 OperatorGroup 的提供的API 注解 |
|
| targetNamespaces 是要目标的一组明确的命名空间。如果设置了,则忽略 Selector。 |
|
| UpgradeStrategy 为命名空间中的 Operator 定义升级策略。目前有两种支持的升级策略: Default: OLM 只允许 clusterServiceVersions 从 succeeded 阶段移到替换阶段。这实际上意味着,如果安装或升级失败时,OLM 不允许 Operator 移至下一版本。TechPreviewUnsafeFailForward:OLM 将允许 clusterServiceVersions 从成功阶段或失败的阶段移到替换阶段。另外,当订阅引用失败的 installPlan 且使用现有 Operator 集合的新升级来更新目录时,OLM 将生成新的 installPlans。警告: TechPreviewUnsafeFailForward 升级策略不安全,并可能导致意外行为或无法恢复的数据丢失,除非您深入了解在命名空间中管理的 Operator 集合。 |
8.1.2. .spec.selector
- 描述
- selector 选择 OperatorGroup 的目标命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
8.1.3. .spec.selector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
8.1.4. .spec.selector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
8.1.5. .status
- 描述
- OperatorGroupStatus 是 OperatorGroupResource 的状态。
- 类型
-
object
- 必填
-
lastUpdated
-
属性 | 类型 | 描述 |
---|---|---|
|
| 条件是 OperatorGroup 条件的数组。 |
|
|
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,输入 FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition |
|
| lastUpdated 是 OperatorGroup 最后一次更新状态的时间戳。 |
|
| namespace 是 OperatorGroup 的目标命名空间集。 |
|
| serviceAccountRef 引用指定的服务帐户对象。 |
8.1.6. .status.conditions
- 描述
- 条件是 OperatorGroup 条件的数组。
- 类型
-
array
8.1.7. .status.conditions[]
- 描述
-
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,输入 FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition
json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"
// other fields } - 类型
-
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 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt) |
8.1.8. .status.serviceAccountRef
- 描述
- serviceAccountRef 引用指定的服务帐户对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。Todo: 这个设计不是最终设计的,且该字段在将来会有所改变。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |