Lagoonのリリース#
Lagoonには多くの動的な部分があるため、リリースはかなり複雑です!
Lagoon-core - タグとテスト#
- 次の全ての特定されたプルリクエストがメインブランチにマージされていることを確認します:
- 確認が終わったら、次のタグ(マイナーまたはパッチ)をメインブランチにプッシュします。フォーマットはv2.MINOR.PATCHとし、semverに従います。これにより、Jenkinsビルドがトリガーされ、https://ci.lagoon.sh/blue/organizations/jenkins/lagoon/branches で見ることができます。
- これがビルド中の間、
lagoon-ui
とbuild-deploy-tool
の適切なコミットに軽量タグをプッシュします。フォーマットは core-v2.MINOR.PATCH とします。build-deploy-toolには他のタグやリリースはありませんが、lagoon-uiには独自のsemverリリースがあり、これはその機能に基づいています。 - Jenkinsでのビルドが成功したら、https://github.com/uselagoon/lagoon-charts に移動して、チャートリリースの準備をします。
-
lagoon-core
とlagoon-test
チャートのchart.yamlで、更新します。 以下のフィールド:- バージョン: これはチャートの次の「マイナー」リリースで、通常は対応するlagoon-coreリリースのためのマイナーを使用します
- appVersion: これはリリースされたlagoon-coreの実際のタグです
- artifacthub.io/changes: 必要なのは以下のスニペットの2行で、リリースされる実際のappVersionに合わせて変更されます。
sample chart.yml snippetslagoon-coreリリースの結果、lagoon-coreとlagoon-testのチャートのみが更新されます。他に変更がある場合は、lagoon-remoteのプロセスに従ってください。# これはチャートのバージョンです。このバージョン番号は、アプリ # バージョンを含む、チャートとそのテンプレートに変更を加えるたびに増やすべきです。 # バージョンはセマンティックバージョニング(https://semver.org/)に従うことが期待されます。 version: 1.28.0 # これはデプロイされるアプリケーションのバージョン番号です。このバージョン # 番号は、アプリケーションに変更を加えるたびに増加させるべきです。 # バージョンはセマンティックバージョニングに従うことが期待されません。それらは # アプリケーションが使用しているバージョンを反映するべきです。 appVersion: v2.14.2 # このセクションは、artifacthub.ioのチェンジログを収集するために使用されます # それは各リリースごとに新たに開始されるべきです # 有効なサポートされている種類は、追加、変更、非推奨、削除、修正、セキュリティがあります annotations: artifacthub.io/changes: | - 種類: 変更 説明: Lagoon appVersionをv2.14.2に更新
-
このチャートリリースのPRを作成し、Github Actionsスイートが一連のテストを実施します:
- Lintとテストチャート - マトリクス: 現在テストされているKubernetesバージョンに対してlintとチャートのインストールを行います
- Lintとテストチャート - current: 以前/将来のKubernetesバージョンに対してlintとチャートのインストールを行います
- Lagoon tests: リリースに対してansibleテストの全シリーズを実行します。
通常、lintとテストチャートの失敗はよく説明されています(チャート設定の欠落/誤設定)。単一のLagoonテストが失敗する場合は、再実行するだけでかもしれません。複数の失敗が発生した場合は、調査が必要です。
これらのテストがすべて成功した後、リリースの作成を進めることができます:
Lagoon-core - リリースとリリースノート#
- uselagoon/lagoon で、先ほどプッシュしたタグからリリースを作成します。"リリースの生成 "notes"ボタンを使って変更履歴を作成します。リリースに含める内容については、以前のリリースを参照してください。 また、lagoon-imagesのリンクは常に最新のリリース版となります。チャート、lagoon-ui、build-deploy-toolへのリンクはすべて今すぐ埋めることができますが、リンクは今後のステップが完了するまで動作しません。これを最新のリリースとしてマークし、リリースを公開します。
- uselagoon/build-deploy-tool で、先ほどプッシュしたタグからリリースを作成します。"リリースノートを生成"ボタンを使用して変更履歴を作成します。最後のcore-v2.Xタグが使用され、他のタグは使用されないことを確認します。リリースに含める内容については、以前のリリースを参照してください。これを最新のリリースとしてマークし、リリースを公開します。
- uselagoon/lagoon-ui で、先ほどプッシュしたタグからリリースを作成します。"リリースノートを生成"ボタンを使用して変更履歴を作成します。最後のcore-v2.Xタグが使用され、他のタグは使用されないことを確認します。リリースに含める内容については、以前のリリースを参照してください。これを最新のリリースとしてマークし、リリースを公開します。
- uselagoon/lagoon-charts で 成功したPRをマージすると、lagoon-coreとlagoon-testのリリースが作成されます。結果として得られたlagoon-coreチャートリリースを編集し、タイトルとテキストボックスに対応するlagoonリリースを記載します。以前のリリースと同様にします。
Lagoonリモート - リリースとリリースノート#
Lagoon remoteはLagoon Coreとは別のリリースサイクルを持ち、そのため、依存関係のあるサブチャートやサービスが更新されるたびにリリースすることができます。