Skip to content

Commit 2bec48b

Browse files
committed
Reorder sections in upgrading.md to list the newest first
Reorder the sections in upgrading.md so that the most recent upgrade notes appear at the top of the page. Signed-off-by: Boris Shek <boris.shek@iteratec.com>
1 parent 4e3d202 commit 2bec48b

1 file changed

Lines changed: 128 additions & 131 deletions

File tree

documentation/docs/getting-started/upgrading.md

Lines changed: 128 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -10,131 +10,6 @@ path: "docs/getting-started/upgrading"
1010
sidebar_position: 3
1111

1212
---
13-
## From 2.X to 3.X
14-
15-
### Upgraded Kubebuilder Version to v3
16-
The CRD's are now using `apiextensions.k8s.io/v1` instead of `apiextensions.k8s.io/v1beta1` which requries at least Kubernetes Version 1.16 or higher.
17-
The Operator now uses the new kubebuilder v3 command line flag for enabling leader election and setting the metrics port. If you are using the official secureCodeBox Helm Charts for your deployment this has been updated automatically.
18-
19-
If you are using a custom deployment you have to change the `--enable-leader-election` flag to `--leader-elect` and `--metrics-addr` to `--metrics-bind-address`. For more context see: https://book.kubebuilder.io/migration/v2vsv3.html#tldr-of-the-new-gov3-plugin
20-
21-
➡️ [Reference: #512](https://github.com/secureCodeBox/secureCodeBox/pull/512)
22-
23-
### Restructured the secureCodeBox HelmCharts to introduce more consistency in HelmChart Values
24-
The secureCodeBox HelmCharts for hooks and scanners are following a new structure for all HelmChart Values:
25-
26-
Instead of secureCodebox Version 2 example:
27-
28-
```yaml
29-
image:
30-
# image.repository -- Container Image to run the scan
31-
repository: owasp/zap2docker-stable
32-
# image.tag -- defaults to the charts appVersion
33-
tag: null
34-
35-
parserImage:
36-
# parserImage.repository -- Parser image repository
37-
repository: docker.io/securecodebox/parser-zap
38-
# parserImage.tag -- Parser image tag
39-
# @default -- defaults to the charts version
40-
tag: null
41-
42-
parseJob:
43-
# parseJob.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the parser will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
44-
ttlSecondsAfterFinished: null
45-
46-
scannerJob:
47-
# scannerJob.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the scanner will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
48-
ttlSecondsAfterFinished: null
49-
# scannerJob.backoffLimit -- There are situations where you want to fail a scan Job after some amount of retries due to a logical error in configuration etc. To do so, set backoffLimit to specify the number of retries before considering a scan Job as failed. (see: https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy)
50-
# @default -- 3
51-
backoffLimit: 3
52-
```
53-
54-
The new HelmChart Values structure in secureCodebox Version 3 looks like:
55-
56-
```yaml
57-
parser:
58-
image:
59-
# parser.image.repository -- Parser image repository
60-
repository: docker.io/securecodebox/parser-zap
61-
# parser.image.tag -- Parser image tag
62-
# @default -- defaults to the charts version
63-
tag: null
64-
65-
# parser.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the parser will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
66-
ttlSecondsAfterFinished: null
67-
# @default -- 3
68-
backoffLimit: 3
69-
70-
scanner:
71-
image:
72-
# scanner.image.repository -- Container Image to run the scan
73-
repository: owasp/zap2docker-stable
74-
# scanner.image.tag -- defaults to the charts appVersion
75-
tag: null
76-
77-
# scanner.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the scanner will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
78-
ttlSecondsAfterFinished: null
79-
# scanner.backoffLimit -- There are situations where you want to fail a scan Job after some amount of retries due to a logical error in configuration etc. To do so, set backoffLimit to specify the number of retries before considering a scan Job as failed. (see: https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy)
80-
# @default -- 3
81-
backoffLimit: 3
82-
```
83-
➡️ [Reference: #472](https://github.com/secureCodeBox/secureCodeBox/issues/472)
84-
➡️ [Reference: #483](https://github.com/secureCodeBox/secureCodeBox/pull/483)
85-
➡️ [Reference: #484](https://github.com/secureCodeBox/secureCodeBox/pull/484)
86-
87-
### Added scanner.appendName to chart values
88-
Using `{{ .Release.name }}` in the `nmap` HelmChart Name for `scanTypes` causes issues when using this chart as a dependency of another chart. All scanners HelmCharts already used a fixed name for the `scanType` they introduce, with one exception: the `nmap` scanner HelmChart.
89-
90-
The nmap exception was originally introduced to make it possible configure yourself an `nmap-privilidged` scanType, which is capable of running operating system scans which requires some higher privileges: https://www.securecodebox.io/docs/scanners/nmap#operating-system-scans
91-
92-
This idea for extending the name of a scanType is now in Version 3 general available for all HelmCharts.
93-
94-
The solution was to add a new HelmChart Value `scanner.appendName` for appending a suffix to the already defined scanType name.
95-
Example: the `scanner.nameAppend: -privileged` for the ZAP scanner will create `zap-baseline-scan-privileged`, `zap-api-scan-privileged`, `zap-full-scan-privileged` as new scanTypes instead of `zap-baseline-scan`, `zap-api-scan`, `zap-full-scan`.
96-
97-
➡️ [Reference: #469](https://github.com/secureCodeBox/secureCodeBox/pull/469)
98-
99-
### Renamed demo-apps to demo-targets
100-
The provided vulnerable demos are renamed from `demo-apps` to `demo-targets`, this includes the namespace and the folder of the [helmcharts](https://github.com/secureCodeBox/secureCodeBox/tree/main/demo-targets).
101-
102-
### Renamed the hook declarative-subsequent-scans to cascading-scans
103-
The hook responsible for cascading scans is renamed from `declarative-subsequent-scans` to `cascading-scans`.
104-
105-
➡️ [Reference: #481](https://github.com/secureCodeBox/secureCodeBox/pull/481)
106-
107-
### Fixed Name Consistency In Docker Images / Repositories
108-
For the docker images for scanners and parsers we already had the naming convention of prefixing these images with `scanner-` or `parser-`.
109-
110-
Hook images however were named inconsistently (some prefixed with `hook-` some unprefixed).
111-
To introduce more consistency we renamed all hook images and prefix them with `hook-` like we did with parser and scanner images.
112-
113-
Please beware of this if you are referencing some of our hook images in your own HelmCharts or custom implementations.
114-
115-
➡️ [Reference: #500](https://github.com/secureCodeBox/secureCodeBox/pull/500)
116-
117-
### Renamed `lurcher` to `lurker`
118-
119-
In the 3.0 release, we corrected the misspelling in `lurcher`. To remove the remains after upgrade, delete the old service accounts and roles from the namespaces where you have executed scans in the past:
120-
121-
```bash
122-
# Find relevant namespaces
123-
kubectl get serviceaccounts --all-namespaces | grep lurcher
124-
125-
# Delete role, role binding and service account for the specific namespace
126-
kubectl --namespace <NAMESPACE> delete serviceaccount lurcher
127-
kubectl --namespace <NAMESPACE> delete rolebindings lurcher
128-
kubectl --namespace <NAMESPACE> delete role lurcher
129-
```
130-
131-
➡️ [Reference: #537](https://github.com/secureCodeBox/secureCodeBox/pull/537)
132-
133-
### Removed Hook Teams Webhook
134-
We implemented a more general *[notification hook](https://www.securecodebox.io/docs/hooks/notification-hook)* which can be used to notify different systems like *[MS Teams](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-a-ms-teams-notification)* and *[Slack](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-a-slack-notification)* and also [Email](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-an-email-notification) based in a more flexible way with [custom message templates](https://www.securecodebox.io/docs/hooks/notification-hook#custom-message-templates). With this new hook in place it is not nessesary to maintain the preexisting MS Teams Hook any longer and therefore we removed it.
135-
136-
➡️ [Reference: #570](https://github.com/secureCodeBox/secureCodeBox/pull/570)
137-
13813
## From 3.X to 4.X
13914

14015
### Renamed the docker images of demo-targets to include a "demo-target-" prefix
@@ -150,12 +25,11 @@ These images are usually used for testing and demo purposes. If you use these im
15025

15126
### Changed name of Container AutoDiscovery scans
15227

153-
Previously scheduled scans generated by the container autodiscovery are named in the format `scan-image_name-at-image_hash`. The resulting scan pod will be called `scan-scan-image_name-at-image_hash`.
28+
Previously scheduled scans generated by the container autodiscovery are named in the format `scan-image_name-at-image_hash`. The resulting scan pod will be called `scan-scan-image_name-at-image_hash`.
15429
To avoid the duplicate “scan-scan”, the scheduled scans from the container autodiscovery are renamed. As a result, the container autodiscovery will no longer correctly “recognize” the old scans anymore. It will instead create new scans according to the new naming scheme. The old scheduled scans must be deleted manually.
15530

15631
➡️ [Reference: #1193](https://github.com/secureCodeBox/secureCodeBox/pull/1193)
15732

158-
15933
### Cascading rules are disabled by default
16034

16135
Having the Cascading rules enabled by default on scanner helm install, has led to some confusion on the users side as mentioned in issue [#914](https://github.com/secureCodeBox/secureCodeBox/issues/914). As a result Cascading rules will have to be explicitly enabled by setting the `cascadingRules.enabled` value to `true`. For example as so:
@@ -165,7 +39,6 @@ helm upgrade --install nmap oci://ghcr.io/securecodebox/helm/nmap --set=cascadin
16539

16640
➡️ [Reference: #1347](https://github.com/secureCodeBox/secureCodeBox/pull/1347)
16741

168-
16942
### Service Autodiscovery - Managed-by label assumed to be presented for all scans
17043

17144
Old versions of the operator did not set `app.kubernetes.io/managed-by` label. Starting with V4 the service autodiscovery will assume every scheduled scan created by the autodiscovery will have this label. This means that older scheduled scans without the label will not be detected by the service autodiscovery and new duplicate scheduled scans will be created. Old scheduled scans without the `app.kubernetes.io/managed-by` label must be deleted manually.
@@ -177,10 +50,9 @@ The `zap` and `zap-advanced` parsers where changed to increase the consistency b
17750

17851
➡️ [Reference: #1346](https://github.com/secureCodeBox/secureCodeBox/pull/1346)
17952

180-
18153
### Container AutoDiscovery enabled by default and more consistent behavior compared to Service AutoDiscovery
18254

183-
The container autodiscovery will now be enabled by default. Additionally the container autodiscovery will now check if the configured scantype is installed in the namespace before it creates a scheduled scan (just like the service autodiscovery).
55+
The container autodiscovery will now be enabled by default. Additionally the container autodiscovery will now check if the configured scantype is installed in the namespace before it creates a scheduled scan (just like the service autodiscovery).
18456

18557
➡️ [Reference: #1112](https://github.com/secureCodeBox/secureCodeBox/pull/1112)
18658

@@ -271,6 +143,131 @@ As a example the findings for nmap has been changed like the following:
271143

272144
### `ssh-scan` (Mozilla ssh_scan) considered deprecated
273145

274-
SSH-Scan (Mozilla ssh_scan) is now considered deprecated as the tool is no longer maintained by mozilla. As a replacement we've added integration for [ssh-audit](https://github.com/jtesta/ssh-audit) as a replacement. The ssh-scan integration is still in this release but will be removed in a upcoming (feature) release. @Reet00 & @sofi0071
146+
SSH-Scan (Mozilla ssh_scan) is now considered deprecated as the tool is no longer maintained by mozilla. As a replacement we've added integration for [ssh-audit](https://github.com/jtesta/ssh-audit) as a replacement. The ssh-scan integration is still in this release but will be removed in a upcoming (feature) release. @Reet00 & @sofi0071
275147

276148
➡️ [Reference: #1713](https://github.com/secureCodeBox/secureCodeBox/pull/1713)
149+
150+
## From 2.X to 3.X
151+
152+
### Upgraded Kubebuilder Version to v3
153+
The CRD's are now using `apiextensions.k8s.io/v1` instead of `apiextensions.k8s.io/v1beta1` which requries at least Kubernetes Version 1.16 or higher.
154+
The Operator now uses the new kubebuilder v3 command line flag for enabling leader election and setting the metrics port. If you are using the official secureCodeBox Helm Charts for your deployment this has been updated automatically.
155+
156+
If you are using a custom deployment you have to change the `--enable-leader-election` flag to `--leader-elect` and `--metrics-addr` to `--metrics-bind-address`. For more context see: https://book.kubebuilder.io/migration/v2vsv3.html#tldr-of-the-new-gov3-plugin
157+
158+
➡️ [Reference: #512](https://github.com/secureCodeBox/secureCodeBox/pull/512)
159+
160+
### Restructured the secureCodeBox HelmCharts to introduce more consistency in HelmChart Values
161+
The secureCodeBox HelmCharts for hooks and scanners are following a new structure for all HelmChart Values:
162+
163+
Instead of secureCodebox Version 2 example:
164+
165+
```yaml
166+
image:
167+
# image.repository -- Container Image to run the scan
168+
repository: owasp/zap2docker-stable
169+
# image.tag -- defaults to the charts appVersion
170+
tag: null
171+
172+
parserImage:
173+
# parserImage.repository -- Parser image repository
174+
repository: docker.io/securecodebox/parser-zap
175+
# parserImage.tag -- Parser image tag
176+
# @default -- defaults to the charts version
177+
tag: null
178+
179+
parseJob:
180+
# parseJob.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the parser will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
181+
ttlSecondsAfterFinished: null
182+
183+
scannerJob:
184+
# scannerJob.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the scanner will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
185+
ttlSecondsAfterFinished: null
186+
# scannerJob.backoffLimit -- There are situations where you want to fail a scan Job after some amount of retries due to a logical error in configuration etc. To do so, set backoffLimit to specify the number of retries before considering a scan Job as failed. (see: https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy)
187+
# @default -- 3
188+
backoffLimit: 3
189+
```
190+
191+
The new HelmChart Values structure in secureCodebox Version 3 looks like:
192+
193+
```yaml
194+
parser:
195+
image:
196+
# parser.image.repository -- Parser image repository
197+
repository: docker.io/securecodebox/parser-zap
198+
# parser.image.tag -- Parser image tag
199+
# @default -- defaults to the charts version
200+
tag: null
201+
202+
# parser.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the parser will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
203+
ttlSecondsAfterFinished: null
204+
# @default -- 3
205+
backoffLimit: 3
206+
207+
scanner:
208+
image:
209+
# scanner.image.repository -- Container Image to run the scan
210+
repository: owasp/zap2docker-stable
211+
# scanner.image.tag -- defaults to the charts appVersion
212+
tag: null
213+
214+
# scanner.ttlSecondsAfterFinished -- seconds after which the Kubernetes job for the scanner will be deleted. Requires the Kubernetes TTLAfterFinished controller: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
215+
ttlSecondsAfterFinished: null
216+
# scanner.backoffLimit -- There are situations where you want to fail a scan Job after some amount of retries due to a logical error in configuration etc. To do so, set backoffLimit to specify the number of retries before considering a scan Job as failed. (see: https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy)
217+
# @default -- 3
218+
backoffLimit: 3
219+
```
220+
➡️ [Reference: #472](https://github.com/secureCodeBox/secureCodeBox/issues/472)
221+
➡️ [Reference: #483](https://github.com/secureCodeBox/secureCodeBox/pull/483)
222+
➡️ [Reference: #484](https://github.com/secureCodeBox/secureCodeBox/pull/484)
223+
224+
### Added scanner.appendName to chart values
225+
Using `{{ .Release.name }}` in the `nmap` HelmChart Name for `scanTypes` causes issues when using this chart as a dependency of another chart. All scanners HelmCharts already used a fixed name for the `scanType` they introduce, with one exception: the `nmap` scanner HelmChart.
226+
227+
The nmap exception was originally introduced to make it possible configure yourself an `nmap-privilidged` scanType, which is capable of running operating system scans which requires some higher privileges: https://www.securecodebox.io/docs/scanners/nmap#operating-system-scans
228+
229+
This idea for extending the name of a scanType is now in Version 3 general available for all HelmCharts.
230+
231+
The solution was to add a new HelmChart Value `scanner.appendName` for appending a suffix to the already defined scanType name.
232+
Example: the `scanner.nameAppend: -privileged` for the ZAP scanner will create `zap-baseline-scan-privileged`, `zap-api-scan-privileged`, `zap-full-scan-privileged` as new scanTypes instead of `zap-baseline-scan`, `zap-api-scan`, `zap-full-scan`.
233+
234+
➡️ [Reference: #469](https://github.com/secureCodeBox/secureCodeBox/pull/469)
235+
236+
### Renamed demo-apps to demo-targets
237+
The provided vulnerable demos are renamed from `demo-apps` to `demo-targets`, this includes the namespace and the folder of the [helmcharts](https://github.com/secureCodeBox/secureCodeBox/tree/main/demo-targets).
238+
239+
### Renamed the hook declarative-subsequent-scans to cascading-scans
240+
The hook responsible for cascading scans is renamed from `declarative-subsequent-scans` to `cascading-scans`.
241+
242+
➡️ [Reference: #481](https://github.com/secureCodeBox/secureCodeBox/pull/481)
243+
244+
### Fixed Name Consistency In Docker Images / Repositories
245+
For the docker images for scanners and parsers we already had the naming convention of prefixing these images with `scanner-` or `parser-`.
246+
247+
Hook images however were named inconsistently (some prefixed with `hook-` some unprefixed).
248+
To introduce more consistency we renamed all hook images and prefix them with `hook-` like we did with parser and scanner images.
249+
250+
Please beware of this if you are referencing some of our hook images in your own HelmCharts or custom implementations.
251+
252+
➡️ [Reference: #500](https://github.com/secureCodeBox/secureCodeBox/pull/500)
253+
254+
### Renamed `lurcher` to `lurker`
255+
256+
In the 3.0 release, we corrected the misspelling in `lurcher`. To remove the remains after upgrade, delete the old service accounts and roles from the namespaces where you have executed scans in the past:
257+
258+
```bash
259+
# Find relevant namespaces
260+
kubectl get serviceaccounts --all-namespaces | grep lurcher
261+
262+
# Delete role, role binding and service account for the specific namespace
263+
kubectl --namespace <NAMESPACE> delete serviceaccount lurcher
264+
kubectl --namespace <NAMESPACE> delete rolebindings lurcher
265+
kubectl --namespace <NAMESPACE> delete role lurcher
266+
```
267+
268+
➡️ [Reference: #537](https://github.com/secureCodeBox/secureCodeBox/pull/537)
269+
270+
### Removed Hook Teams Webhook
271+
We implemented a more general *[notification hook](https://www.securecodebox.io/docs/hooks/notification-hook)* which can be used to notify different systems like *[MS Teams](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-a-ms-teams-notification)* and *[Slack](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-a-slack-notification)* and also [Email](https://www.securecodebox.io/docs/hooks/notification-hook#configuration-of-an-email-notification) based in a more flexible way with [custom message templates](https://www.securecodebox.io/docs/hooks/notification-hook#custom-message-templates). With this new hook in place it is not nessesary to maintain the preexisting MS Teams Hook any longer and therefore we removed it.
272+
273+
➡️ [Reference: #570](https://github.com/secureCodeBox/secureCodeBox/pull/570)

0 commit comments

Comments
 (0)