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