1

我正在学习如何使用 Pulumi,我想知道我可以正确配置 pulumi 以将图像推送到 GCR。我有以下内容index.ts

const appImage = new docker.Image("ledgerImage", {
    imageName: 'us.gcr.io/qwil-build/ledger',
    build: "../../",
});

当我运行时,pulumi preview我看到图像已成功构建:

 2:51PM /Users/paymahn/qwil/ledger/pulumi/infra pulumi ⬆ ⬇ ◼
 ❮❮❮ pulumi preview
Previewing update (qwil/dev):

     Type                                 Name                  Plan       Info
 +   pulumi:pulumi:Stack                  ledger-dev            create     1 message
 +   ├─ docker:image:Image                ledgerImage           create
 +   ├─ gcp:compute:Address               cloud-sql-private-ip  create
 +   ├─ kubernetes:core:Service           ledger                create
 +   ├─ gcp:servicenetworking:Connection  private_vpc           create
 +   ├─ gcp:sql:DatabaseInstance          ledger_db             create
 +   ├─ gcp:sql:SslCert                   clientCert            create
 +   ├─ gcp:sql:User                      master                create
 +   ├─ kubernetes:core:Secret            ledger-db-tls         create
 +   └─ kubernetes:extensions:Deployment  ledger                create     1 warning

Diagnostics:
  pulumi:pulumi:Stack (ledger-dev):

  kubernetes:extensions:Deployment (ledger):
    warning: extensions/v1beta1/Deployment is not supported by Kubernetes 1.16+ clusters. Use apps/v1/Deployment instead.

Resources:
    + 10 to create

Permalink: https://app.pulumi.com/qwil/ledger/dev/previews/3f96f06f-ba49-4f52-91db-2884389a6b62

但是,当我访问永久链接时,我在映像构建步骤最后的 Diff Log 视图中看到以下输出:Successfully pushed to docker. 当我访问我们的私人 GCR 存储库时,我看不到图像的任何更新/新推送。

我的问题是:

  1. 普鲁米预览时是否推送图片?
  2. 推送时,pulumi 是否根据镜像名称来决定仓库?
  3. 如果是,为什么我的预览输出显示图像已推送到 docker?
4

1 回答 1

2

对于您的问题:

  1. 预览时,Image资源会构建镜像并返回目标镜像名称,无需推送。在正常更新期间,它会做同样的事情,以及标记和推送图像。
  2. 是的。
  3. 这里的输出有点令人困惑,请参见(1)。

这是推送到 GCR 的 docker 图像的示例,昨天为我工作:https ://github.com/pulumi/examples/pull/519/files#diff-982498c859f8161c992d7246993ab441R48-R53

于 2020-01-23T14:19:35.773 回答