Skip to main content

Codefresh 工作流程模板

我们的Codefresh workflow template 允许您直接从 Codefresh 工作流程模板中创建/更新和查询 Port 中的实体。



CircleCI Illustration

💡 Codefresh 集成 Usage

例如,Port 的 Codefresh 工作流模板提供了将 Port 与 Codefresh CI 工作流集成的原生方法:

  • 报告正在运行的CI任务的状态;
  • 更新软件目录中有关微服务新**构建版本的信息;
  • 获取现有实体

安装

要被用于 Port 的 Codefresh 工作流程模板,您需要执行以下步骤:

  1. 访问 GitHub 中的workflow template repository
  2. 将文件portWorkflowTemplate.yml 复制到您的一个 codefresh git 源码,然后提交到您的 git 源码;
  3. 使用命令 applyrbac.yml 文件的内容,将所需的服务账户、集群角色和角色绑定添加到您的 codefresh 运行时名称空间: kubectl apply -f rbac.yml -n YOUR_NAMESPACE
  4. 使用 base64 编码后,添加包含PORT_CLIENT_IDPORT_CLIENT_SECRET的所需 secret。可被用于portCredentials.yml 作为示例。
如果使用 portCredentials.yml 中显示的准确格式保存 CLIENT_ID 和 SECRET,那么从工作流模板调用模板时就不需要提供参数 PORT_CREDENTIALS_SECRETPORT_CLIENT_ID_KEYPORT_CLIENT_SECRET_KEY

验证

要验证工作流程模板的安装,请按照以下步骤操作:

  1. 进入 Codefresh 界面;
  2. 在 CI OPS 类别下,点击工作流程模板;
  3. 在搜索栏中输入 "Port",工作流程模板就会出现。

Usage

Port 的 Codefresh 工作流程模板支持以下方法:

  • 创建/更新目录实体--使用 "upsert-entity "模板调用,接收新实体或需要更新的实体的标识符和其他属性;
  • 获取目录实体--使用 "get-entity "模板调用,接收现有实体的标识符并将其检索出来供 CI 使用。
- name: entity-upsert
templateRef:
name: port
template: entity-upsert
arguments:
parameters:
# Note: if you save the CLIENT_ID and CLIENT_SECRET in the same format shown
# in the portCredentials.yml file, there is no need to provide
# PORT_CREDENTIALS_SECRET, PORT_CLIENT_ID_KEY, PORT_CLIENT_SECRET_KEY
- name: PORT_CREDENTIALS_SECRET
value: "port-credentials"
- name: PORT_CLIENT_ID_KEY
value: "PORT_CLIENT_ID"
- name: PORT_CLIENT_SECRET_KEY
value: "PORT_CLIENT_SECRET"
- name: BLUEPRINT_IDENTIFIER
value: "myBlueprint"
- name: ENTITY_IDENTIFIER
value: "myEntity"
- name: ENTITY_TITLE
value: "myTitle"
- name: ENTITY_PROPERTIES
value: |
{
"myStringProp": "My value",
"myNumberProp": 1,
"myBooleanProp": true,
"myArrayProp": ["myVal1", "myVal2"],
"myObjectProp": {"myKey": "myVal", "myExtraKey": "myExtraVal"}
}

输入

InputDescriptionNotes
PORT_CREDENTIALS_SECRETName of the secret to get the CLIENT_ID and CLIENT_SECRET fromDefault value: port-credentials
PORT_CLIENT_ID_KEYKey in the secret where the base64 encoded PORT_CLIENT_ID is storedDefault value: PORT_CLIENT_ID
PORT_CLIENT_SECRET_KEYkey in the secret where the base64 encoded PORT_CLIENT_SECRET is storedDefault value: PORT_CLIENT_SECRET
BLUEPRINT_IDENTIFIERIdentifier of the blueprint to create an entity ofRequired
ENTITY_IDENTIFIERIdentifier of the new (or existing) entityLeave empty to get an auto-generated identifier
ENTITY_TITLETitle of the new (or existing) entity
ENTITY_TEAMTeams array of the new (or existing) entity
ENTITY_ICONIcon of the new (or existing) entity
ENTITY_PROPERTIESProperties of the new (or existing) entity
ENTITY_RELATIONSRelations of the new (or existing) entity.

输出

OutputDescriptionNotes
ENTITY_IDENTIFIERidentifier of the new (or existing) entity

示例

有关 Port 的 Codefresh 工作流程模板的实用示例,请参阅examples 页面。