You've already forked prometheus-fail2ban-exporter
							
							Compare commits
	
		
			38 Commits
		
	
	
		
			v0.1.1
			...
			ba33ee3645
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ba33ee3645 | |||
| 7d95e6407e | |||
| 6f5dbbba3f | |||
| 425c5777c4 | |||
| 3f2d9103f3 | |||
| e312ba9d12 | |||
| 7a6c5e497b | |||
| 2a9a3a3eb1 | |||
| 211d8aec18 | |||
| be8df93ac9 | |||
| 766bec03de | |||
| 533c019b80 | |||
| 8a5ebcab7c | |||
| 7540303fa3 | |||
| 5388f53963 | |||
| 4d3847ca67 | |||
| be67170a6f | |||
| e4d457d73c | |||
| 3810acad34 | |||
| b8cb19ea7b | |||
| 9eed0fe492 | |||
| 76f5437ab3 | |||
| b291247c3f | |||
| e7d99c78d1 | |||
| ec377df034 | |||
| 43fbbc015e | |||
| 064cf42743 | |||
| 35155770c8 | |||
| e9c4f60cb5 | |||
| 5ae780517a | |||
| 451b3659a1 | |||
| 218c04b34b | |||
| 4a1297b9b8 | |||
| 9cf687c7e4 | |||
| ce09c1b5df | |||
| 5d52473015 | |||
| 8c8a721e39 | |||
| 005648f7d4 | 
							
								
								
									
										610
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										610
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -1,610 +0,0 @@ | |||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: linter |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: markdown lint |  | ||||||
|   commands: |  | ||||||
|   - markdownlint *.md |  | ||||||
|   image: git.cryptic.systems/volker.raschek/markdownlint:0.43.0 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: unit-test-amd64 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: unit-test |  | ||||||
|   commands: |  | ||||||
|   - go test -v ./... |  | ||||||
|   image: docker.io/library/golang:1.24.0 |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: unit-test-arm64 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   arch: arm64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: unit-test |  | ||||||
|   commands: |  | ||||||
|   - go test -v ./... |  | ||||||
|   image: docker.io/library/golang:1.24.0 |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     include: |  | ||||||
|     - pull_request |  | ||||||
|     - push |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: dry-run-amd64 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - linter |  | ||||||
| - unit-test-amd64 |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: false |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     dry_run: true |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     tags: latest-amd64 |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|     exclude: |  | ||||||
|     - master |  | ||||||
|   event: |  | ||||||
|   - pull_request |  | ||||||
|   - push |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: dry-run-arm64-v8 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - linter |  | ||||||
| - unit-test-arm64 |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: arm64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: false |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     dry_run: true |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     tags: latest-arm64-v8 |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|     exclude: |  | ||||||
|     - master |  | ||||||
|   event: |  | ||||||
|   - pull_request |  | ||||||
|   - push |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: latest-amd64 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - linter |  | ||||||
| - unit-test-amd64 |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: false |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     tags: latest-amd64 |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|   - master |  | ||||||
|   event: |  | ||||||
|   - cron |  | ||||||
|   - push |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: latest-arm64-v8 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - linter |  | ||||||
| - unit-test-arm64 |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: arm64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: false |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     tags: latest-arm64-v8 |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|   - master |  | ||||||
|   event: |  | ||||||
|   - cron |  | ||||||
|   - push |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: latest-manifest |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - latest-amd64 |  | ||||||
| - latest-arm64-v8 |  | ||||||
|  |  | ||||||
| # docker.io/plugins/manifest only for amd64 architectures available |  | ||||||
| node_selector: |  | ||||||
|   kubernetes.io/os: linux |  | ||||||
|   kubernetes.io/arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build-manifest |  | ||||||
|   image: docker.io/plugins/manifest:1.4.0 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: false |  | ||||||
|     ignore_missing: true |  | ||||||
|     spec: manifest.tmpl |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|   - master |  | ||||||
|   event: |  | ||||||
|   - cron |  | ||||||
|   - push |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: tagged-amd64 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: true |  | ||||||
|     auto_tag_suffix: amd64 |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|     build_args: |  | ||||||
|     - VERSION=${DRONE_TAG} |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|   - tag |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: tagged-arm64-v8 |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: arm64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build |  | ||||||
|   image: docker.io/plugins/docker:20.18.7 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: true |  | ||||||
|     auto_tag_suffix: arm64-v8 |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     force_tag: true |  | ||||||
|     no_cache: true |  | ||||||
|     purge: true |  | ||||||
|     mirror: |  | ||||||
|       from_secret: docker_io_mirror |  | ||||||
|     registry: git.cryptic.systems |  | ||||||
|     repo: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|     build_args: |  | ||||||
|     - VERSION=${DRONE_TAG} |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|   - tag |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: tagged-manifest |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| depends_on: |  | ||||||
| - tagged-amd64 |  | ||||||
| - tagged-arm64-v8 |  | ||||||
|  |  | ||||||
| # docker.io/plugins/manifest only for amd64 architectures available |  | ||||||
| node_selector: |  | ||||||
|   kubernetes.io/os: linux |  | ||||||
|   kubernetes.io/arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: build-manifest |  | ||||||
|   image: docker.io/plugins/manifest:1.4.0 |  | ||||||
|   settings: |  | ||||||
|     auto_tag: true |  | ||||||
|     ignore_missing: true |  | ||||||
|     spec: manifest.tmpl |  | ||||||
|     username: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_user |  | ||||||
|     password: |  | ||||||
|       from_secret: git_cryptic_systems_container_registry_password |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|   - tag |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-fail2ban-exporter |  | ||||||
							
								
								
									
										24
									
								
								.gitea/workflows/golang-tests.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.gitea/workflows/golang-tests.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | name: Golang Tests | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     branches: [ '**' ] | ||||||
|  |     tags-ignore: [ '**' ] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   unittest: | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         go: [ stable ] | ||||||
|  |         os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ] | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v5.0.0 | ||||||
|  |     - uses: actions/setup-go@v5.5.0 | ||||||
|  |       with: | ||||||
|  |         go-version: ${{ matrix.go }} | ||||||
|  |     - env: | ||||||
|  |         GOPROXY: ${{ vars.GOPROXY }} | ||||||
|  |       run: make test/unit | ||||||
							
								
								
									
										27
									
								
								.gitea/workflows/golangci-lint.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								.gitea/workflows/golangci-lint.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | name: Golang CI lint | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     branches: [ '**' ] | ||||||
