首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spinnaker使用Google-cloud发布的清单工件

使用Spinnaker使用Google-cloud发布的清单工件
EN

Stack Overflow用户
提问于 2019-10-04 13:10:38
回答 1查看 193关注 0票数 0

我使用谷歌cloud-build作为我的CI系统和Spinnaker作为我的CD。我已经将cloud-build配置为复制我的清单并将其作为工件包含。

那是我的cloudbuild.yaml

代码语言:javascript
复制
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--tag=gcr.io/$PROJECT_ID/gordion-backend:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/gsutil'
  args: ['cp', 'manifests/manifest.yaml', 'gs://$PROJECT_ID-kubernetes-manifests/gordion-backend/']

images: ['gcr.io/$PROJECT_ID/gordion-backend']
artifacts:
  objects:
    location: 'gs://${_BUCKET_NAME}/$COMMIT_SHA/'
    paths: ['manifests/manifest.yaml']

当构建结束时,这就是pub/sub正在广播的消息:

代码语言:javascript
复制
{
  "id": "ba084f1c-494a-42c0-8499-1b84fbb30551",
  "projectId": "gordion-2",
  "status": "SUCCESS",
  "source": {
    "repoSource": {
      "projectId": "gordion-2",
      "repoName": "github_gordion-beam_gordion-backend",
      "branchName": "feature/build-yaml"
    }
  },
  "steps": [
    {
      "name": "gcr.io/cloud-builders/docker",
      "args": [
        "build",
        "--tag=gcr.io/gordion-2/gordion-backend:936543554ad5fab4017319005413dd38beefda04",
        "."
      ],
      "timing": {
        "startTime": "2019-10-04T12:03:46.996926010Z",
        "endTime": "2019-10-04T12:03:57.357589900Z"
      },
      "pullTiming": {
        "startTime": "2019-10-04T12:03:46.996926010Z",
        "endTime": "2019-10-04T12:03:47.056257759Z"
      },
      "status": "SUCCESS"
    },
    {
      "name": "gcr.io/cloud-builders/gsutil",
      "args": [
        "cp",
        "manifests/manifest.yaml",
        "gs://gordion-2-kubernetes-manifests/gordion-backend/"
      ],
      "timing": {
        "startTime": "2019-10-04T12:03:57.357662249Z",
        "endTime": "2019-10-04T12:04:00.089381056Z"
      },
      "pullTiming": {
        "startTime": "2019-10-04T12:03:57.357662249Z",
        "endTime": "2019-10-04T12:03:57.436904050Z"
      },
      "status": "SUCCESS"
    }
  ],
  "results": {
    "images": [
      {
        "name": "gcr.io/gordion-2/gordion-backend:936543554ad5fab4017319005413dd38beefda04",
        "digest": "sha256:538771fe1be2abd54f6d092519c131019d64bd1001ba38138c565faa9fe343b6",
        "pushTiming": {
          "startTime": "2019-10-04T12:04:00.404451498Z",
          "endTime": "2019-10-04T12:04:06.089323750Z"
        }
      }
    ],
    "buildStepImages": [
      "sha256:c0525aac022b1a92e97f9c6cf4ede4dd82979a9f014f05b2ec8843012a03aa60",
      "sha256:fbd483fa382118462a136f916b17d3197325881b6d966ba82ee3a54f4b550e76"
    ],
    "artifactManifest": "gs://gordion-manifests/gordion-2/936543554ad5fab4017319005413dd38beefda04/artifacts-ba084f1c-494a-42c0-8499-1b84fbb30551.json",
    "numArtifacts": "1"
  },
  "createTime": "2019-10-04T12:03:32.668464866Z",
  "startTime": "2019-10-04T12:03:38.343591796Z",
  "finishTime": "2019-10-04T12:04:15.243708Z",
  "timeout": "600s",
  "images": [
    "gcr.io/gordion-2/gordion-backend"
  ],
  "artifacts": {
    "images": [
      "gcr.io/gordion-2/gordion-backend"
    ],
    "objects": {
      "location": "gs://gordion-manifests/gordion-2/936543554ad5fab4017319005413dd38beefda04/",
      "paths": [
        "manifests/manifest.yaml"
      ],
      "timing": {
        "startTime": "2019-10-04T12:04:08.060372060Z",
        "endTime": "2019-10-04T12:04:12.248879364Z"
      }
    }
  },
  "logsBucket": "gs://1039931537996.cloudbuild-logs.googleusercontent.com",
  "sourceProvenance": {
    "resolvedRepoSource": {
      "projectId": "gordion-2",
      "repoName": "github_gordion-beam_gordion-backend",
      "commitSha": "936543554ad5fab4017319005413dd38beefda04"
    }
  },
  "buildTriggerId": "6b7405e7-c2db-4412-9f1a-186c7f7d5975",
  "options": {
    "substitutionOption": "ALLOW_LOOSE",
    "logging": "LEGACY"
  },
  "logUrl": "https://console.cloud.google.com/gcr/builds/ba084f1c-494a-42c0-8499-1b84fbb30551?project=1039931537996",
  "substitutions": {
    "_BUCKET_NAME": "gordion-manifests"
  },
  "tags": [
    "trigger-6b7405e7-c2db-4412-9f1a-186c7f7d5975"
  ],
  "timing": {
    "BUILD": {
      "startTime": "2019-10-04T12:03:46.996877211Z",
      "endTime": "2019-10-04T12:04:00.404416077Z"
    },
    "FETCHSOURCE": {
      "startTime": "2019-10-04T12:03:39.677294695Z",
      "endTime": "2019-10-04T12:03:46.930866092Z"
    },
    "PUSH": {
      "startTime": "2019-10-04T12:04:00.404450167Z",
      "endTime": "2019-10-04T12:04:14.358324463Z"
    }
  }
}

我还可以在cloud-build历史上看到它产生了两个工件:

船坞image

  • Kubernetes

清单位于此位置:

gs://gordion-manifests/a91cb009fa184713b86eb8b532a75dc088a25713/manifest.yaml gs://"gordion-manifests

由于工件的位置是动态的(由于以SHA命名的文件夹),我如何在expected artifacts中使用这个工件?

EN

回答 1

Stack Overflow用户

发布于 2019-10-22 17:36:43

您可以使用通配符在工件的匹配器。

请参考文档- https://www.spinnaker.io/reference/artifacts/in-pipelines/#expected-artifacts的整体描述和https://www.spinnaker.io/reference/artifacts-with-artifactsrewrite/types/gcs-object/#in-a-trigger的GCS工件的细节。

例如,下面的matcher应该处理您的情况(我没有实例来正确地测试它):

代码语言:javascript
复制
{
  "type": "gcs/object",
  "name": "gs://gordion-manifests/.*/manifest.yaml"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58237131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档