Skip to content

Commit 34431d0

Browse files
chore: Prepare v1.0.0-rc.2 release (#624)
Co-authored-by: pmengelbert <[email protected]>
1 parent b199a9c commit 34431d0

File tree

26 files changed

+737
-27
lines changed

26 files changed

+737
-27
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION := v1.0.0-rc.1
1+
VERSION := v1.0.0-rc.2
22

33
MANAGER_TAG ?= ${VERSION}
44
TRIVY_SCANNER_TAG ?= ${VERSION}

charts/eraser/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: eraser
33
description: A Helm chart for Eraser
44
type: application
5-
version: 1.0.0-rc.1
6-
appVersion: v1.0.0-rc.1
5+
version: 1.0.0-rc.2
6+
appVersion: v1.0.0-rc.2
77
home: https://github.com/Azure/eraser
88
sources:
99
- https://github.com/Azure/eraser.git

charts/eraser/values.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ runtimeConfig:
3434
enabled: true
3535
image:
3636
# repo: ""
37-
tag: "v1.0.0-rc.1"
37+
tag: "v1.0.0-rc.2"
3838
request: {}
3939
# mem: ""
4040
# cpu: ""
@@ -45,7 +45,7 @@ runtimeConfig:
4545
enabled: true
4646
image:
4747
# repo: ""
48-
tag: "v1.0.0-rc.1"
48+
tag: "v1.0.0-rc.2"
4949
request: {}
5050
# mem: ""
5151
# cpu: ""
@@ -71,7 +71,7 @@ runtimeConfig:
7171
eraser:
7272
image:
7373
# repo: ""
74-
tag: "v1.0.0-rc.1"
74+
tag: "v1.0.0-rc.2"
7575
request: {}
7676
# mem: ""
7777
# cpu: ""
@@ -84,7 +84,7 @@ deploy:
8484
repo: ghcr.io/azure/eraser-manager
8585
pullPolicy: IfNotPresent
8686
# Overrides the image tag whose default is the chart appVersion.
87-
tag: "v1.0.0-rc.1"
87+
tag: "v1.0.0-rc.2"
8888
additionalArgs: []
8989
priorityClassName: ""
9090

deploy/eraser.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ data:
458458
enabled: true
459459
image:
460460
repo: ghcr.io/azure/collector
461-
tag: v1.0.0-rc.1
461+
tag: v1.0.0-rc.2
462462
request:
463463
mem: 25Mi
464464
cpu: 7m
@@ -470,7 +470,7 @@ data:
470470
enabled: true
471471
image:
472472
repo: ghcr.io/azure/eraser-trivy-scanner # supply custom image for custom scanner
473-
tag: v1.0.0-rc.1
473+
tag: v1.0.0-rc.2
474474
request:
475475
mem: 500Mi
476476
cpu: 1000m
@@ -502,7 +502,7 @@ data:
502502
eraser:
503503
image:
504504
repo: ghcr.io/azure/eraser
505-
tag: v1.0.0-rc.1
505+
tag: v1.0.0-rc.2
506506
request:
507507
mem: 25Mi
508508
# https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#how-pods-with-resource-limits-are-run
@@ -545,7 +545,7 @@ spec:
545545
fieldPath: metadata.namespace
546546
- name: OTEL_SERVICE_NAME
547547
value: eraser-manager
548-
image: ghcr.io/azure/eraser-manager:v1.0.0-rc.1
548+
image: ghcr.io/azure/eraser-manager:v1.0.0-rc.2
549549
livenessProbe:
550550
httpGet:
551551
path: /healthz
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Architecture
3+
---
4+
At a high level, Eraser has two main modes of operation: manual and automated.
5+
6+
Manual image removal involves supplying a list of images to remove; Eraser then
7+
deploys pods to clean up the images you supplied.
8+
9+
Automated image removal runs on a timer. By default, the automated process
10+
removes images based on the results of a vulnerability scan. The default
11+
vulnerability scanner is Trivy, but others can be provided in its place. Or,
12+
the scanner can be disabled altogether, in which case Eraser acts as a garbage
13+
collector -- it will remove all non-running images in your cluster.
14+
15+
## Manual image cleanup
16+
17+
<img title="manual cleanup" src="/eraser/docs/img/eraser_manual.png" />
18+
19+
## Automated analysis, scanning, and cleanup
20+
21+
<img title="automated cleanup" src="/eraser/docs/img/eraser_timer.png" />
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Code of Conduct
3+
---
4+
5+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
6+
7+
Resources:
8+
9+
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
10+
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
11+
- Contact [[email protected]](mailto:[email protected]) with questions or concerns
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Contributing
3+
---
4+
5+
There are several ways to get involved with Eraser
6+
7+
- Join the [mailing list](https://groups.google.com/u/1/g/eraser-dev) to get notifications for releases, security announcements, etc.
8+
- Participate in the [biweekly community meetings](https://docs.google.com/document/d/1Sj5u47K3WUGYNPmQHGFpb52auqZb1FxSlWAQnPADhWI/edit) to disucss development, issues, use cases, etc.
9+
- Join the `#eraser` channel on the [Kubernetes Slack](https://slack.k8s.io/)
10+
- View the [development setup instructions](https://azure.github.io/eraser/docs/development)
11+
12+
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
13+
14+
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
15+
16+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Custom Scanner
3+
---
4+
5+
## Creating a Custom Scanner
6+
To create a custom scanner for non-compliant images, use the following [template](https://github.com/Azure/eraser-scanner-template/).
7+
8+
In order to customize your scanner, start by creating a `NewImageProvider()`. The ImageProvider interface can be found can be found [here](../../pkg/scanners/template/scanner_template.go).
9+
10+
The ImageProvider will allow you to retrieve the list of all non-running and non-excluded images from the collector container through the `ReceiveImages()` function. Process these images with your customized scanner and threshold, and use `SendImages()` to pass the images found non-compliant to the eraser container for removal. Finally, complete the scanning process by calling `Finish()`.
11+
12+
When complete, provide your custom scanner image to Eraser in deployment.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Customization
3+
---
4+
5+
By default, successful jobs will be deleted after a period of time. You can change this behavior by setting the following flags in the eraser-controller-manager:
6+
7+
- `--job-cleanup-on-success-delay`: Duration to delay job deletion after successful runs. 0 means no delay. Defaults to `0`.
8+
- `--job-cleanup-on-error-delay`: Duration to delay job deletion after errored runs. 0 means no delay. Defaults to `24h`.
9+
- `--job-success-ratio`: Ratio of successful/total runs to consider a job successful. 1.0 means all runs must succeed. Defaults to `1.0`.
10+
11+
For duration, valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Exclusion
3+
---
4+
5+
## Excluding registries, repositories, and images
6+
Eraser can exclude registries (example, `docker.io/library/*`) and also specific images with a tag (example, `docker.io/library/ubuntu:18.04`) or digest (example, `sha256:80f31da1ac7b312ba29d65080fd...`) from its removal process.
7+
8+
To exclude any images or registries from the removal, create configmap(s) with the label `eraser.sh/exclude.list=true` in the eraser-system namespace with a JSON file holding the excluded images.
9+
10+
```bash
11+
$ cat > sample.json <<EOF
12+
{"excluded": ["docker.io/library/*", "ghcr.io/azure/test:latest"]}
13+
EOF
14+
15+
$ kubectl create configmap excluded --from-file=sample.json --namespace=eraser-system
16+
$ kubectl label configmap excluded eraser.sh/exclude.list=true -n eraser-system
17+
```
18+
19+
## Exempting Nodes from the Eraser Pipeline
20+
Exempting nodes with `--filter-nodes` is added in v0.3.0. When deploying Eraser, you can specify whether there is a list of nodes you would like to `include` or `exclude` from the cleanup process using the `--filter-nodes` argument.
21+
22+
_See [Eraser Helm Chart](https://github.com/Azure/eraser/blob/main/charts/eraser/README.md) for more information on deployment._
23+
24+
Nodes with the selector `eraser.sh/cleanup.filter` will be filtered accordingly.
25+
- If `include` is provided, eraser and collector pods will only be scheduled on nodes with the selector `eraser.sh/cleanup.filter`.
26+
- If `exclude` is provided, eraser and collector pods will be scheduled on all nodes besides those with the selector `eraser.sh/cleanup.filter`.
27+
28+
Unless specified, the default value of `--filter-nodes` is `exclude`. Because Windows nodes are not supported, they will always be excluded regardless of the `eraser.sh/cleanup.filter` label or the value of `--filter-nodes`.
29+
30+
Additional node selectors can be provided through the `--filter-nodes-selector` flag.

0 commit comments

Comments
 (0)