|  |     tags-ignore: [ '**' ] | ||||||
|  |  | ||||||
|  | permissions: | ||||||
|  |   contents: read | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   golangci: | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         go: [ stable ] | ||||||
|  |         os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ] | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v5.0.0 | ||||||
|  |     - uses: actions/setup-go@v5.5.0 | ||||||
|  |       with: | ||||||
|  |         go-version: ${{ matrix.go }} | ||||||
|  |     - uses: golangci/golangci-lint-action@v8.0.0 | ||||||
|  |       with: | ||||||
|  |         version: v2.1 | ||||||
							
								
								
									
										18
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | name: 'Lint Markdown files' | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     branches: [ '*' ] | ||||||
|  |     tags-ignore: [ '*' ] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   markdown-lint: | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v5.0.0 | ||||||
|  |     - uses: DavidAnson/markdownlint-cli2-action@v20.0.0 | ||||||
|  |       with: | ||||||
|  |         globs: '**/*.md' | ||||||
							
								
								
									
										52
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | name: Release | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: [ '**' ] | ||||||
|  |  | ||||||
|  | permissions: | ||||||
|  |   contents: write | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   release: | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v5.0.0 | ||||||
|  |     - uses: docker/setup-qemu-action@v3.6.0 | ||||||
|  |     - uses: actions/setup-go@v5.5.0 | ||||||
|  |       with: | ||||||
|  |         go-version: stable | ||||||
|  |     - uses: docker/login-action@v3.5.0 | ||||||
|  |       with: | ||||||
|  |         registry: git.cryptic.systems | ||||||
|  |         username: ${{ github.repository_owner }} | ||||||
|  |         password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} | ||||||
|  |     - env: | ||||||
|  |         GITEA_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} | ||||||
|  |         GONOSUMDB: ${{ vars.GONOSUMDB }} | ||||||
|  |         GOPROXY: ${{ vars.GOPROXY }} | ||||||
|  |       uses: goreleaser/goreleaser-action@v6.3.0 | ||||||
|  |       with: | ||||||
|  |         version: "~> v2" | ||||||
|  |         args: release --clean | ||||||
|  |  | ||||||
|  |   sync-to-hub-docker-io: | ||||||
|  |     needs: | ||||||
|  |     - release | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Copy images to docker.io | ||||||
|  |       run: | | ||||||
|  |         TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm') | ||||||
|  |  | ||||||
|  |         apt-get update --yes | ||||||
|  |         apt-get install --yes skopeo | ||||||
|  |         skopeo copy \ | ||||||
|  |           --all \ | ||||||
|  |           --dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \ | ||||||
|  |           --dest-username ${{ secrets.DOCKER_IO_USERNAME }} \ | ||||||
|  |           --src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \ | ||||||
|  |           --src-username volker.raschek \ | ||||||
|  |             docker://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:${TAG} \ | ||||||
|  |             docker://docker.io/volkerraschek/prometheus-fail2ban-exporter:${TAG} | ||||||
| @@ -1,30 +0,0 @@ | |||||||
| name: Run unit tests |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
|     branches: |  | ||||||
|     - '*' |  | ||||||
|     types: [ "opened", "reopened", "synchronize" ] |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|     - '*' |  | ||||||
|   workflow_dispatch: {} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   test: |  | ||||||
|     container: |  | ||||||
|       image: docker.io/library/golang:1.24.0 |  | ||||||
|     runs-on: |  | ||||||
|     - ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|     - name: Install tooling |  | ||||||
|       run: | |  | ||||||
|         apt-get update --yes |  | ||||||
|         apt-get upgrade --yes |  | ||||||
|         apt-get install --yes git npm |  | ||||||
|     - uses: actions/checkout@v4 |  | ||||||
|     - env: |  | ||||||
|         GOPROXY: ${{ vars.GOPROXY }} |  | ||||||
|         GONOSUMDB: ${{ vars.GONOSUMDB }} |  | ||||||
|       name: Execute containerized unit test |  | ||||||
|       run: make test |  | ||||||
							
								
								
									
										20
									
								
								.gitea/workflows/update-docker-hub-description.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.gitea/workflows/update-docker-hub-description.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | name: Update Docker Hub Description | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: [ 'master' ] | ||||||
|  |     paths: [ 'README.md' ] | ||||||
|  |   workflow_dispatch: {} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   update-description-on-hub-docker-io: | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - uses: actions/checkout@v5.0.0 | ||||||
|  |     - uses: peter-evans/dockerhub-description@v4.0.2 | ||||||
|  |       with: | ||||||
|  |         username: ${{ secrets.DOCKER_IO_USERNAME }} | ||||||
|  |         password: ${{ secrets.DOCKER_IO_PASSWORD }} | ||||||
|  |         repository: volkerraschek/prometheus-fail2ban-exporter | ||||||
|  |         readme-filepath: README.md | ||||||
							
								
								
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,3 @@ | |||||||
| .idea/ |  | ||||||
| vendor/ |  | ||||||
| *.iml |  | ||||||
|  |  | ||||||
| build/ |  | ||||||
| dist/ |  | ||||||
|  |  | ||||||
| prometheus-fail2ban-exporter | prometheus-fail2ban-exporter | ||||||
|  | coverage.txt | ||||||
|  | dist | ||||||
							
								
								
									
										175
									
								
								.goreleaser.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								.goreleaser.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | |||||||
