内置策略列表

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

    示例 (apply-once)

    参数说明 (apply-once)

    rules (apply-once)

    名称描述类型是否必须默认值
    selector指定资源筛选目标规则。false
    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.

    1. kind: Application
    2. metadata:
    3. name: first-vela-app
    4. spec:
    5. components:
    6. - name: express-server
    7. type: webservice
    8. properties:
    9. image: oamdev/hello-world
    10. port: 8000
    11. traits:
    12. - type: ingress-1-20
    13. properties:
    14. domain: testsvc.example.com
    15. http:
    16. "/": 8000
    17. policies:
    18. - name: keep-legacy-resource
    19. type: garbage-collect
    20. properties:
    21. keepLegacyResource: true
    1. apiVersion: core.oam.dev/v1beta1
    2. kind: Application
    3. metadata:
    4. name: garbage-collect-app
    5. spec:
    6. components:
    7. - name: hello-world-new
    8. type: webservice
    9. properties:
    10. traits:
    11. - type: expose
    12. properties:
    13. port: [8000]
    14. policies:
    15. - name: garbage-collect
    16. type: garbage-collect
    17. properties:
    18. rules:
    19. - selector:
    20. traitTypes:
    21. - expose
    22. strategy: onAppDelete
    名称描述类型是否必须默认值
    keepLegacyResource如果为 true,过时的版本化 resource tracker 将不会自动回收。 过时的资源将被保留,直到手动删除 resource tracker。boolfalsefalse
    rules在资源级别控制垃圾回收策略的规则列表,如果一个资源由多个规则控制,将使用第一个规则。[]rulesfalse

    rules (garbage-collect)

    selector (garbage-collect)
    名称描述类型是否必须默认值
    componentNames按组件名称选择目标资源。[]stringfalse
    componentTypes按组件类型选择目标资源。[]stringfalse
    oamTypes按 OAM 概念,组件(COMPONENT) 或 运维特征(TRAIT) 筛选。[]stringfalse
    traitTypes按 trait 类型选择目标资源。[]stringfalse
    resourceTypes按资源类型选择。[]stringfalse
    resourceNames按资源名称选择。[]stringfalse

    描述

    参数说明 (health)

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

    Override

    描述

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

    示例 (override)

    1. apiVersion: core.oam.dev/v1beta1
    2. kind: Application
    3. metadata:
    4. name: advance-override
    5. namespace: examples
    6. spec:
    7. components:
    8. type: webservice
    9. properties:
    10. image: nginx:1.20
    11. - name: nginx-advance-override-latest
    12. type: webservice
    13. properties:
    14. image: nginx
    15. policies:
    16. - name: topology-hangzhou-clusters
    17. type: topology
    18. properties:
    19. clusterLabelSelector:
    20. region: hangzhou
    21. - name: topology-local
    22. type: topology
    23. properties:
    24. clusters: ["local"]
    25. namespace: examples-alternative
    26. - name: override-nginx-legacy
    27. type: override
    28. properties:
    29. selector: ["nginx-advance-override-legacy"]
    30. - name: override-nginx-latest
    31. type: override
    32. properties:
    33. selector: ["nginx-advance-override-latest", "nginx-advance-override-stable"]
    34. components:
    35. - name: nginx-advance-override-stable
    36. type: webservice
    37. properties:
    38. image: nginx:stable
    39. workflow:
    40. steps:
    41. - type: deploy
    42. name: deploy-local
    43. properties:
    44. policies: ["topology-local", "override-nginx-legacy"]
    45. - type: deploy
    46. name: deploy-hangzhou
    47. properties:
    48. policies: ["topology-hangzhou-clusters", "override-nginx-latest"]
    名称描述类型是否必须默认值
    components要覆盖的组件配置列表。[]componentstrue
    selector要使用的组件名称列表。 如果未设置,将使用所有组件。[]stringfalse

    components (override)

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

    描述

    Configure the resources to be sharable across applications。

    示例 (shared-resource)

    1. apiVersion: core.oam.dev/v1beta1
    2. metadata:
    3. name: app1
    4. spec:
    5. components:
    6. - name: ns1
    7. type: k8s-objects
    8. properties:
    9. objects:
    10. - apiVersion: v1
    11. metadata:
    12. name: example
    13. - name: cm1
    14. type: k8s-objects
    15. properties:
    16. objects:
    17. - apiVersion: v1
    18. kind: ConfigMap
    19. metadata:
    20. name: cm1
    21. namespace: example
    22. data:
    23. key: value1
    24. policies:
    25. - name: shared-resource
    26. type: shared-resource
    27. properties:
    28. rules:
    29. - selector:
    30. resourceTypes: ["Namespace"]

    参数说明 (shared-resource)

    名称描述类型是否必须默认值
    rulesSpecify the list of rules to control shared-resource strategy at resource level。[]rulesfalse

    rules (shared-resource)

    名称描述类型是否必须默认值
    selector指定资源筛选目标规则。[]selectortrue
    selector (shared-resource)
    名称描述类型是否必须默认值
    componentNames按组件名称选择目标资源。[]stringfalse
    componentTypes按组件类型选择目标资源。[]stringfalse
    oamTypes按 OAM 概念,组件(COMPONENT) 或 运维特征(TRAIT) 筛选。[]stringfalse
    traitTypes按 trait 类型选择目标资源。[]stringfalse
    resourceTypes按资源类型选择。[]stringfalse
    resourceNames按资源名称选择。[]stringfalse

    Topology

    描述

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

    1. apiVersion: core.oam.dev/v1beta1
    2. kind: Application
    3. metadata:
    4. name: basic-topology
    5. namespace: examples
    6. spec:
    7. components:
    8. - name: nginx-basic
    9. type: webservice
    10. properties:
    11. image: nginx
    12. policies:
    13. - name: topology-hangzhou-clusters
    14. type: topology
    15. properties:
    16. clusters: ["hangzhou-1", "hangzhou-2"]
    1. apiVersion: core.oam.dev/v1beta1
    2. kind: Application
    3. metadata:
    4. name: label-selector-topology
    5. namespace: examples
    6. spec:
    7. components:
    8. - name: nginx-label-selector
    9. type: webservice
    10. properties:
    11. image: nginx
    12. policies:
    13. - name: topology-hangzhou-clusters
    14. type: topology
    15. properties:
    16. clusterLabelSelector:

    参数说明 (topology)

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