みなさん、こんにちは。ACS事業部 亀崎です。
先日、GitHubのRate Limitを考慮したBackstageの設定についてご紹介させていただきました。
今回はその詳細についてご紹介したいと思います。
Backstage Catalog : GItHub Providerの設定
Backstageのコンフィグレーションで catalog.providers.github
に指定をすると、カタログ情報のAuto Discovery機能が有効になります。
指定例は以下のようになります。
catalog: providers: github: providerId: organization: 'backstage' # string catalogPath: '/catalog-info.yaml' # string filters: branch: 'main' # string repository: '.*' # Regex
続いて指定可能内容の詳細です。
名称 | 内容 |
---|---|
organization | 処理対象とするGitHub Organization名 |
catalogPath | 処理対象のファイル名。 * や** といったワイルドカードが利用可能。(デフォルト: /catalog-info.yaml)なお、 validateLocationsExist がtrueの場合はワイルドカードで指定することはできない。 |
validateLocationsExist | Backstageにすでに登録されている場合のみ処理対象とする(デフォルト: false ) |
filters | フィルター設定 |
filters.brach | 対象ブランチ名。正規表現による指定可。(デフォルト: デフォルトブランチ) |
filters.repository | 対象リポジトリ。正規表現による指定も可能。(デフォルト: すべてのリポジトリが対象) |
filters.allowFork | forkリポジトリを対象とするかどうか。(デフォルト: false) |
filters.topic | GitHub イベントトピックのフィルター設定 |
filters.topic.include | 処理対象とするトピック名。 includeとexcludeの両方が指定されている場合はexcludeが優先される。 |
filters.topic.exclude | 処理除外対象とするトピック名。 |
filters.visibility | 対象とするリポジトリの可視性。public/internal/private を指定する。(デフォルト: すべてを対象とする) |
filters.allowArchived | アーカイブリポジトリを対象にするかどうか。(デフォルト: false ) |
schedule | 実行スケジュール 。(デフォルト: 3時間毎に実行。タイムアウトは1時間に設定) |
設定の詳細はこちらで確認できます。
ハイパフォーマンス組織の設定
前回「ハイパフォーマンスな組織での設定」として以下のようなパターンをご紹介しました。それがこちらです
- Push型の同期処理
- 24時間に一度だけPull型の同期処理を実行
- 自動登録はしない(新規登録は手動で実施する)
自動登録をしないとしているので validateLocationsExist
をtrueで指定します。
さらに24時間に一度同期処理を実行するということですので schedule
の frequency
に days: 1 を指定します。
catalog: providers: github: providerId: organization: 'your-organization' catalogPath: '/catalog-info.yaml' validateLocationsExist: true # Auto Discovery無効 schedule: frequency: { days: 1 } timeout: { minutes: 5 }
ここで注意点が1つあります。 validateLocationsExist
を true に設定しました。
catalogPath
でワイルドカードは利用できなくなります。つまり、各リポジトリのカタログ情報ファイル名は固定
(ここの例では /catalog-info.yaml )に固定しなければなりません。ご注意ください。
まとめ
今回実際の設定を例示させていただきました。 Rate Limitを考慮しなければならないのはわかったけど、どう設定したらいいんだ?と思っていた方もいらっしゃったのではないかと思います。 そうした方にこの投稿の内容が参考になればさいわいです。
Backstageには他にも開発者の認知負荷を低減する様々な機能が存在します。その効果も使い方次第でより大きくなります。 ご興味のある方がいらっしゃいましたらぜひ弊社までご相談ください。よろしくお願いします。
www.ap-com.co.jp www.ap-com.co.jp
弊社では開発者ポータルBackstageのマネージドサービスである「PlaTT」も提供しております。 Backstageに興味があるという方もぜひご連絡をいただけると嬉しいです。