Open4
Renovate
スケジュール無視
更新対象リポジトリのrenovate.json5
のスケジュール設定を無視するには--schedule=""
(または単に--schedule=
)を使う
特定のmanagerのみ
特定のmanagerだけ対象にするには--enabled-managers=regex
みたいにする
Renovateはaws-sdkを使っている
AWS上のSelf-managed GitLabだと、CIでRenovateを動かすときインスタンスプロファイルのIAMロールに権限が足りていれば
Renovateに対しては特に何も設定しなくてもECRのイメージの更新確認ができる
values.yamlのイメージをaws-for-fluent-bitのstableに限って更新させる
{
"packageRules": [
{
"matchDepNames": ["public.ecr.aws/aws-observability/aws-for-fluent-bit"],
"matchDatasources": ["docker"],
"matchManagers": ["helm-values"],
"enabled": false
}
],
"customManagers": [
{
"customType": "regex",
"fileMatch": [
"values\\.yaml"
],
"matchStrings": [
"public\\.ecr\\.aws\\/aws-observability\\/aws-for-fluent-bit:(?<currentValue>.*)"
],
"datasourceTemplate": "custom.aws-for-fluent-bit-stable",
"depNameTemplate": "public.ecr.aws/aws-observability/aws-for-fluent-bit"
}
],
"customDatasources": {
"aws-for-fluent-bit-stable": {
"defaultRegistryUrlTemplate": "https://raw.githubusercontent.com/aws/aws-for-fluent-bit/mainline/AWS_FOR_FLUENT_BIT_STABLE_VERSION",
"format": "plain"
}
}
}
EKS AMIを更新
dataでrecommended(最新)を取って使っていたけどAMIリリースのタイミングによって本番で最初に新しいAMIが適用されたりしてdev->stg->prodの順を保証したかった
data "aws_ssm_parameter" "eks_ami_id" {
# https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/retrieve-ami-id.html
name = "/aws/service/eks/optimized-ami/${var.cluster_version}/amazon-linux-2/recommended/image_id"
}
"regexManagers": [
{
"customType": "regex",
"fileMatch": [".*\\.tf"],
"matchStrings":
[
".*amiFilter=(?<packageName>.*?)\n(.*currentImageName=(?<currentDigest>.*?)\n)?(.*\n)?.*?(?<depName>[a-zA-Z0-9-_:]*)[ ]*?[:|=][ ]*?[\"|']?(?<currentValue>ami-[a-z0-9]{17})[\"|']?.*"
],
"datasourceTemplate": "aws-machine-image",
"versioningTemplate": "aws-machine-image"
}
],
resource "aws_launch_template" "foo" {
# amiFilter=[{"Name":"owner-alias","Values":["amazon"]},{"Name":"name","Values":["amazon-eks-node-1.27-*"]}]
# currentImageName=amazon-eks-node-1.27-v20230816
image_id = "ami-065345b6ba37b05b6"
}
image_id
の値だけでなく、コメントのcurrentImageName
の方も更新してくれる(matchStringsに含まれてる)
amiFilter
のデバッグはaws ec2 describe-images
でやる
aws ec2 describe-images --filter '[{"Name":"owner-alias","Values":["amazon"]},{"Name":"name","Values":["amazon-eks-node-1.27-*"]}]'
=
の左辺は引用符で囲わないこと
locals {
ami_id = {
# amiFilter=[{"Name":"owner-alias","Values":["amazon"]},{"Name":"name","Values":["amazon-eks-node-1.27-*"]}]
# currentImageName=amazon-eks-node-1.27-v20230919
AL2_x86_64 = "ami-09f97dd1c9e12a629"
# amiFilter=[{"Name":"owner-alias","Values":["amazon"]},{"Name":"name","Values":["amazon-eks-arm64-node-1.27-*"]}]
# currentImageName=amazon-eks-arm64-node-1.27-v20230919
AL2_ARM_64 = "ami-0a929dabc0dfad09f"
}
}