Compare commits
19 Commits
7a9b1cb675
..
1.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c3637dad1 | |||
| 952f8a03c2 | |||
| 2de6e2d055 | |||
| 5e80c539bb | |||
| 67292c2524 | |||
| ad42dd7921 | |||
|
9b689f90cb
|
|||
| b5206ed105 | |||
| 288527b9bd | |||
| adcd59e48f | |||
| ecd185e74e | |||
|
920500f335
|
|||
| f60ca960d6 | |||
| 69b24e9e09 | |||
| 651682092a | |||
| e982d69dd6 | |||
|
5293e94e21
|
|||
| a257fabbc8 | |||
| d95d216e0b |
@@ -3,6 +3,7 @@ name: cron-checker
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
tags: ['*']
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
@@ -28,3 +29,16 @@ jobs:
|
||||
run: |
|
||||
go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||
govulncheck ./...
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [test, vulnerabilities]
|
||||
if: github.event_name == 'push'
|
||||
env:
|
||||
BUILDTOOLS_CONTENT: ${{ secrets.BUILDTOOLS_CONTENT }}
|
||||
GITEA_REPOSITORY: ${{ gitea.repository }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: buildtool/setup-buildtools-action@v1
|
||||
- name: Build and push
|
||||
run: unset GITEA_TOKEN && build && push
|
||||
|
||||
@@ -2,6 +2,35 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [1.6.0] - 2026-01-10
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- Add Docker build and push to CI workflow
|
||||
|
||||
## [1.5.0] - 2026-01-10
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- Run CI workflow on tags
|
||||
|
||||
## [1.4.0] - 2026-01-09
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- Migrate from GitLab CI to Gitea Actions
|
||||
- Add release workflow using shared workflow
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Add CLAUDE.md for Claude Code guidance
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(deps)* Update golang:1.25.5 docker digest to ad03ba9
|
||||
- *(deps)* Update actions/checkout action to v6
|
||||
- *(deps)* Update actions/setup-go action to v6
|
||||
|
||||
## [1.3.18] - 2025-12-18
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
A Kubernetes monitoring tool that checks for CronJobs not running according to schedule and sends Slack notifications. It runs as a container inside a K8s cluster, polling all CronJobs every 60 seconds.
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
# Run tests
|
||||
go test ./...
|
||||
|
||||
# Run tests with race detection and coverage
|
||||
go test -race -coverprofile=coverage.txt ./...
|
||||
|
||||
# Build the binary
|
||||
CGO_ENABLED=0 go build -o release/cron-checker -ldflags '-w -s'
|
||||
|
||||
# Check for vulnerabilities
|
||||
govulncheck ./...
|
||||
|
||||
# Format and vet
|
||||
go fmt ./...
|
||||
go vet ./...
|
||||
|
||||
# Check for unused modules
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
This is a single-file Go application (`main.go`) with comprehensive tests (`main_test.go`).
|
||||
|
||||
**Core Components:**
|
||||
- `doCheck()` - Main loop that polls K8s CronJobs, parses cron schedules, and sends Slack alerts for overdue jobs
|
||||
- `Client` / `ClientProvider` interfaces - Abstractions over K8s client for testability
|
||||
- `ConfigProvider` / `InClusterProvider` - Handles K8s in-cluster authentication
|
||||
|
||||
**Key Dependencies:**
|
||||
- `k8s.io/client-go` - Kubernetes API client
|
||||
- `github.com/robfig/cron` - Cron schedule parsing
|
||||
- `github.com/multiplay/go-slack` - Slack webhook integration
|
||||
- `github.com/alecthomas/kingpin/v2` - CLI flag parsing
|
||||
|
||||
**Configuration:**
|
||||
- `SLACK_URL` env var or `--slack-url` flag (required) - Slack webhook URL for notifications
|
||||
|
||||
## Building Docker Image
|
||||
|
||||
The Dockerfile performs a multi-stage build that runs fmt, vet, and tests before building:
|
||||
|
||||
```bash
|
||||
docker build -t cron-checker .
|
||||
```
|
||||
|
||||
To extract coverage report:
|
||||
```bash
|
||||
docker build --target export -o . .
|
||||
```
|
||||
Reference in New Issue
Block a user