0

我们有一个多组件产品。您知道是否可以使用 Waypoint 来构建、部署和发布多组件应用程序?在他们的文档中找不到它。

4

1 回答 1

0

一个航点“项目”支持多个“应用程序”。项目中的每个应用程序都可以构建一个应用程序。

但是,根据您使用的插件,您可以一次部署多个应用程序。例如,使用 nomad-jobspec 插件,您可以在 Nomad 作业文件中拥有一个或多个组/任务。

我在同一个作业文件中有多个应用程序的情况下使用的一种解决方法是在同一个项目中有两个不同的应用程序,而不是使用“工件”变量来引用构建,而是使用输入变量。在下面的示例 waypoint.hcl 文件中,您可以看到我将 2 个变量传递给 Nomad 作业规范(正在模板化),一个用于第一个应用程序的图像标签,一个用于第二个应用程序的图像标签。作业文件中的两个 Nomad 任务(此处未描述)指的是任务的“图像”配置中的相应变量。不过,这些变量正在两个应用程序中传递。因此,为了部署这两个应用程序,我需要构建应用程序 1,构建应用程序 2,然后部署应用程序 1 或应用程序 2。

project = "my-project"

app "app1" {
  build {
    use "docker" {}
    registry {
      use "docker" {
        image = "image1"
        tag   = var.app1tag
      }
    }
  }

  deploy {
    use "nomad-jobspec" {
      jobspec = templatefile("${path.app}/job.nomad.tpl", {
        app1tag = var.app1tag
        app2tag = var.app2tag
      })
    }
  }
}

app "app2" {
  build {
    use "docker" {}
    registry {
      use "docker" {
        image = "image2"
        tag   = var.app2tag
      }
    }
  }

  deploy {
    use "nomad-jobspec" {
      jobspec = templatefile("${path.app}/job.nomad.tpl", {
        app1tag = var.app1tag
        app2tag = var.app2tag
      })
    }
  }
}

variable "app1tag" {
  type = string
}

variable "app2tag" {
  type = string
}

我认为这种解决方法不适合 Waypoint 的其他功能(日志、配置等),因为您将从一个应用程序管理多个应用程序,但这确实允许同时部署多个应用程序。

于 2021-11-13T07:43:06.597 回答