by shigemk2

当面は技術的なことしか書かない

upgrade guide cert-manager

We recommend that you upgrade cert-manager one minor version at a time, always choosing the latest patch version for the minor version. You should always read the release notes for the minor version to which you are upgrading. In cases where a large version jump is needed to get an installation up to date, it may be possible to do a full uninstall and re-install of cert-manager without application downtime and/or unnecessary re-issuances, however we do not guarantee that this will work for your particular setup see Reinstalling cert-manager.

とのことなので、マイナーバージョン1つずつのバージョンアップが推奨される

cert-manager.io

SonarQube LOCカウント

サーバーのドキュメントだけどクラウドでも一緒だと思われる

  • サポートしてない言語のコードはカウントされない

Code in unsupported languages does not count as LOC. However, if you run a 3rd party plugin that introduces support (for that language), the newly analyzed code will be counted towards your LOC.

  • テストコードはカウントされない

Lines of test code do not count as LOC.

docs.sonarsource.com

google_project_iam_memberなどのconditions

Terraform considers the role and condition contents (title+description+expression) as the identifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will consider it to be an entirely different resource and will treat it as such.

Terraformはroleと条件の内容(title+description+expression)をバインディングの識別子とみなしているので、expressionを変更すると破壊的変更になる

registry.terraform.io

datadog-ci sourcemaps upload disable-gitオプション

  • --disable-git(デフォルト: false)は、コマンドが現在の作業ディレクトリで git を実行するのを防ぎ、リポジトリ関連のデータ(コミットハッシュ、リモート URL、ソースマップで参照されているソースのリポジトリ内パス)を Datadog に送信しないようにするオプション
    • GitHub 等のコードへのジャンプ機能が使えなくなる

github.com

ScaleObject

  • KEDA(Kubernetes ベースのイベント駆動オートスケーラー)
  • ScaledObject KEDA が Deployment、StatefulSet、およびカスタムリソースのスケーリングに使用するトリガーとスケーリング動作を定義するカスタムリソース定義(CRD)
  • Ready: True は、ScaledObject が正しく設定され、KEDA がターゲットリソースとトリガーを認識できている状態
  • Active: True は、トリガー条件が現在満たされていて、スケーリングがアクティブに動作している(=イベントソースにメトリクスがある)状態

keda.sh

keda.sh

Datadog ソースマップ

フロントエンドの JavaScript ソースコードが縮小化されている場合、Datadog にソースマップをアップロードして、異なるスタックトレースの難読化を解除します。

とのこと

  1. webpack.config.js で devtool: 'hidden-source-map' を設定
  2. 本番ビルドを実行 → dist/ に .js と .js.map ファイルが生成される
  3. CI パイプラインで datadog-ci sourcemaps upload を実行してアップロード
  4. アップロード後、デプロイ前に .js.map ファイルを削除(本番環境に公開しない)

docs.datadoghq.com

Renovate/Mend.io メモ

経緯:買収による統合

Renovate Botは、依存関係の自動更新ツールで、2019年にMend.ioに買収された。

買収に伴い、それまで有料だったGitHub Appのプライベートリポジトリ向けプランと、セルフホスト型の Renovate Pro の両方が無料化された。これらは「Mend Renovate」というブランドに統合されている。

Renovate とは何か

Renovate の中核は、リポジトリから依存関係ファイルを取得し、バージョン更新情報やチェンジログをダウンロードして、プルリクエストを通じて更新を提案する JavaScript プロセス。npm、Java、Python、.NET、Scala、Ruby、Go、Docker など90以上のパッケージマネージャーをサポートしている。

オープンソースの維持

買収後も、Renovateのコア機能はオープンソースリポジトリで引き続き開発されており、OSIライセンスの下で公開されている。つまり、CLIツールはnpmやDocker Hub を通じて従来通り無料で利用可能。GitHub上のrenovatebot/renovateリポジトリはMend.ioが公式にサポート・メンテナンスしている。

現在の製品ラインナップ

