Skip to main content
版本:v1.4

内置策略列表

本文档将按字典序展示所有内置策略的参数列表。

本文档由脚本自动生成,请勿手动修改,上次更新于 2022-07-24T21:01:20+08:00。

Apply-Once

描述

只交付部署资源,不保证终态一致、允许配置漂移。适用于与其他控制器协作的轻量级交付场景。

示例 (apply-once)

It's generally used in one time delivery only without continuous management scenario.

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: apply-once-app
spec:
components:
- name: hello-world
type: webservice
properties:
image: oamdev/hello-world
traits:
- type: scaler
properties:
replicas: 1
policies:
- name: apply-once
type: apply-once
properties:
enable: true

参数说明 (apply-once)

名称描述类型是否必须默认值
enable当设置为 true 时,表示只交付部署、不保证终态一致、允许配置漂移。boolfalsefalse
rules指定交付一次的资源规则。[]rulesfalse

rules (apply-once)

名称描述类型是否必须默认值
selector指定资源筛选目标规则。selectorfalse
strategySpecify the strategy for configuring the resource level configuration drift behaviour。strategytrue
selector (apply-once)
名称描述类型是否必须默认值
componentNames按组件名称选择目标资源。[]stringfalse
componentTypes按组件类型选择目标资源。[]stringfalse
oamTypes按 OAM 概念,组件(COMPONENT) 或 运维特征(TRAIT) 筛选。[]stringfalse
traitTypes按 trait 类型选择目标资源。[]stringfalse
resourceTypes按资源类型选择。[]stringfalse
resourceNames按资源名称选择。[]stringfalse
strategy (apply-once)
名称描述类型是否必须默认值
path指定资源的路径。[]stringtrue

Garbage-Collect

描述

为应用配置资源回收策略。 如配置资源不回收。

示例 (garbage-collect)

It's used in garbage collection scenario. It can be used to configure the collection policy, e.g. don't delete the legacy resources when updating.

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: first-vela-app
spec:
components:
- name: express-server
type: webservice
properties:
image: oamdev/hello-world
port: 8000
traits:
- type: ingress-1-20
properties:
domain: testsvc.example.com
http:
"/": 8000
policies:
- name: keep-legacy-resource
type: garbage-collect
properties:
keepLegacyResource: true
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: garbage-collect-app
spec:
components:
- name: hello-world-new
type: webservice
properties:
image: oamdev/hello-world
traits:
- type: expose
properties:
port: [8000]
policies:
- name: garbage-collect
type: garbage-collect
properties:
rules:
- selector:
traitTypes:
- expose
strategy: onAppDelete

参数说明 (garbage-collect)

名称描述类型是否必须默认值
keepLegacyResource如果为 true,过时的版本化 resource tracker 将不会自动回收。 过时的资源将被保留,直到手动删除 resource tracker。boolfalsefalse
rules在资源级别控制垃圾回收策略的规则列表,如果一个资源由多个规则控制,将使用第一个规则。[]rulesfalse

rules (garbage-collect)

名称描述类型是否必须默认值
selector指定资源筛选目标规则。[]selectortrue
strategy目标资源循环利用的策略。 可用值:never、onAppDelete、onAppUpdate。stringfalseonAppUpdate
selector (garbage-collect)
名称描述类型是否必须默认值
componentNames按组件名称选择目标资源。[]stringfalse
componentTypes按组件类型选择目标资源。[]stringfalse
oamTypes按 OAM 概念,组件(COMPONENT) 或 运维特征(TRAIT) 筛选。[]stringfalse
traitTypes按 trait 类型选择目标资源。[]stringfalse
resourceTypes按资源类型选择。[]stringfalse
resourceNames按资源名称选择。[]stringfalse

Health

描述

Apply periodical health checking to the application。

参数说明 (health)

名称描述类型是否必须默认值
probeTimeoutSpecify health checking timeout(seconds), default 10s。intfalse10
probeIntervalSpecify health checking interval(seconds), default 30s。intfalse30

Override

描述

描述部署资源时要覆盖的配置,需要配合工作流的 deploy 步骤一起使用才能生效。

示例 (override)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: deploy-with-override
namespace: examples
spec:
components:
- name: nginx-with-override
type: webservice
properties:
image: nginx
policies:
- name: topology-hangzhou-clusters
type: topology
properties:
clusterLabelSelector:
region: hangzhou
- name: topology-local
type: topology
properties:
clusters: ["local"]
namespace: examples-alternative
- name: override-nginx-legacy-image
type: override
properties:
components:
- name: nginx-with-override
properties:
image: nginx:1.20
- name: override-high-availability
type: override
properties:
components:
- type: webservice
traits:
- type: scaler
properties:
replicas: 3
workflow:
steps:
- type: deploy
name: deploy-local
properties:
policies: ["topology-local"]
- type: deploy
name: deploy-hangzhou
properties:
policies: ["topology-hangzhou-clusters", "override-nginx-legacy-image", "override-high-availability"]
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: advance-override
namespace: examples
spec:
components:
- name: nginx-advance-override-legacy
type: webservice
properties:
image: nginx:1.20
- name: nginx-advance-override-latest
type: webservice
properties:
image: nginx
policies:
- name: topology-hangzhou-clusters
type: topology
properties:
clusterLabelSelector:
region: hangzhou
- name: topology-local
type: topology
properties:
clusters: ["local"]
namespace: examples-alternative
- name: override-nginx-legacy
type: override
properties:
selector: ["nginx-advance-override-legacy"]
- name: override-nginx-latest
type: override
properties:
selector: ["nginx-advance-override-latest", "nginx-advance-override-stable"]
components:
- name: nginx-advance-override-stable
type: webservice
properties:
image: nginx:stable
workflow:
steps:
- type: deploy
name: deploy-local
properties:
policies: ["topology-local", "override-nginx-legacy"]
- type: deploy
name: deploy-hangzhou
properties:
policies: ["topology-hangzhou-clusters", "override-nginx-latest"]

参数说明 (override)

名称描述类型是否必须默认值
components要覆盖的组件配置列表。[]componentstrue
selector要使用的组件名称列表。 如果未设置,将使用所有组件。[]stringfalse

components (override)

名称描述类型是否必须默认值
name要覆盖的组件的名称。 如果未设置,它将匹配具有指定类型的所有组件。 可以与通配符 * 一起使用以进行模糊匹配。。stringfalse
type要覆盖的组件的类型。 如果未设置,将匹配所有组件类型。stringfalse
properties要覆盖的配置属性,未填写配置会与原先的配置合并。map[string]:(null|bool|string|bytes|{...}|[...]|number)false
traits要覆盖的 trait 配置列表。[]traitsfalse
traits (override)
名称描述类型是否必须默认值
type要做参数覆盖的 trait 类型。stringtrue
properties要覆盖的配置属性,未填写配置会与原先的配置合并。map[string]:(null|bool|string|bytes|{...}|[...]|number)false
disable如果为 true,该 trait 将被删除,默认 false。boolfalsefalse

Topology

描述

描述组件应该部署到的集群环境。

示例 (topology)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: basic-topology
namespace: examples
spec:
components:
- name: nginx-basic
type: webservice
properties:
image: nginx
policies:
- name: topology-hangzhou-clusters
type: topology
properties:
clusters: ["hangzhou-1", "hangzhou-2"]
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: label-selector-topology
namespace: examples
spec:
components:
- name: nginx-label-selector
type: webservice
properties:
image: nginx
policies:
- name: topology-hangzhou-clusters
type: topology
properties:
clusterLabelSelector:
region: hangzhou
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: local-ns-topology
namespace: examples
spec:
components:
- name: nginx-local-ns
type: webservice
properties:
image: nginx
policies:
- name: topology-local
type: topology
properties:
clusters: ["local"]
namespace: examples-alternative

参数说明 (topology)

名称描述类型是否必须默认值
cluster要选择的集群的名称。[]stringfalse
clusterLabelSelector根据集群标签选择。map[string]:stringfalse
clusterSelectorDeprecated: Use clusterLabelSelector instead。map[string]:stringfalse
namespace要在选定集群中部署的目标命名空间。 如果未设置,组件将继承原始命名空间。stringfalse