|  | project_name: prometheus-fail2ban-exporter | ||||||
|  |  | ||||||
|  | archives: | ||||||
|  | - formats: [ "tar.xz" ] | ||||||
|  |   files: | ||||||
|  |   - README.md | ||||||
|  |   - LICENSE | ||||||
|  |  | ||||||
|  | before: | ||||||
|  |   hooks: | ||||||
|  |   - go mod tidy | ||||||
|  |  | ||||||
|  | builds: | ||||||
|  | - main: main.go | ||||||
|  |   binary: >- | ||||||
|  |     {{ .ProjectName }}- | ||||||
|  |     {{- .Version }}- | ||||||
|  |     {{- .Os }}- | ||||||
|  |     {{- if eq .Arch "amd64" }}amd64 | ||||||
|  |     {{- else if eq .Arch "amd64_v1" }}amd64 | ||||||
|  |     {{- else }}{{ .Arch }}{{ end }} | ||||||
|  |     {{- if .Arm }}-{{ .Arm }}{{ end }} | ||||||
|  |   env: | ||||||
|  |   - CGO_ENABLED=0 | ||||||
|  |   - GONOSUMDB={{ .Env.GONOSUMDB }} | ||||||
|  |   - GOPROXY={{ .Env.GOPROXY }} | ||||||
|  |   goos: | ||||||
|  |   - linux | ||||||
|  |   goarch: | ||||||
|  |   - amd64 | ||||||
|  |   - arm | ||||||
|  |   - arm64 | ||||||
|  |   - riscv64 | ||||||
|  |   goarm: | ||||||
|  |   - "6" | ||||||
|  |   - "7" | ||||||
|  |   flags: | ||||||
|  |   - -trimpath | ||||||
|  |   ldflags: | ||||||
|  |   - -s -w -X 'main.version={{ trimprefix .Tag "v" }}' -X 'main.date={{ time "2006-01-02T15:04:05Z07:00" }}' | ||||||
|  |  | ||||||
|  | changelog: | ||||||
|  |   filters: | ||||||
|  |     exclude: | ||||||
|  |     - '^chore' | ||||||
|  |     - '^docs' | ||||||
|  |     - '^test' | ||||||
|  |     - Merge pull request | ||||||
|  |     - Merge branch | ||||||
|  |     - go mod tidy | ||||||
|  |   format: "{{.SHA}}: {{.Message}} (@{{.AuthorUsername}})" | ||||||
|  |   groups: | ||||||
|  |   - title: Features | ||||||
|  |     regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' | ||||||
|  |     order: 0 | ||||||
|  |   - title: "Bug fixes" | ||||||
|  |     regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' | ||||||
|  |     order: 1 | ||||||
|  |   - title: Others | ||||||
|  |     order: 999 | ||||||
|  |   sort: asc | ||||||
|  |   use: git | ||||||
|  |  | ||||||
|  | dockers: | ||||||
|  | - build_flag_templates: | ||||||
|  |   - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} | ||||||
|  |   - --label=org.opencontainers.image.description={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.documentation={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.revision={{ .FullCommit }} | ||||||
|  |   - --label=org.opencontainers.image.source={{ .GitURL }} | ||||||
|  |   - --label=org.opencontainers.image.title={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }} | ||||||
|  |   - --platform=linux/amd64 | ||||||
|  |   - --pull | ||||||
|  |   dockerfile: Dockerfile | ||||||
|  |   goarch: amd64 | ||||||
|  |   goos: linux | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64' | ||||||
|  |   skip_push: false | ||||||
|  |   use: buildx | ||||||
|  |  | ||||||
|  | - build_flag_templates: | ||||||
|  |   - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} | ||||||
|  |   - --label=org.opencontainers.image.description={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.documentation={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.revision={{ .FullCommit }} | ||||||
|  |   - --label=org.opencontainers.image.source={{ .GitURL }} | ||||||
|  |   - --label=org.opencontainers.image.title={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }} | ||||||
|  |   - --platform=linux/arm/v6 | ||||||
|  |   - --pull | ||||||
|  |   dockerfile: Dockerfile | ||||||
|  |   goarch: arm | ||||||
|  |   goarm: "6" | ||||||
|  |   goos: linux | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6' | ||||||
|  |   skip_push: false | ||||||
|  |   use: buildx | ||||||
|  |  | ||||||
|  | - build_flag_templates: | ||||||
|  |   - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} | ||||||
|  |   - --label=org.opencontainers.image.description={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.documentation={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.revision={{ .FullCommit }} | ||||||
|  |   - --label=org.opencontainers.image.source={{ .GitURL }} | ||||||
|  |   - --label=org.opencontainers.image.title={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }} | ||||||
|  |   - --platform=linux/arm/v7 | ||||||
|  |   - --pull | ||||||
|  |   dockerfile: Dockerfile | ||||||
|  |   goarch: arm | ||||||
|  |   goarm: "7" | ||||||
|  |   goos: linux | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7' | ||||||
|  |   skip_push: false | ||||||
|  |   use: buildx | ||||||
|  |  | ||||||
|  | - build_flag_templates: | ||||||
|  |   - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} | ||||||
|  |   - --label=org.opencontainers.image.description={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.documentation={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.revision={{ .FullCommit }} | ||||||
|  |   - --label=org.opencontainers.image.source={{ .GitURL }} | ||||||
|  |   - --label=org.opencontainers.image.title={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }} | ||||||
|  |   - --platform=linux/arm64 | ||||||
|  |   - --pull | ||||||
|  |   dockerfile: Dockerfile | ||||||
|  |   goarch: arm64 | ||||||
|  |   goos: linux | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64' | ||||||
|  |   skip_push: false | ||||||
|  |   use: buildx | ||||||
|  |  | ||||||
|  | - build_flag_templates: | ||||||
|  |   - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} | ||||||
|  |   - --label=org.opencontainers.image.description={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.documentation={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.revision={{ .FullCommit }} | ||||||
|  |   - --label=org.opencontainers.image.source={{ .GitURL }} | ||||||
|  |   - --label=org.opencontainers.image.title={{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }} | ||||||
|  |   - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }} | ||||||
|  |   - --platform=linux/riscv64 | ||||||
|  |   - --pull | ||||||
|  |   dockerfile: Dockerfile | ||||||
|  |   goarch: riscv64 | ||||||
|  |   goos: linux | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64' | ||||||
|  |   skip_push: false | ||||||
|  |   use: buildx | ||||||
|  |  | ||||||
|  | docker_manifests: | ||||||
|  | - name_template: 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}' | ||||||
|  |   image_templates: | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64' | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6' | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7' | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64' | ||||||
|  |   - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64' | ||||||
|  |  | ||||||
|  | gitea_urls: | ||||||
|  |   api: https://git.cryptic.systems/api/v1 | ||||||
|  |   download: https://git.cryptic.systems | ||||||
|  |  | ||||||
|  | version: 2 | ||||||
| @@ -45,19 +45,17 @@ MD012: | |||||||
| # MD013/line-length - Line length | # MD013/line-length - Line length | ||||||
| MD013: | MD013: | ||||||
|   # Number of characters |   # Number of characters | ||||||
|   line_length: 80 |   line_length: 120 | ||||||
|   # Number of characters for headings |   # Number of characters for headings | ||||||
|   heading_line_length: 80 |   heading_line_length: 120 | ||||||
|   # Number of characters for code blocks |   # Number of characters for code blocks | ||||||
|   code_block_line_length: 80 |   code_block_line_length: 120 | ||||||
|   # Include code blocks |   # Include code blocks | ||||||
|   code_blocks: false |   code_blocks: false | ||||||
|   # Include tables |   # Include tables | ||||||
|   tables: false |   tables: false | ||||||
|   # Include headings |   # Include headings | ||||||
|   headings: true |   headings: true | ||||||
|   # Include headings |  | ||||||
|   headers: true |  | ||||||
|   # Strict length checking |   # Strict length checking | ||||||
|   strict: false |   strict: false | ||||||
|   # Stern length checking |   # Stern length checking | ||||||
| @@ -70,11 +68,6 @@ MD022: | |||||||
|   # Blank lines below heading |   # Blank lines below heading | ||||||
|   lines_below: 1 |   lines_below: 1 | ||||||
|  |  | ||||||
| # MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content |  | ||||||
| MD024: |  | ||||||
|   # Only check sibling headings |  | ||||||
|   allow_different_nesting: true |  | ||||||
|  |  | ||||||
| # MD025/single-title/single-h1 - Multiple top-level headings in the same document | # MD025/single-title/single-h1 - Multiple top-level headings in the same document | ||||||
| MD025: | MD025: | ||||||
|   # Heading level |   # Heading level | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,19 +1,5 @@ | |||||||
| FROM docker.io/library/golang:1.24.0 AS build | FROM scratch AS build | ||||||
|  |  | ||||||
| WORKDIR /workspace | COPY prometheus-fail2ban-exporter-* /usr/bin/prometheus-fail2ban-exporter | ||||||
| ADD . /workspace |  | ||||||
|  |  | ||||||
| RUN apt update --yes && \ | ENTRYPOINT [ "/usr/bin/prometheus-fail2ban-exporter" ] | ||||||
|     apt install --yes build-essential && \ |  | ||||||
|     make install \ |  | ||||||
|       PREFIX=/usr \ |  | ||||||
|       DESTDIR=/app \ |  | ||||||
|       EXECUTABLE=prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
| FROM docker.io/library/debian:12-slim |  | ||||||
|  |  | ||||||
| COPY --from=build /app / |  | ||||||
|  |  | ||||||
| EXPOSE 9191 |  | ||||||
|  |  | ||||||
| ENTRYPOINT [ "/usr/bin/prometheus-fail2ban-exporter" ] |  | ||||||
							
								
								
									
										169
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,85 +1,118 @@ | |||||||
|  | EXECUTABLE=prometheus-fail2ban-exporter | ||||||
|  | VERSION?=$(shell git describe --abbrev=0)+hash.$(shell git rev-parse --short HEAD) | ||||||
|  |  | ||||||
|  | # Destination directory and prefix to place the compiled binaries, documentaions | ||||||
|  | # and other files. | ||||||
| DESTDIR?= | DESTDIR?= | ||||||
| PREFIX?=/usr/local | PREFIX?=/usr/local | ||||||
| EXECUTABLE?=prometheus-fail2ban-exporter |  | ||||||
|  |  | ||||||
|  | # CONTAINER_RUNTIME | ||||||
|  | # The CONTAINER_RUNTIME variable will be used to specified the path to a | ||||||
|  | # container runtime. This is needed to start and run a container image. | ||||||
| CONTAINER_RUNTIME?=$(shell which podman) | CONTAINER_RUNTIME?=$(shell which podman) | ||||||
|  |  | ||||||
| # List make commands | # PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_NAME | ||||||
| .PHONY: ls | # Defines the name of the new container to be built using several variables. | ||||||
| ls: | PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_NAME:=git.cryptic.systems | ||||||
| 	cat Makefile | grep "^[a-zA-Z#].*" | cut -d ":" -f 1 | sed s';#;\n#;'g | PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_USER:=volker.raschek | ||||||
|  |  | ||||||
| # Run project tests | PROM_FAIL2BAN_EXP_IMAGE_NAMESPACE?=${PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_USER} | ||||||
| .PHONY: test | PROM_FAIL2BAN_EXP_IMAGE_NAME:=${EXECUTABLE} | ||||||
| test: | PROM_FAIL2BAN_EXP_IMAGE_VERSION?=latest | ||||||
| 	GONOSUMDB=${GONOSUMDB} \ | PROM_FAIL2BAN_EXP_IMAGE_FULLY_QUALIFIED=${PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_NAME}/${PROM_FAIL2BAN_EXP_IMAGE_NAMESPACE}/${PROM_FAIL2BAN_EXP_IMAGE_NAME}:${PROM_FAIL2BAN_EXP_IMAGE_VERSION} | ||||||
| 	GOPROXY=${GOPROXY} \ |  | ||||||
| 		go test ./... -v -race |  | ||||||
|  |  | ||||||
| # Look for "suspicious constructs" in source code | # BIN | ||||||
| .PHONY: vet | # ============================================================================== | ||||||
| vet: | prometheus-fail2ban-exporter: | ||||||
| 	GONOSUMDB=${GONOSUMDB} \ | 	CGO_ENABLED=0 \ | ||||||
| 	GOPROXY=${GOPROXY} \ | 	GOPROXY=$(shell go env GOPROXY) \ | ||||||
| 		go vet ./... | 		go build -ldflags "-X 'main.version=${VERSION}' -X 'main.date=$(shell date --rfc-3339=seconds )'" -o ${@} main.go | ||||||
|  |  | ||||||
| # Format code | # CLEAN | ||||||
| .PHONY: fmt | # ============================================================================== | ||||||
| fmt: | PHONY+=clean | ||||||
| 	GONOSUMDB=${GONOSUMDB} \ | clean: | ||||||
| 	GOPROXY=${GOPROXY} \ | 	rm --force --recursive prometheus-fail2ban-exporter | ||||||
| 		go mod tidy |  | ||||||
|  |  | ||||||
| 	GONOSUMDB=${GONOSUMDB} \ | # TESTS | ||||||
| 	GOPROXY=${GOPROXY} \ | # ============================================================================== | ||||||
| 		go fmt ./... | PHONY+=test/unit | ||||||
|  | test/unit: | ||||||
|  | 	CGO_ENABLED=0 \ | ||||||
|  | 	GOPROXY=$(shell go env GOPROXY) \ | ||||||
|  | 		go test -v -p 1 -coverprofile=coverage.txt -covermode=count -timeout 1200s ./... | ||||||
|  |  | ||||||
| # Check for unformatted go code | PHONY+=test/integration | ||||||
| .PHONY: check/fmt | test/integration: | ||||||
| check/fmt: | 	CGO_ENABLED=0 \ | ||||||
| 	test -z $(shell gofmt -l .) | 	GOPROXY=$(shell go env GOPROXY) \ | ||||||
|  | 		go test -v -p 1 -count=1 -timeout 1200s ./it/... | ||||||
|  |  | ||||||
| # Build project | PHONY+=test/coverage | ||||||
| .PHONY: build | test/coverage: test/unit | ||||||
| build: | 	CGO_ENABLED=0 \ | ||||||
| 	CGO_ENABLED=0 | 	GOPROXY=$(shell go env GOPROXY) \ | ||||||
| 	GONOSUMDB=${GONOSUMDB} \ | 		go tool cover -html=coverage.txt | ||||||
| 	GOPROXY=${GOPROXY} \ |  | ||||||
| 		go build \ |  | ||||||
| 			-ldflags "\ |  | ||||||
| 				-X main.version=${shell git describe --tags} \ |  | ||||||
| 				-X main.commit=${shell git rev-parse HEAD} \ |  | ||||||
| 				-X main.date=${shell date --iso-8601=seconds} \ |  | ||||||
| 				-X main.builtBy=manual \ |  | ||||||
| 			" \ |  | ||||||
| 			-trimpath \ |  | ||||||
| 			-o ${EXECUTABLE} \ |  | ||||||
| 			exporter.go |  | ||||||
|  |  | ||||||
| # build container-image | # GOLANGCI-LINT | ||||||
| .PHONY: build/container-image | # ============================================================================== | ||||||
| build/container-image: | PHONY+=golangci-lint | ||||||
|  | golangci-lint: | ||||||
|  | 	golangci-lint run --concurrency=$(shell nproc) | ||||||
|  |  | ||||||
|  | # INSTALL | ||||||
|  | # ============================================================================== | ||||||
|  | PHONY+=uninstall | ||||||
|  | install: prometheus-fail2ban-exporter | ||||||
|  | 	install --directory ${DESTDIR}/etc/bash_completion.d | ||||||
|  | 	./prometheus-fail2ban-exporter completion bash > ${DESTDIR}/etc/bash_completion.d/${EXECUTABLE} | ||||||
|  |  | ||||||
|  | 	install --directory ${DESTDIR}${PREFIX}/bin | ||||||
|  | 	install --mode 0755 ${EXECUTABLE} ${DESTDIR}${PREFIX}/bin/${EXECUTABLE} | ||||||
|  |  | ||||||
|  | 	install --directory ${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE} | ||||||
|  | 	install --mode 0644 LICENSE ${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE}/LICENSE | ||||||
|  |  | ||||||
|  | 	install --directory ${DESTDIR}${PREFIX}/systemd/system | ||||||
|  | 	install --mode 0644 systemd/systemd.service ${DESTDIR}${PREFIX}/systemd/system/${EXECUTABLE}.service | ||||||
|  | 	sed --in-place --regexp-extended 's/EXECUTABLE/${EXECUTABLE}/gm' ${DESTDIR}${PREFIX}/systemd/system/${EXECUTABLE}.service | ||||||
|  |  | ||||||
|  | # UNINSTALL | ||||||
|  | # ============================================================================== | ||||||
|  | PHONY+=uninstall | ||||||
|  | uninstall: | ||||||
|  | 	-rm --force --recursive \ | ||||||
|  | 		${DESTDIR}/etc/bash_completion.d/${EXECUTABLE} \ | ||||||
|  | 		${DESTDIR}${PREFIX}/bin/${EXECUTABLE} \ | ||||||
|  | 		${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE} | ||||||
|  |  | ||||||
|  | # BUILD CONTAINER IMAGE | ||||||
|  | # ============================================================================== | ||||||
|  | PHONY+=container-image/build | ||||||
|  | container-image/build: | ||||||
| 	${CONTAINER_RUNTIME} build \ | 	${CONTAINER_RUNTIME} build \ | ||||||
| 		--tag ${EXECUTABLE} \ | 		--build-arg VERSION=${VERSION} \ | ||||||
|  | 		--file Dockerfile \ | ||||||
|  | 		--no-cache \ | ||||||
|  | 		--pull \ | ||||||
|  | 		--tag ${PROM_FAIL2BAN_EXP_IMAGE_FULLY_QUALIFIED} \ | ||||||
| 		. | 		. | ||||||
|  |  | ||||||
| .PHONY: install | # DELETE CONTAINER IMAGE | ||||||
| install: build | # ============================================================================== | ||||||
| 	mkdir --parents ${DESTDIR}/usr/lib/systemd/system | PHONY:=container-image/delete | ||||||
| 	sed -e "s/EXECUTABLE/${EXECUTABLE}/gm" systemd/systemd.service > ${DESTDIR}/usr/lib/systemd/system/${EXECUTABLE}.service | container-image/delete: | ||||||
| 	chmod 0644 ${DESTDIR}/usr/lib/systemd/system/${EXECUTABLE}.service | 	- ${CONTAINER_RUNTIME} image rm ${PROM_FAIL2BAN_EXP_IMAGE_FULLY_QUALIFIED} | ||||||
|  |  | ||||||
| 	install -D --mode 0755 --target-directory ${DESTDIR}${PREFIX}/bin ${EXECUTABLE} | # PUSH CONTAINER IMAGE | ||||||
|  | # ============================================================================== | ||||||
|  | PHONY+=container-image/push | ||||||
|  | container-image/push: | ||||||
|  | 	echo ${PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_NAME} --username ${PROM_FAIL2BAN_EXP_IMAGE_REGISTRY_USER} --password-stdin | ||||||
|  | 	${CONTAINER_RUNTIME} push ${PROM_FAIL2BAN_EXP_IMAGE_FULLY_QUALIFIED} | ||||||
|  |  | ||||||
| # NOTE: Set restrict file permissions by default to protect optional basic auth credentials | # PHONY | ||||||
| 	install -D --mode 0600 env ${DESTDIR}/etc/conf.d/${EXECUTABLE} | # ============================================================================== | ||||||
|  | # Declare the contents of the PHONY variable as phony.  We keep that information | ||||||
| 	install -D --mode 0755 --target-directory ${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE} LICENSE | # in a variable so we can use it in if_changed. | ||||||
|  | .PHONY: ${PHONY} | ||||||
| .PHONY: uninstall |  | ||||||
| uninstall: |  | ||||||
| 	-rm --recursive --force \ |  | ||||||
| 		${DESTDIR}${PREFIX}/bin/${EXECUTABLE} \ |  | ||||||
| 		${DESTDIR}/usr/lib/systemd/system/${EXECUTABLE}.service \ |  | ||||||
| 		${DESTDIR}/etc/conf.d/${EXECUTABLE} \ |  | ||||||
| 		${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE}/LICENSE |  | ||||||
							
								
								
									
										68
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,11 +1,7 @@ | |||||||
| # prometheus-fail2ban-exporter | # prometheus-fail2ban-exporter | ||||||
|  |  | ||||||
| [](https://drone.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter) | This is a fork of Hector's fail2ban [exporter](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter). This fork | ||||||
|  | contains some changes to get the application running in a kubernetes cluster. | ||||||
| This is a fork of Hector's fail2ban |  | ||||||
| [exporter](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter). This |  | ||||||
| fork contains some changes to get the application running in a kubernetes |  | ||||||
| cluster. |  | ||||||
|  |  | ||||||
| ## Table of Contents | ## Table of Contents | ||||||
|  |  | ||||||
| @@ -21,8 +17,8 @@ The exporter can be run as a standalone binary or a docker container. | |||||||
|  |  | ||||||
| ### 1.1. Standalone | ### 1.1. Standalone | ||||||
|  |  | ||||||
| The following command will start collecting metrics from the | The following command will start collecting metrics from the `/var/run/fail2ban/fail2ban.sock` file and expose them on | ||||||
| `/var/run/fail2ban/fail2ban.sock` file and expose them on port `9191`. | port `9191`. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| $ fail2ban_exporter --collector.f2b.socket=/var/run/fail2ban/fail2ban.sock --web.listen-address=":9191" | $ fail2ban_exporter --collector.f2b.socket=/var/run/fail2ban/fail2ban.sock --web.listen-address=":9191" | ||||||
| @@ -35,12 +31,10 @@ $ fail2ban_exporter --collector.f2b.socket=/var/run/fail2ban/fail2ban.sock --web | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Binary files for each release can be found on the | Binary files for each release can be found on the | ||||||
| [releases](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/releases) | [releases](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/releases) page. | ||||||
| page. |  | ||||||
|  |  | ||||||
| There is also an [example systemd service | There is also an [example systemd service file](/_examples/systemd/fail2ban_exporter.service) included in the | ||||||
| file](/_examples/systemd/fail2ban_exporter.service) included in the repository. | repository. This is a starting point to run the exporter as a service. | ||||||
| This is a starting point to run the exporter as a service. |  | ||||||
|  |  | ||||||
| ### 1.2. Docker | ### 1.2. Docker | ||||||
|  |  | ||||||
| @@ -68,14 +62,11 @@ services: | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Use the `:latest` tag to get the latest stable release. See the [registry | Use the `:latest` tag to get the latest stable release. See the [registry | ||||||
| page](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/container_registry) | page](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/container_registry) for all available tags. | ||||||
| for all available tags. |  | ||||||
|  |  | ||||||
| **NOTE:** While it is possible to mount the `fail2ban.sock` file directly, it is | **NOTE:** While it is possible to mount the `fail2ban.sock` file directly, it is recommended to mount the parent folder | ||||||
| recommended to mount the parent folder instead. The `.sock` file is deleted by | instead. The `.sock` file is deleted by fail2ban on shutdown and re-created on startup and this causes problems for the | ||||||
| fail2ban on shutdown and re-created on startup and this causes problems for the | docker mount. See [this reply](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/issues/11#note_665003499) | ||||||
| docker mount. See [this |  | ||||||
| reply](https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/-/issues/11#note_665003499) |  | ||||||
| for more details. | for more details. | ||||||
|  |  | ||||||
| ## 2. Metrics | ## 2. Metrics | ||||||
| @@ -117,20 +108,18 @@ Status for the jail: sshd | |||||||
|  |  | ||||||
| ### 2.1. Grafana | ### 2.1. Grafana | ||||||
|  |  | ||||||
| The metrics exported by this tool are compatible with Prometheus and Grafana. A | The metrics exported by this tool are compatible with Prometheus and Grafana. A sample grafana dashboard can be found in | ||||||
| sample grafana dashboard can be found in the | the [grafana.json](/_examples/grafana/dashboard.json) file. Just import the contents of this file into a new Grafana | ||||||
| [grafana.json](/_examples/grafana/dashboard.json) file. Just import the contents | dashboard to get started. | ||||||
| of this file into a new Grafana dashboard to get started. |  | ||||||
|  |  | ||||||
| The dashboard supports displaying data from multiple exporters. Use the | The dashboard supports displaying data from multiple exporters. Use the `instance` dashboard variable to select which | ||||||
| `instance` dashboard variable to select which ones to display. | ones to display. | ||||||
|  |  | ||||||
| *(Sample dashboard is compatible with Grafana `9.1.8` and above)* | *(Sample dashboard is compatible with Grafana `9.1.8` and above)* | ||||||
|  |  | ||||||
| ## 3. Configuration | ## 3. Configuration | ||||||
|  |  | ||||||
| The exporter is configured with CLI flags and environment variables. | The exporter is configured with CLI flags and environment variables. There are no configuration files. | ||||||
| There are no configuration files. |  | ||||||
|  |  | ||||||
| ### CLI flags | ### CLI flags | ||||||
|  |  | ||||||
| @@ -164,8 +153,7 @@ Flags: | |||||||
|  |  | ||||||
| ### Environment variables | ### Environment variables | ||||||
|  |  | ||||||
| Each environment variable corresponds to a CLI flag. | Each environment variable corresponds to a CLI flag. If both are specified, the CLI flag takes precedence. | ||||||
| If both are specified, the CLI flag takes precedence. |  | ||||||
|  |  | ||||||
| | Environment variable            | Corresponding CLI flag                            | | | Environment variable            | Corresponding CLI flag                            | | ||||||
| |---------------------------------|---------------------------------------------------| | |---------------------------------|---------------------------------------------------| | ||||||
| @@ -185,23 +173,18 @@ Building from source has the following dependencies: | |||||||
|  |  | ||||||
| From there, simply run `make build` | From there, simply run `make build` | ||||||
|  |  | ||||||
| This will download the necessary dependencies and build a `fail2ban_exporter` | This will download the necessary dependencies and build a `fail2ban_exporter` binary in the root of the project. | ||||||
| binary in the root of the project. |  | ||||||
|  |  | ||||||
| ## 5. Textfile metrics | ## 5. Textfile metrics | ||||||
|  |  | ||||||
| For more flexibility the exporter also allows exporting metrics collected from a | For more flexibility the exporter also allows exporting metrics collected from a text file. | ||||||
| text file. |  | ||||||
|  |  | ||||||
| To enable textfile metrics provide the directory to read files from with the | To enable textfile metrics provide the directory to read files from with the `--collector.textfile.directory` flag. | ||||||
| `--collector.textfile.directory` flag. |  | ||||||
|  |  | ||||||
| Metrics collected from these files will be exposed directly alongside the other | Metrics collected from these files will be exposed directly alongside the other metrics without any additional | ||||||
| metrics without any additional processing. This means that it is the | processing. This means that it is the responsibility of the file creator to ensure the format is correct. | ||||||
| responsibility of the file creator to ensure the format is correct. |  | ||||||
|  |  | ||||||
| By exporting textfile metrics an extra metric is also exported with an error | By exporting textfile metrics an extra metric is also exported with an error count for each file: | ||||||
| count for each file: |  | ||||||
|  |  | ||||||
| ```text | ```text | ||||||
| # HELP textfile_error Checks for errors while reading text files | # HELP textfile_error Checks for errors while reading text files | ||||||
| @@ -213,8 +196,7 @@ textfile_error{path="file.prom"} 0 | |||||||
|  |  | ||||||
| ### Running in Docker | ### Running in Docker | ||||||
|  |  | ||||||
| To collect textfile metrics inside a docker container, a couple of things need | To collect textfile metrics inside a docker container, a couple of things need to be done: | ||||||
| to be done: |  | ||||||
|  |  | ||||||
| 1. Mount the folder with the metrics files | 1. Mount the folder with the metrics files | ||||||
| 2. Set the `F2B_COLLECTOR_TEXT_PATH` environment variable | 2. Set the `F2B_COLLECTOR_TEXT_PATH` environment variable | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| # Systemd | # Systemd | ||||||
|  |  | ||||||
| The `.service` file in this directory should be copied to the `/etc/systemd/system/` folder. | The `.service` file in this directory should be copied to the `/etc/systemd/system/` folder. | ||||||
|  |  | ||||||
| - It expects the binary file to be installed at `/usr/sbin/fail2ban_exporter`. | - It expects the binary file to be installed at `/usr/sbin/fail2ban_exporter`. | ||||||
| - It expects a user named `fail2ban_exporter` to exist. This user should not have a shell or any special privileges aside from read-access to the fail2ban socket file. | - It expects a user named `fail2ban_exporter` to exist. This user should not have a shell or any special privileges | ||||||
|  |   aside from read-access to the fail2ban socket file. | ||||||
|  |  | ||||||
| The `ExecStart` line can be modified to add any custom CLI flags. | The `ExecStart` line can be modified to add any custom CLI flags. | ||||||
|   | |||||||
| @@ -74,7 +74,7 @@ func validateFlags(cliCtx *kong.Context) { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if !flagsValid { | 	if !flagsValid { | ||||||
| 		cliCtx.PrintUsage(false) | 		_ = cliCtx.PrintUsage(false) | ||||||
| 		fmt.Println() | 		fmt.Println() | ||||||
| 		for i := 0; i < len(messages); i++ { | 		for i := 0; i < len(messages); i++ { | ||||||
| 			fmt.Println(messages[i]) | 			fmt.Println(messages[i]) | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) { | |||||||
| 			os.Exit(1) | 			os.Exit(1) | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		defer s.Close() | 		defer func() { _ = s.Close() }() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	c.collectServerUpMetric(ch, s) | 	c.collectServerUpMetric(ch, s) | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								go.mod
									
									
									
									
									
								
							| @@ -2,26 +2,24 @@ module git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter | |||||||
|  |  | ||||||
| go 1.23.0 | go 1.23.0 | ||||||
|  |  | ||||||
| toolchain go1.24.0 | toolchain go1.24.6 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/alecthomas/kong v1.8.1 | 	github.com/alecthomas/kong v1.12.1 | ||||||
| 	github.com/kisielk/og-rek v1.3.0 | 	github.com/kisielk/og-rek v1.3.0 | ||||||
| 	github.com/nlpodyssey/gopickle v0.3.0 | 	github.com/nlpodyssey/gopickle v0.3.0 | ||||||
| 	github.com/prometheus/client_golang v1.21.0 | 	github.com/prometheus/client_golang v1.23.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1 // indirect | 	github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1 // indirect | ||||||
| 	github.com/beorn7/perks v1.0.1 // indirect | 	github.com/beorn7/perks v1.0.1 // indirect | ||||||
| 	github.com/cespare/xxhash/v2 v2.3.0 // indirect | 	github.com/cespare/xxhash/v2 v2.3.0 // indirect | ||||||
| 	github.com/klauspost/compress v1.18.0 // indirect |  | ||||||
| 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect | 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect | ||||||
| 	github.com/prometheus/client_model v0.6.1 // indirect | 	github.com/prometheus/client_model v0.6.2 // indirect | ||||||
| 	github.com/prometheus/common v0.62.0 // indirect | 	github.com/prometheus/common v0.65.0 // indirect | ||||||
| 	github.com/prometheus/procfs v0.15.1 // indirect | 	github.com/prometheus/procfs v0.16.1 // indirect | ||||||
| 	golang.org/x/exp v0.0.0-20250228200357-dead58393ab7 // indirect | 	golang.org/x/sys v0.33.0 // indirect | ||||||
| 	golang.org/x/sys v0.30.0 // indirect | 	golang.org/x/text v0.25.0 // indirect | ||||||
| 	golang.org/x/text v0.22.0 // indirect | 	google.golang.org/protobuf v1.36.6 // indirect | ||||||
| 	google.golang.org/protobuf v1.36.5 // indirect |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										70
									
								
								go.sum
									
									
									
									
									
								
							| @@ -1,56 +1,50 @@ | |||||||
| github.com/alecthomas/assert/v2 v2.6.0 h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU= |  | ||||||
| github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= | github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= | ||||||
| github.com/alecthomas/kong v0.9.0 h1:G5diXxc85KvoV2f0ZRVuMsi45IrBgx9zDNGNj165aPA= | github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= | ||||||
| github.com/alecthomas/kong v0.9.0/go.mod h1:Y47y5gKfHp1hDc7CH7OeXgLIpp+Q2m1Ni0L5s3bI8Os= | github.com/alecthomas/kong v1.12.1 h1:iq6aMJDcFYP9uFrLdsiZQ2ZMmcshduyGv4Pek0MQPW0= | ||||||
| github.com/alecthomas/kong v1.8.1 h1:6aamvWBE/REnR/BCq10EcozmcpUPc5aGI1lPAWdB0EE= | github.com/alecthomas/kong v1.12.1/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU= | ||||||
| github.com/alecthomas/kong v1.8.1/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU= |  | ||||||
| github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc= | github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc= | ||||||
| github.com/aristanetworks/gomap v0.0.0-20230726210543-f4e41046dced h1:HxlRMDx/VeRqzj3nvqX9k4tjeBcEIkoNHDJPsS389hs= | github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= | ||||||
| github.com/aristanetworks/gomap v0.0.0-20230726210543-f4e41046dced/go.mod h1:p7lmI+ecoe1RTyD11SPXWsSQ3H+pJ4cp5y7vtKW4QdM= |  | ||||||
| github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1 h1:D5mrqTj0YyG8O2A2SUCuPc2Qf68vyTBaWChSBAJtYJk= | github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1 h1:D5mrqTj0YyG8O2A2SUCuPc2Qf68vyTBaWChSBAJtYJk= | ||||||
| github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1/go.mod h1:v/+Hpx3wuPnPWEwT1unZJsNUe4Pu/y1Y+qAf+xj0Ykg= | github.com/aristanetworks/gomap v0.0.0-20240919214256-2b26376628e1/go.mod h1:v/+Hpx3wuPnPWEwT1unZJsNUe4Pu/y1Y+qAf+xj0Ykg= | ||||||
| github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= | github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= | ||||||
| github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | ||||||
| github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= | github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= | ||||||
| github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | ||||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
|  | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
|  | github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= | ||||||
|  | github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= | ||||||
| github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= | github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= | ||||||
|  | github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= | ||||||
| github.com/kisielk/og-rek v1.3.0 h1:lTXdQXqFETZKA//FWH4RBNAuiJ/dofxIwHAidoUZoMk= | github.com/kisielk/og-rek v1.3.0 h1:lTXdQXqFETZKA//FWH4RBNAuiJ/dofxIwHAidoUZoMk= | ||||||
| github.com/kisielk/og-rek v1.3.0/go.mod h1:4at7oxyfBTDilURhNCf7irHWtosJlJl9uyqUqAkrP4w= | github.com/kisielk/og-rek v1.3.0/go.mod h1:4at7oxyfBTDilURhNCf7irHWtosJlJl9uyqUqAkrP4w= | ||||||
| github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= |  | ||||||
| github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= |  | ||||||
| github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= | github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= | ||||||
| github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= | github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= | ||||||
| github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | ||||||
|  | github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= | ||||||
| github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= | github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= | ||||||
| github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= | github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= | ||||||
| github.com/nlpodyssey/gopickle v0.3.0 h1:BLUE5gxFLyyNOPzlXxt6GoHEMMxD0qhsE4p0CIQyoLw= | github.com/nlpodyssey/gopickle v0.3.0 h1:BLUE5gxFLyyNOPzlXxt6GoHEMMxD0qhsE4p0CIQyoLw= | ||||||
| github.com/nlpodyssey/gopickle v0.3.0/go.mod h1:f070HJ/yR+eLi5WmM1OXJEGaTpuJEUiib19olXgYha0= | github.com/nlpodyssey/gopickle v0.3.0/go.mod h1:f070HJ/yR+eLi5WmM1OXJEGaTpuJEUiib19olXgYha0= | ||||||
| github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= | github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= | ||||||
| github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= | github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= | ||||||
| github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= | github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= | ||||||
| github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= | github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= | ||||||
| github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= | github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= | ||||||
| github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= | github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= | ||||||
| github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= | github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= | ||||||
| github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= | github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= | ||||||
| github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= | ||||||
| github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 h1:Di6/M8l0O2lCLc6VVRWhgCiApHV8MnQurBnFSHsQtNY= | go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= | ||||||
| golang.org/x/exp v0.0.0-20230725093048-515e97ebf090/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= | go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= | ||||||
| golang.org/x/exp v0.0.0-20250228200357-dead58393ab7 h1:aWwlzYV971S4BXRS9AmqwDLAD85ouC6X+pocatKY58c= | golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= | ||||||
| golang.org/x/exp v0.0.0-20250228200357-dead58393ab7/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= | golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | ||||||
| golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= | golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= | ||||||
| golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= | ||||||
| golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= | google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= | ||||||
| golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= | ||||||
| golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
| golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= |  | ||||||
| golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= |  | ||||||
| google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= |  | ||||||
| google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= |  | ||||||
| google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= |  | ||||||
| google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= |  | ||||||
|   | |||||||
| @@ -16,14 +16,12 @@ import ( | |||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
| 	version = "dev" | 	version = "dev" | ||||||
| 	commit  = "none" |  | ||||||
| 	date    = "unknown" | 	date    = "unknown" | ||||||
| 	builtBy = "unknown" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func printAppVersion() { | func printAppVersion() { | ||||||
| 	fmt.Println(version) | 	fmt.Printf("Version:    %s\n", version) | ||||||
| 	fmt.Printf("    build date:  %s\r\n    commit hash: %s\r\n    built by:    %s\r\n", date, commit, builtBy) | 	fmt.Printf("Build date: %s\n", date) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func main() { | func main() { | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| image: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} |  | ||||||
| {{#if build.tags}} |  | ||||||
| tags: |  | ||||||
| {{#each build.tags}} |  | ||||||
|   - {{this}} |  | ||||||
| {{/each}} |  | ||||||
|   - "latest" |  | ||||||
| {{/if}} |  | ||||||
| manifests: |  | ||||||
|   - |  | ||||||
|     image: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 |  | ||||||
|     platform: |  | ||||||
|       architecture: amd64 |  | ||||||
|       os: linux |  | ||||||
|   - |  | ||||||
|     image: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8 |  | ||||||
|     platform: |  | ||||||
|       architecture: arm64 |  | ||||||
|       os: linux |  | ||||||
|       variant: v8 |  | ||||||
| @@ -1,79 +1,10 @@ | |||||||
| { | { | ||||||
|   "$schema": "https://docs.renovatebot.com/renovate-schema.json", |   "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||||||
|   "labels": [ "renovate" ], |   "extends": [ | ||||||
|   "packageRules": [ |     "local>volker.raschek/renovate-config:default#master", | ||||||
|     { |     "local>volker.raschek/renovate-config:container#master", | ||||||
|       "automerge": false, |     "local>volker.raschek/renovate-config:actions#master", | ||||||
|       "description": "Disable all package updates by default", |     "local>volker.raschek/renovate-config:golang#master", | ||||||
|       "enabled": false, |     "local>volker.raschek/renovate-config:regexp#master" | ||||||
|       "matchPackagePatterns": [ |   ] | ||||||
|         "*" |  | ||||||
|       ], |  | ||||||
|       "matchUpdateTypes": [ |  | ||||||
|         "major", |  | ||||||
|         "minor", |  | ||||||
|         "patch", |  | ||||||
|         "pin", |  | ||||||
|         "digest" |  | ||||||
|       ] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "addLabels": [ "renovate/droneci", "renovate/automerge" ], |  | ||||||
|       "automerge": true, |  | ||||||
|       "description": "Automatically update minor and patch versions of used drone-ci images", |  | ||||||
|       "enabled": true, |  | ||||||
|       "matchManagers": "droneci", |  | ||||||
|       "matchUpdateTypes": [ |  | ||||||
|         "minor", |  | ||||||
|         "patch" |  | ||||||
|       ] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "addLabels": [ |  | ||||||
|         "renovate/automerge", |  | ||||||
|         "renovate/github-action" |  | ||||||
|       ], |  | ||||||
|       "automerge": true, |  | ||||||
|       "description": "Automatically update public github-actions dependencies", |  | ||||||
|       "enabled": true, |  | ||||||
|       "matchManagers": [ |  | ||||||
|         "github-actions" |  | ||||||
|       ], |  | ||||||
|       "matchUpdateTypes": [ |  | ||||||
|         "minor", |  | ||||||
|         "patch" |  | ||||||
|       ] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "addLabels": [ |  | ||||||
|         "renovate/automerge", |  | ||||||
|         "renovate/golang" |  | ||||||
|       ], |  | ||||||
|       "automerge": true, |  | ||||||
|       "description": "Automatically update public go dependencies", |  | ||||||
|       "enabled": true, |  | ||||||
|       "matchDatasources": [ |  | ||||||
|         "go" |  | ||||||
|       ], |  | ||||||
|       "matchUpdateTypes": [ |  | ||||||
|         "minor", |  | ||||||
|         "patch" |  | ||||||
|       ] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "description": "Automatically update patch version of used container images in docker files", |  | ||||||
|       "addLabels": [ "renovate/container-image", "renovate/automerge" ], |  | ||||||
|       "automerge": true, |  | ||||||
|       "matchManagers": [ "dockerfile" ], |  | ||||||
|       "matchUpdateTypes": [ "patch" ] |  | ||||||
|     } |  | ||||||
|   ], |  | ||||||
|   "platformAutomerge": true, |  | ||||||
|   "postUpdateOptions": [ |  | ||||||
|     "gomodTidy" |  | ||||||
|   ], |  | ||||||
|   "prConcurrentLimit": 0, |  | ||||||
|   "prHourlyLimit": 0, |  | ||||||
|   "rebaseLabel": "renovate/rebase", |  | ||||||
|   "rebaseWhen": "behind-base-branch" |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user