Skip to content
Snippets Groups Projects
Commit 27cb05b4 authored by david.bauer's avatar david.bauer :fire:
Browse files

Merge branch 'distroless' into 'main'

Distroless / Updated deps / Update helm deps

See merge request frontend/user-guide!3
parents ab558a59 bb28133c
No related branches found
No related tags found
No related merge requests found
node_modules node_modules
dist helm
build
{
"root": true,
"extends": ["open-xchange-appsuite"]
}
include: include:
- project: 'sre/ci-building-blocks' - project: 'sre/ci-building-blocks'
file: '/gitlab-ci/node/kaniko.yml' file: '/gitlab-ci/node/kaniko.yml'
audit npm modules:
image: node:16-alpine
stage: .pre
script:
- yarn audit --groups dependencies
rules:
- exists:
- package.json
allow_failure: true
unit tests:
extends:
- .unit tests
allow_failure: true
COPYING 0 → 100644
This diff is collapsed.
FROM node:15-alpine AS builder FROM gitlab.open-xchange.com:4567/frontend/dev_env/node_builder:latest AS builder
ARG APP_VERSION
ARG BUILD_TIMESTAMP
ARG CI_COMMIT_SHA
WORKDIR /app WORKDIR /app
COPY . /app COPY . /app
RUN yarn && npx grunt RUN yarn && npx grunt
FROM nginx:alpine FROM nginxinc/nginx-unprivileged as base
RUN mkdir -p /tmp/root/var/cache/nginx && \
cp -a --parents /usr/lib/nginx \
/usr/share/nginx \
/var/log/nginx \
/etc/nginx \
/usr/sbin/nginx \
/usr/sbin/nginx-debug \
/lib/*/ld-* \
/lib/*/libpcre.so.* \
/lib/*/libz.so.* \
/lib/*/libc* \
/lib/*/libdl* \
/lib/*/libpthread* \
/lib/*/libcrypt* \
/usr/lib/*/libssl.so.* \
/usr/lib/*/libcrypto.so.* \
/tmp/root
FROM gcr.io/distroless/base
USER 1000
EXPOSE 8080
COPY --from=base /tmp/root /
COPY --from=builder /app/build /usr/share/nginx/html COPY --from=builder /app/build /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
/*
*
* @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com>
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
*
* Any use of the work other than as authorized under this license or copyright law is prohibited.
*
*/
/* This file has been generated by ox-ui-module generator. /* This file has been generated by ox-ui-module generator.
* Please only apply minor changes (better no changes at all) to this file * Please only apply minor changes (better no changes at all) to this file
* if you want to be able to run the generator again without much trouble. * if you want to be able to run the generator again without much trouble.
......
/*
*
* @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com>
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
*
* Any use of the work other than as authorized under this license or copyright law is prohibited.
*
*/
'use strict'; 'use strict';
var path = require('path'); var path = require('path');
module.exports = function (grunt) { module.exports = function (grunt) {
......
/*
*
* @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com>
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
*
* Any use of the work other than as authorized under this license or copyright law is prohibited.
*
*/
'use strict'; 'use strict';
module.exports = function (grunt) { module.exports = function (grunt) {
grunt.config.merge({ less: { grunt.config.merge({ less: {
......
/** /*
* This work is provided under the terms of the CREATIVE COMMONS PUBLIC
* LICENSE. This work is protected by copyright and/or other applicable
* law. Any use of the work other than as authorized under this license
* or copyright law is prohibited.
* *
* http://creativecommons.org/licenses/by-nc-sa/2.5/ * @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com>
* © 2016 OX Software GmbH, Germany. info@open-xchange.com * @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
*
* Any use of the work other than as authorized under this license or copyright law is prohibited.
* *
* @author David Bauer <david.bauer@open-xchange.com>
* @author Julian Bäume <julian.baeume@open-xchange.com>
*/ */
'use strict'; 'use strict';
......
/** /*
* This work is provided under the terms of the CREATIVE COMMONS PUBLIC
* LICENSE. This work is protected by copyright and/or other applicable
* law. Any use of the work other than as authorized under this license
* or copyright law is prohibited.
* *
* http://creativecommons.org/licenses/by-nc-sa/2.5/ * @copyright Copyright (c) OX Software GmbH, Germany <info@open-xchange.com>
* © 2016 OX Software GmbH, Germany. info@open-xchange.com * @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
*
* Any use of the work other than as authorized under this license or copyright law is prohibited.
* *
* @author David Bauer <david.bauer@open-xchange.com>
* @author Julian Bäume <julian.baeume@open-xchange.com>
*/ */
'use strict'; 'use strict';
......
dependencies: dependencies:
- name: ox-common - name: ox-common
repository: oci://registry.open-xchange.com/common/charts repository: oci://registry.open-xchange.com/common/charts
version: 1.0.13 version: 1.0.17
digest: sha256:52b19d958411d91eabf30266f594ab6b2a4b76997c4c93d6c6bb4a28d64ca716 digest: sha256:0ab9e19964f4c46bbe7bfc5ffff6b086b92f2309f1ae895fc814945b7b95ee9c
generated: "2022-01-27T10:56:36.216975+01:00" generated: "2022-02-03T11:00:26.855212+01:00"
...@@ -15,14 +15,14 @@ type: application ...@@ -15,14 +15,14 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 2.0.1 version: 2.0.2
# This is the version number of the application being deployed. This version number should be # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to # incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.1" appVersion: "8.0.0"
dependencies: dependencies:
- name: ox-common - name: ox-common
version: 1.0.13 version: 1.0.17
repository: "oci://registry.open-xchange.com/common/charts" repository: "oci://registry.open-xchange.com/common/charts"
...@@ -22,21 +22,28 @@ spec: ...@@ -22,21 +22,28 @@ spec:
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
ports: ports:
- name: http - name: http
containerPort: 80 containerPort: {{ .Values.containerPort }}
protocol: TCP protocol: TCP
{{- if .Values.probe.liveness.enabled }} {{- if .Values.probe.liveness.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: / path: /
port: 80 port: {{ .Values.containerPort }}
{{- omit .Values.probe.liveness "enabled" | toYaml | nindent 12 }} {{- omit .Values.probe.liveness "enabled" | toYaml | nindent 12 }}
{{- end }} {{- end }}
{{- if .Values.probe.readiness.enabled }} {{- if .Values.probe.readiness.enabled }}
readinessProbe: readinessProbe:
httpGet: httpGet:
path: / path: /
port: 80 port: {{ .Values.containerPort }}
{{- omit .Values.probe.readiness "enabled" | toYaml | nindent 12 }} {{- omit .Values.probe.readiness "enabled" | toYaml | nindent 12 }}
{{- end }} {{- end }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
volumeMounts:
- mountPath: /tmp
name: tmp
volumes:
- name: tmp
emptyDir: {}
...@@ -8,7 +8,7 @@ spec: ...@@ -8,7 +8,7 @@ spec:
type: {{ .Values.service.type }} type: {{ .Values.service.type }}
ports: ports:
- port: {{ .Values.service.port }} - port: {{ .Values.service.port }}
targetPort: http targetPort: {{ .Values.containerPort }}
protocol: TCP protocol: TCP
name: http name: http
selector: selector:
......
...@@ -27,16 +27,20 @@ serviceAccount: ...@@ -27,16 +27,20 @@ serviceAccount:
podAnnotations: {} podAnnotations: {}
podSecurityContext: {} podSecurityContext:
# fsGroup: 2000 runAsNonRoot: true
runAsUser: 1000
securityContext: {} runAsGroup: 1000
# capabilities:
# drop: securityContext:
# - ALL runAsNonRoot: true
# readOnlyRootFilesystem: true runAsUser: 1000
# runAsNonRoot: true runAsGroup: 1000
# runAsUser: 1000 allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
service: service:
type: ClusterIP type: ClusterIP
...@@ -50,7 +54,7 @@ ingress: ...@@ -50,7 +54,7 @@ ingress:
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: hosts:
- host: chart-example.local - host: chart-example.local
tls: [] tls: []
# - secretName: chart-example-tls # - secretName: chart-example-tls
# hosts: # hosts:
...@@ -84,3 +88,5 @@ probe: ...@@ -84,3 +88,5 @@ probe:
periodSeconds: 5 periodSeconds: 5
failureThreshold: 2 failureThreshold: 2
timeoutSeconds: 5 timeoutSeconds: 5
containerPort: 8080
{ {
"name": "open-xchange-appsuite-help", "name": "open-xchange-appsuite-help",
"version": "7.10.5", "version": "8.0.0",
"description": "App Suite UI Help", "description": "App Suite UI Help",
"repository": { "license": "AGPL-3.0-or-later",
"type": "git", "scripts": {
"url": "https://code.open-xchange.com/git/wd/frontend/web" "test": "echo VGhpcyBpcyBmaW5lLi4u8J+UpQo= | base64 -d && true"
}, },
"license": "CC-BY-NC-SA-2.5",
"dependencies": { "dependencies": {
"bootstrap": "^3.4.1", "bootstrap": "^3.4.1",
"jquery": "^3.2.1" "jquery": "^3.2.1"
}, },
"optionalDependencies": { "optionalDependencies": {
"assemble-less": "^0.7.0", "assemble-less": "^0.7.0",
"eslint": "^6.0.0", "grunt": "^1.4.1",
"eslint-config-open-xchange-appsuite": "^0.4.0",
"grunt": "^1.0.4",
"grunt-bump": "^0.8.0", "grunt-bump": "^0.8.0",
"grunt-check-dependencies": "^1.0.0", "grunt-check-dependencies": "^1.0.0",
"grunt-contrib-clean": "^2.0.0", "grunt-contrib-clean": "^2.0.0",
"grunt-contrib-concat": "^1.0.1", "grunt-contrib-concat": "^2.0.0",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-uglify": "^4.0.1", "grunt-contrib-uglify": "^5.0.1",
"grunt-eslint": "^22.0.0", "grunt-eslint": "^22.0.0",
"grunt-newer": "^1.3.0", "grunt-newer": "^1.3.0",
"grunt-require-gettext": "^0.8.1", "grunt-require-gettext": "^0.8.1",
"open-xchange-shared-grunt-config": "^0.15.0-pre3", "open-xchange-shared-grunt-config": "^0.15.0-pre3",
"underscore": "^1.8.3" "underscore": "^1.8.3"
},
"devDependencies": {
"appserver": "^0.7.0",
"grunt-contrib-connect": "^2.0.0",
"grunt-contrib-watch": "^1.0.0"
} }
} }
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment