【问题标题】:Does Waypoint Hashicorp support the development of multi-component products?Waypoint Hashicorp 是否支持多组件产品的开发?
【发布时间】:2021-10-31 12:37:25
【问题描述】:

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

【问题讨论】:

    标签: hashicorp waypoint


    【解决方案1】:

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

    但是,根据您使用的插件,您可以一次部署多个应用程序。例如,使用 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 的其他功能(日志、配置等),因为您可以从一个应用程序管理多个应用程序,但这确实允许同时部署多个应用程序时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2011-05-06
      • 2017-05-26
      相关资源
      最近更新 更多