Mend Renovateは現在3つの製品階層で提供されています。

  • Renovate CLI(OSS) 無料でオープンソースのコミュニティ主導バージョンで、基本的な依存関係管理機能を備えている。個人開発者や小規模チーム向け。
  • Mend Renovate Community — こちらも無料、ジョブスケジューリングやAPIアクセスなどの利便性向上機能が追加。組み込みのスケジューラーモジュールがリポジトリを設定可能な間隔でキューに入れ、Webhookリスナーがリポジトリイベントを検知して即座にRenovateジョブをトリガー。
  • Mend Renovate Enterprise エンプラ

Mend Remediate との関係

Mend.ioは「MendRemediate」という関連製品がある。MendRemediateは脆弱なオープンソースコンポーネントに対して、最も低い非脆弱バージョンへのアップグレードを行う修正プルリクエストを自動で作成するツール。Remediateは内部的にRenovateCLIをサブプロセスとして実行しており、各リポジトリスキャンごとに親プロセスの環境変数を継承して動作する。つまり、RemediateはRenovateのエンジンの上に、Mend.ioの脆弱性検知機能を組み合わせた上位製品という位置づけ。

公式ドキュメント

主なドキュメントの所在は以下の通りです。

OSS のコアは引き続きオープンに開発されつつ、Mend.io がエンタープライズ向けの機能やサポートを上乗せして商用展開している、という関係。

Error: Cask 'emacs-app' definition is invalid: 'conflicts_with' stanza failed with

emacs-appでも同じことが起きる brew doctorなどしてもダメで、メタデータが古いDSLを使っているので /opt/homebrew/Caskroomから消せってコメントされてる しかし単に/opt/homebrew/Caskroomからemacs-appを消して brew install --cask emacs-app するだけではダメで、追加でApplications bin manのemacsやctagsなどの追加インストールされたコマンドも丸ごと消す必要がある

brew install --cask emacs-appを実行してると

Error: It seems there is already a Binary at '/opt/homebrew/bin/etags'.

だの

Error: It seems there is already a Manpage at '/opt/homebrew/share/man/man1/etags.1.gz'.

だの出てくるので、エラーが出たら都度消すのが安全

==> Installing Cask emacs-app
==> Moving App 'Emacs.app' to '/Applications/Emacs.app'
==> Linking Binary 'Emacs' to '/opt/homebrew/bin/emacs'
==> Linking Binary 'ctags' to '/opt/homebrew/bin/ctags'
==> Linking Binary 'ebrowse' to '/opt/homebrew/bin/ebrowse'
==> Linking Binary 'emacsclient' to '/opt/homebrew/bin/emacsclient'
==> Linking Binary 'etags' to '/opt/homebrew/bin/etags'
==> Linking Manpage 'ctags.1.gz' to '/opt/homebrew/share/man/man1/ctags.1.gz'
==> Linking Manpage 'ebrowse.1.gz' to '/opt/homebrew/share/man/man1/ebrowse.1.gz'
==> Linking Manpage 'emacs.1.gz' to '/opt/homebrew/share/man/man1/emacs.1.gz'
==> Linking Manpage 'emacsclient.1.gz' to '/opt/homebrew/share/man/man1/emacsclient.1.gz'
==> Linking Manpage 'etags.1.gz' to '/opt/homebrew/share/man/man1/etags.1.gz'
🍺  emacs-app was successfully installed!

github.com

L4 LB vs L7 LB

  • レイヤー4負荷分散
    • トランスポート
    • メッセージの実際の内容を可視化しない
    • アプリケーションポートやプロトコルなどのネットワーク情報に基づいてトラフィックを管理
    • 単純なパケットレベルの負荷分散に有効
    • メッセージの検査や復号を行わないため、迅速かつ効率的で安全な転送が可能
    • デメリット レイヤー4の負荷分散ではコンテンツに基づく判断ができない
      • メディアタイプやローカライズのルールなど、ラウンドロビンルーティングのような単純なアルゴリズム以上の条件でトラフィックをルーティングできない
  • レイヤー7負荷分散
    • アプリケーション
    • HTTPやSMTPなどのプロトコルを使用して、各メッセージの実際のコンテンツに基づいて決定
    • トラフィックの中身をチェックしないまま転送することはしない
    • ネットワークトラフィックを終端し、必要に応じて復号を行い、メッセージを検査し、コンテンツベースのルーティングを決定し、適切な上位サーバーに新しいTCP接続を開始し、リクエストを送信する
    • サーバーの永続性(スティッキーセッション)を提供

www.a10networks.co.jp