本文基于 OAM v1alpha2 版本。
ApplicationConfiguration
将 Component
与 Trait
组合,定义了一个应用程序的配置,Component
每部署一次就会产生一个实例(Instance
),实例是可以被升级的(包括回滚和重新部署),而每次部署和升级就会产生一次新的发布(Release
)。
12 因素应用严格区分构建、发布、运行这三个步骤。每次构建和修改配置后都会产生一次新的发布(
Release
)。OAM 中将Component
、Trait
、ApplicaitonScope
组合而成的ApplicationConfiguration
即等同于Release
。每次对ApplciationConfiguration
的更新都会创建一个新的Release
(跟 Helm 中的Release
概念一致)。
下面是一个 ApplicationConfiguration
示例。
apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
name: my-app
annotations:
version: v1.0.0
description: "My first application deployment."
spec:
components:
- componentName: my-component
parameterValues:
- name: PARAMETER_NAME
value: SUPPLIED_VALUE
- name: ANOTHER_PARAMETER
value: "AnotherValue"
traits:
- name: manualscaler.core.oam.dev
version: v1
spec:
replicaCount: 3
scopes:
- scopeRef:
apiVersion: core.oam.dev/v1alpha2
kind: NetworkScope
name: my-network
关于 ApplicationConfiguration
的详细信息参考 OAM 中的 ApplicationConfiguration 规范。