3 个不稳定版本
0.2.0 | 2023 年 5 月 19 日 |
---|---|
0.1.1 | 2023 年 5 月 12 日 |
0.1.0 | 2023 年 5 月 12 日 |
#3 在 #deletion
33 每月下载量
59KB
1.5K SLoC
dyson
dyson 是一个命令行工具,可以帮助您从注册表中删除未使用的 ECR 镜像。它提供了一些命令来管理删除过程。
安装
要使用 dyson,您需要安装 Rust 和 Cargo。如果您还没有安装它们,可以按照官方 Rust 安装指南进行操作:https://www.rust-lang.net.cn/tools/install。
安装 Rust 和 Cargo 后,您可以通过运行以下命令来安装 dyson
cargo install dyson
或者,您可以从 GitHub 发布页面 下载最新版本。
用法
dyson [OPTIONS] <COMMAND>
命令
init
:生成配置文件plan
:根据配置创建删除计划apply
:根据配置删除 ECR 镜像help
:打印此消息或给定子命令的帮助信息
选项
-c, --config <FILE>
:配置文件路径。默认:dyson.yaml
配置
Dyson 需要一个配置文件来指定识别未使用镜像的规则。默认情况下,配置文件名为 dyson.yaml
。
您可以根据自己的需求自定义配置文件。配置文件使用 YAML 格式,应包含以下信息
registry:
name: my-registry
profile_name: profile1
excludes:
- exclude/*
filters:
- pattern: '*'
days_after: 30
ignore_tag_patterns:
- latest
scans:
- name: scan-target
profile_name: profile2
notification:
slack:
webhook_url: https://hooks.slack.com/services/xxx/yyy/zzz
username: dyson-bot
channel: random
注册表配置
registry
部分定义了您的 ECR 注册表的设置
name(可选):您的 ECR 注册表的名称。
profile_name:用于访问注册表的 AWS 配置文件名称。
excludes(可选):要排除在删除过程之外的存储库模式的列表。支持通配符(
*
)。filters(可选):基于图像的最后一个推送日期和标记进行筛选的过滤器列表。
pattern:要匹配的存储库模式。支持通配符(
*
)。days_after(可选):图像推送后多少天被认为是删除目标。
ignore_tag_patterns
(可选):从目标中忽略删除的标签模式列表。支持通配符(*
)。
扫描配置
在扫描过程中,dyson将扫描由以下内容使用的账户:
- Lambda 函数
- ECS 服务
- ECS 任务定义(目前考虑最新两个版本为使用状态)
《scans
》部分定义了扫描目标账户。
name
(可选):扫描的名称。profile_name
:用于访问账户时认证的 AWS 配置文件名称。
如果需要,您可以在《scans
》部分中定义多个扫描。
通知配置
Dyson 提供了一个简单的通知机制来通知结果。目前,仅支持 Slack。
webhook_url
:通知将被发送到的 Slack webhook URL。username
(可选):用于通知显示的用户名。channel
(可选):通知将被发送到的 Slack 通道或用户 ID。
依赖项
~36–50MB
~747K SLoC