HN 표시: Argazer – ArgoCD 애플리케이션에서 오래된 Helm 차트를 감지합니다.
hackernews
|
|
📦 오픈소스
#argocd
#devops
#helm
#kubernetes
#모니터링
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
Argazer는 ArgoCD 애플리케이션의 Helm 차트 업데이트를 모니터링하는 경량 도구로, API를 통해 연결하여 새 버전이 있을 때 사용자에게 알림을 제공합니다. 이 도구는 단일 실행(CI/CD 및 크론 작업용)과 다양한 출력 형식(표, JSON, 마크다운)을 지원하며, 텔레그램, 이메일, 슬랙 등 다양한 알림 채널을 제공합니다. 또한, 전통적인 Helm 레포지토리뿐만 아니라 Git 저장소와 OCI 레지스트리도 지원하여 유연한 환경 구성이 가능합니다.
본문
Argazer (a wordplay on "Argo" and "gazer") is a lightweight tool that monitors your ArgoCD applications for Helm chart updates. It connects to ArgoCD via API, scans your applications, and notifies you when newer versions are available. $ argazer ================================================================================ ARGAZER SCAN RESULTS ================================================================================ Total applications checked: 15 Up to date: 11 Updates available: 4 Skipped: 0 -------------------------------------------------------------------------------- APPLICATIONS WITH UPDATES AVAILABLE: -------------------------------------------------------------------------------- Application: cert-manager Project: internal Chart: cert-manager Current Version: 1.18.5 Latest Version: v1.20.0 Repository: https://charts.jetstack.io ... - Single-run execution - Runs once on launch, perfect for CI/CD or cron jobs - Multiple output formats - Table (human-readable), JSON (programmatic), or Markdown (documentation) - Flexible logging - JSON (production) or text (development) log formats - Interactive configuration - argazer configure command with step-by-step wizard - Git Repository Support - Monitor Helm charts stored in Git repositories (GitHub, GitLab, Bitbucket, etc.) - OCI Registry Support - Works with OCI-based Helm repositories (Harbor, GHCR, ACR, etc.) - Traditional Helm Repos - Supports classic HTTP-based Helm chart repositories - Flexible filtering - Filter by projects, application names, and labels - Multiple notification channels - Telegram, Email, Slack, Microsoft Teams, Generic Webhooks, or console-only output - Secure ArgoCD connection - Username/password authentication with optional TLS verification - Environment variable support - All settings configurable via AG_* environment variables - Graceful error handling - Clear error messages for unsupported scenarios - Multi-source support - Handles ArgoCD applications with multiple Helm sources git clone [email protected]:kreicer/argazer.git cd argazer go build -o argazer . Multi-architecture images available for AMD64 and ARM64 (Apple Silicon, Raspberry Pi, AWS Graviton, etc.): # Pull the latest image (automatically selects the right architecture) docker pull ghcr.io/kreicer/argazer:latest # Or specific version docker pull ghcr.io/kreicer/argazer:v1.0.4 # Or build locally docker build -t argazer:latest . Argazer can be configured via: - Configuration file (config.yaml) - Command-line flags - Environment variables (prefixed with AG_ ) Create a config.yaml file: # ArgoCD Connection argocd_url: "argocd.example.com" # Just hostname, no https:// prefix argocd_username: "admin" argocd_password: "your-password" argocd_insecure: false # Set to true to skip TLS verification # Search Scope projects: - "*" # All projects, or specify: ["project1", "project2"] app_names: - "*" # All apps, or specify: ["app1", "app2"] labels: # Optional: filter by labels type: "operator" environment: "production" # Notification Channel ("telegram", "email", "slack", "teams", "webhook", or empty for console-only) notification_channel: "telegram" # Telegram Settings telegram_webhook: "https://api.telegram.org/botTOKEN/sendMessage" telegram_chat_id: "123456789" # Email Settings email_smtp_host: "smtp.gmail.com" email_smtp_port: 587 email_smtp_username: "[email protected]" email_smtp_password: "your-app-password" email_from: "[email protected]" email_to: - "[email protected]" email_use_tls: true # Slack Settings slack_webhook: "https://hooks.slack.com/services/YOUR/WEBHOOK/URL" # Microsoft Teams Settings teams_webhook: "https://outlook.office.com/webhook/YOUR/WEBHOOK/URL" # Generic Webhook Settings webhook_url: "https://your-webhook-endpoint.example.com/notify" # General verbose: false source_name: "chart-repo" # For multi-source apps, specify which source to check concurrency: 10 # Number of concurrent workers (default: 10) # Version Constraint Strategy # Controls which version updates to check for: # - "major": Check all versions (default) # - "minor": Only same major version # - "patch": Only same major.minor version_constraint: "major" # Output Format # Controls how results are displayed: # - "table": Human-readable formatted text (default) # - "json": JSON structured output for automation # - "markdown": Markdown formatted output for docs output_format: "table" # Log Format # Controls the format of application logs (not scan results): # - "json": Structured JSON logs for production (default) # - "text": Human-readable text logs for development log_format: "json" All configuration options can be set via environment variables with the AG_ prefix: # ArgoCD Connection export AG_ARGOCD_URL="argocd.example.com" export AG_ARGOCD_USERNAME="admin" export AG_ARGOCD_PASSWORD="your-password" export AG_ARGOCD_INSECURE="false" # Search Scope export AG_PROJECTS="project1,project2" # or "*" for all export AG_APP_NAMES="app1,app2" # or "*" for all export AG_LABELS="type=operator,e
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유