Spinnaker管道作为cod

2024-05-03 19:51:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的很喜欢军械库为spinnaker所做的工作。我想实现类似的东西。有人能解释一下他们是怎么做的吗?在

https://docs.armory.io/user-guides/dinghy/

{
  "application": "yourspinnakerapplicationname",
  "pipelines": [
    {
      "application": "yourspinnakerapplicationname",
      "keepWaitingPipelines": false,
      "limitConcurrent": true,
      "name": "Made By Armory Pipeline Templates",
      "stages": [
        {{ module "wait.stage.module" }} // Module created in dinghy-templates repo
      ],
      "triggers": []
    }
  ]
}

他们是否为模块创建了自定义jinja扩展? 如果有人能把如何做到这一点作为我的出发点,那将是非常有帮助的


Tags: httpsiofalsedocsapplicationmoduleguidespipelines
1条回答
网友
1楼 · 发布于 2024-05-03 19:51:46

我们以前使用的是MPT(托管管道模板)和官方Spinnaker工具roer。我们有多层次的部分继承,破坏一个模板将不可逆转地破坏所有模板。在

有一种使用JSONNET的新方法称为sponnet可用here。 这具有jsonnet所具有的优势。 它创建的JSON管道可以通过UI、roer或新的官方Spinnaker工具spin加载。在

目前正在为托管管道模板的V2编制一份设计文档。在

spin和spinnakerjsonnet库还处于早期阶段,但是我们可以使用下面这样的工具在app.jsonnet文件中定义Spinnaker管道。在

local deployment = import 'deployment.json';
local kubeutils = import 'kubeutils.libsonnet';
local sponnet = import 'pipeline.libsonnet';

local canaryDeployment = kubeutils.canary(deployment);
local account = 'staging-demo';
local app = 'myapp';

<snip>

local wait = sponnet.stages
             .wait('Wait')
             .withSkipWaitText('Custom wait message')
             .withWaitTime(30);

<snip>

sponnet.pipeline()
.withApplication(app)
.withExpectedArtifacts([expectedDocker, expectedManifest])
.withName('Demo pipeline')
.withNotifications(slack)
.withTriggers([dockerTrigger, gitTrigger])
.withStages([wait, deployManifestTextBaseline, deployManifestTextCanary, 
deployManifestArtifact, findArtifactsFromResource, jenkinsJob])

相关问题 更多 >