[bitnami/jasperreports] MAJOR: Move to non-root (#7022)

* [bitnami/jasperreports] MAJOR: Move to non-root

* Fix username

* Readme

* seconds

* Apply requested change

* [bitnami/jasperreports] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

* Merge

* [bitnami/jasperreports] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
Javier J. Salmerón-García
2021-07-28 20:55:06 +02:00
committed by GitHub
co-authored by Bitnami Containers
parent 281fc8a1e8
commit f3b1d83fa2
5 changed files with 63 additions and 32 deletions
+3 -3
View File
@@ -1,9 +1,9 @@
dependencies:
- name: mariadb
repository: https://charts.bitnami.com/bitnami
version: 9.3.17
version: 9.4.0
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.7.0
digest: sha256:41375ee3440e851602f6d3ae23d21e61e31ca341552845c1ba3f3356d8a7e05a
generated: "2021-07-24T16:14:46.273332289Z"
digest: sha256:2fe1aa59a3285feec8055506f285d4c506b768df9873f6446efcb6f53d378557
generated: "2021-07-28T13:37:10.470635797Z"
+1 -1
View File
@@ -30,4 +30,4 @@ name: jasperreports
sources:
- https://github.com/bitnami/bitnami-docker-jasperreports
- http://community.jaspersoft.com/project/jasperreports-server
version: 10.2.12
version: 11.0.0
+23 -10
View File
@@ -76,13 +76,13 @@ The command removes all the Kubernetes components associated with the chart and
| ----------------------- | ---------------------------------------------------------------------- | ----------------------- |
| `image.registry` | JasperReports image registry | `docker.io` |
| `image.repository` | JasperReports image repository | `bitnami/jasperreports` |
| `image.tag` | JasperReports image tag (immutable tags are recommended) | `7.8.0-debian-10-r276` |
| `image.tag` | JasperReports image tag (immutable tags are recommended) | `7.8.0-debian-10-r280` |
| `image.pullPolicy` | JasperReports image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `jasperreportsUsername` | JasperReports user | `user` |
| `jasperreportsUsername` | JasperReports user | `jasperadmin` |
| `jasperreportsPassword` | JasperReports password | `""` |
| `jasperreportsEmail` | JasperReports user email | `user@example.com` |
| `allowEmptyPassword` | Set to `yes` to allow the container to be started with blank passwords | `yes` |
| `allowEmptyPassword` | Set to `yes` to allow the container to be started with blank passwords | `no` |
| `smtpHost` | SMTP host | `""` |
| `smtpPort` | SMTP port | `""` |
| `smtpEmail` | SMTP email | `""` |
@@ -104,22 +104,20 @@ The command removes all the Kubernetes components associated with the chart and
| `hostAliases` | Add deployment host aliases | `[]` |
| `containerPort` | HTTP port to expose at container level | `8080` |
| `podSecurityContext.enabled` | Enable pod's Security Context | `true` |
| `podSecurityContext.fsGroup` | Set pod's Security Context fsGroup | `0` |
| `podSecurityContext.fsGroup` | Set pod's Security Context fsGroup | `1001` |
| `containerSecurityContext.enabled` | Enable container's Security Context | `true` |
| `containerSecurityContext.runAsUser` | Set container's Security Context runAsUser | `0` |
| `containerSecurityContext.runAsUser` | Set container's Security Context runAsUser | `1001` |
| `resources.limits` | The resources limits for the Jasperreports container | `{}` |
| `resources.requests` | The requested resources for the Jasperreports container | `{}` |
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
| `livenessProbe.httpGet.path` | Request path for livenessProbe | `/jasperserver/login.html` |
| `livenessProbe.httpGet.port` | Port for livenessProbe | `http` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `300` |
| `livenessProbe.path` | Request path for livenessProbe | `/jasperserver/login.html` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `450` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
| `readinessProbe.httpGet.path` | Request path for readinessProbe | `/jasperserver/login.html` |
| `readinessProbe.httpGet.port` | Port for readinessProbe | `http` |
| `readinessProbe.path` | Request path for readinessProbe | `/jasperserver/login.html` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
@@ -284,6 +282,21 @@ Find more information about how to deal with common errors related to Bitnami
## Upgrading
### To 11.0.0
The [Bitnami JasperReports](https://github.com/bitnami/bitnami-docker-jasperreports) image was migrated to a "non-root" user approach. Previously the container ran as the `root` user and the Tomcat daemon was started as the `tomcat` user. From now on, both the container and the Tomcat daemon run as user `1001`. You can revert this behavior by setting the parameters `containerSecurityContext.runAsUser` to `root`.
Consequences:
- The HTTP/HTTPS ports exposed by the container are now `8080/8443` instead of `80/443`.
- Backwards compatibility is not guaranteed.
To upgrade to `11.0.0`, backup JasperReports data and the previous MariaDB databases, install a new JasperReports chart and import the backups and data, ensuring the `1001` user has the appropriate permissions on the migrated volume.
In addition to this, the image was refactored and now the source code is published in GitHub in the [`rootfs`](https://github.com/bitnami/bitnami-docker-jasperreports/tree/master/7/debian-10/rootfs) folder of the container image.
We also fixed a regression with readiness and liveness probes. Now the kind of probe cannot be configured under the *readinessProbe/livenessProbe* sections but in the *customReadinessProbe/customLivenessProbe* sections.
### To 10.0.0
- Chart labels were adapted to follow the [Helm charts standard labels](https://helm.sh/docs/chart_best_practices/labels/#standard-labels).
@@ -134,12 +134,28 @@ spec:
- name: http
containerPort: {{ .Values.containerPort }}
{{- if .Values.livenessProbe.enabled }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }}
livenessProbe:
httpGet:
path: {{ .Values.livenessProbe.path }}
port: http
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
{{- else if .Values.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled") "context" $) | nindent 12 }}
readinessProbe:
httpGet:
path: {{ .Values.readinessProbe.path }}
port: http
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
{{- else if .Values.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
+18 -16
View File
@@ -2,6 +2,7 @@
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
##
## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
@@ -17,6 +18,7 @@ global:
storageClass: ""
## @section Common parameters
##
## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
##
@@ -41,6 +43,7 @@ clusterDomain: cluster.local
extraDeploy: []
## @section JasperReports parameters
##
## Bitnami JasperReports image version
## ref: https://hub.docker.com/r/bitnami/dokuwiki/tags/
@@ -53,7 +56,7 @@ extraDeploy: []
image:
registry: docker.io
repository: bitnami/jasperreports
tag: 7.8.0-debian-10-r276
tag: 7.8.0-debian-10-r281
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
@@ -70,7 +73,7 @@ image:
## @param jasperreportsUsername JasperReports user
## ref: https://github.com/bitnami/bitnami-docker-jasperreports#configuration
##
jasperreportsUsername: user
jasperreportsUsername: jasperadmin
## @param jasperreportsPassword JasperReports password
## Defaults to a random 10-character alphanumeric string if not set
## ref: https://github.com/bitnami/bitnami-docker-jasperreports#configuration
@@ -83,7 +86,7 @@ jasperreportsEmail: user@example.com
## @param allowEmptyPassword Set to `yes` to allow the container to be started with blank passwords
## ref: https://github.com/bitnami/bitnami-docker-jasperreports#environment-variables
##
allowEmptyPassword: "yes"
allowEmptyPassword: "no"
## SMTP mail delivery configuration
## ref: https://github.com/bitnami/bitnami-docker-jasperreports#smtp-configuration
## @param smtpHost SMTP host
@@ -127,6 +130,7 @@ updateStrategy:
type: RollingUpdate
## @section Jasperreports deployment parameters
##
## @param hostAliases Add deployment host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
@@ -142,7 +146,7 @@ containerPort: 8080
##
podSecurityContext:
enabled: true
fsGroup: 0
fsGroup: 1001
## JasperReports containers' SecurityContext
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param containerSecurityContext.enabled Enable container's Security Context
@@ -150,7 +154,7 @@ podSecurityContext:
##
containerSecurityContext:
enabled: true
runAsUser: 0
runAsUser: 1001
## JasperReports resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
## We usually recommend not to specify default resources and to leave this as a conscious
@@ -165,6 +169,7 @@ resources:
## limits:
## cpu: 200m
## memory: 256Mi
##
limits: {}
requests:
memory: 512Mi
@@ -172,8 +177,7 @@ resources:
## JasperReports containers' liveness and readiness probes.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
## @param livenessProbe.enabled Enable livenessProbe
## @param livenessProbe.httpGet.path Request path for livenessProbe
## @param livenessProbe.httpGet.port Port for livenessProbe
## @param livenessProbe.path Request path for livenessProbe
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
@@ -182,10 +186,8 @@ resources:
##
livenessProbe:
enabled: true
httpGet:
path: /jasperserver/login.html
port: http
initialDelaySeconds: 300
path: /jasperserver/login.html
initialDelaySeconds: 450
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
@@ -193,8 +195,7 @@ livenessProbe:
## JasperReports containers' readiness probe
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
## @param readinessProbe.enabled Enable readinessProbe
## @param readinessProbe.httpGet.path Request path for readinessProbe
## @param readinessProbe.httpGet.port Port for readinessProbe
## @param readinessProbe.path Request path for readinessProbe
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
@@ -203,9 +204,7 @@ livenessProbe:
##
readinessProbe:
enabled: true
httpGet:
path: /jasperserver/login.html
port: http
path: /jasperserver/login.html
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
@@ -325,6 +324,7 @@ persistence:
existingClaim: ""
## @section Exposure parameters
##
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
@@ -426,6 +426,7 @@ ingress:
secrets: []
## @section Database parameters
##
## MariaDB chart configuration
## https://github.com/bitnami/charts/blob/master/bitnami/mariadb/values.yaml
@@ -490,6 +491,7 @@ mariadb:
externalDatabase:
## @param externalDatabase.existingSecret Name of the database existing Secret Object
## NOTE: When it's set, the `externalDatabase.password` parameter is ignored
##
existingSecret: ""
## @param externalDatabase.host Host of the existing database
##