BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース HashiCorp Waypointにトリガーと外部データフェッチが追加

HashiCorp Waypointにトリガーと外部データフェッチが追加

原文(投稿日:2022/01/16)へのリンク

HashiCorpは、Waypointバージョン0.7をリリースした。オープンソースのアプリケーションデプロイツールである。このリリースでは、ユーザーインターフェイスの多くの再設計、スクリプトの導入、トリガーを介した継続的インテグレーションのライフサイクル操作、外部データのフェッチ、特定のワークスペースへの設定のスコープ設定が示された。

Waypointの目標は、実行中のアプリケーションのデプロイ、運用、可観測性をハンドリングする基盤インフラストラクチャの一貫性のある抽象化を提供することである。Waypointはファーストパーティとして、DockerKubernetesAWS ECSAWS Lambdaをサポートする。

トリガーを使うと、トリガーされたときに特定のプロジェクトに対して特定のWaypoint操作を実行できる。例えば、最新のビルドのデプロイ、プロジェクト内のすべてのアプリケーションでのステータスレポートの実行、プロジェクト内のすべてのアプリでのウェイポイントアップの実行などの操作ができる。このリリースでは、トリガーはgRPCライブラリを介してのみサポートされる。将来のリリースではHTTPを介した実行がサポートされる予定である。

トリガーURLは、gRPCリクエストを使って環境内で呼び出すことができる。たとえば、次の例では、最新のアーティファクトを本番ワークスペースにデプロイするためのトリガーURLを作成する。

$ waypoint trigger create \
     -project=hcp-packer \
     -app=backend-svc \
     -workspace=production \
     -name=deploy-latest \
     -op=deploy
Trigger "deploy-latest" (123ABC456DEF) has been created
Trigger ID: 123ABC456DEF

トリガーを設定するときには、正しいプロジェクト、アプリケーション、ワークスペースを指定する必要がある。これらは作成時ではなく、実行時に検証されることに注意してください。必要に応じて、waypoint trigger updateを介して既存のトリガーを変更できる。トリガーが作成されると、トリガーIDが返され、次にそれを使ってgRPCを介したトリガーが実行される。

$ grpcurl -d '{"ref": {"id": "123ABC456DEF"}}' -H "Authorization: `waypoint user token`" waypoint.server.address hashicorp.waypoint.Waypoint/RunTrigger

このリリースでは、環境選択のドロップダウン、アイコンの更新、そして、ビルド、デプロイ、リリースアクションの新しいタイムラインビューなど、多くのUIが改善された。さらに、UIはOpenID Connect(OIDC)ログインフローをサポートするようになった。

Waypoint's new timeline view

Waypointの新しいタイムラインビュー (クレジット: HashiCorp)

 

これらの改善には、UI内でwaypoint execを実行する機能が含まれている。これにより、デプロイ中にコマンドを実行できる。このユースケースには、トラブルシューティング、データベース移行の実行、アプリケーション構成の検証がある。

The new Exec tab in the Waypoint UI

Waypoint UIの新たなExecタブ (クレジット: HashiCorp)

 

このリリースでは、VaultTerraform CloudKubernetes ConfigMapsAWS Secrets Managerなどの外部ソースからデータをフェッチできるようになった。このデータは、ハードコーディングする代わりに、waypoint.hclファイルに直接組み込むことができる。たとえば、AWS ACM証明書のARNは、Terraform Cloudの出力値から直接取得できる。

variable "acm-cert-arn" {
 type    = string
 default = dynamic("terraform-cloud", {
   organization = "dadgarcorp"
   workspace = "ws-6fIaMNotRealXSQUv"
   output  = "aws_cert_arn"
 })
}

release {
 use "kubernetes" {
   load_balancer = true
   annotations = {
      "service.beta.kubernetes.io/aws-load-balancer-ssl-cert" = var.acm-cert-arn
   }
 }
}

このリリースでは、ワークスペースも改善されている。アクティブなワークスペースをベースにプラグイン構成を変更できるようになった。これにより、デプロイメント環境に基づいてプラグインタイプを調整できる。開発にDockerを使用し、本番環境にKubernetesを使用するなどである。

チームは、将来のリリースには、複数のデプロイ環境を扱うためのワークフローの改善が追加されるべきと述べている。Waypointは、Mozilla Public License 2.0の下でオープンソースでである。このリリースでの変更の詳細については、HashiCorpブログをご覧ください。

作者について

この記事に星をつける

おすすめ度
スタイル

BT