Compare commits

..

146 Commits

Author SHA1 Message Date
Olu Shiyanbade
c4f82cb690 deprecate charts 2024-02-21 12:13:10 +00:00
Olu Shiyanbade
c23b792dbc Merge pull request #64 from sonatype/README-Updates-Lisa
NEXUS-40550 - Readme updates lisa
2024-02-21 12:09:07 +00:00
Lisa Durant
114b09e289 Update nxrm-aws-resiliency/README.md 2024-02-15 08:11:01 -05:00
Lisa Durant
200b2a31cd Update README.md 2024-02-15 08:09:38 -05:00
Lisa Durant
e22fc2a29a Update README.md 2024-02-15 08:01:07 -05:00
Sonatype Zion
4c6f4b195c Release Update for 64.0.0 2024-01-12 21:38:35 +00:00
Sonatype Zion
1295047741 Release Update for 64.0.0 2024-01-12 21:35:18 +00:00
Sonatype Zion
713ae5affa Release Update for 64.0.0 2024-01-10 00:22:53 +00:00
Sonatype Zion
896c4fb4bc Release Update for 63.0.0 2023-12-05 13:29:51 +00:00
Sonatype Zion
51d32734ba Release Update for 62.0.0 2023-11-07 16:48:20 +00:00
Sonatype Zion
350fc3cc0a Release Update for 61.0.2 2023-10-04 15:08:50 +00:00
Sonatype Zion
6333981376 Release Update for 61.0.0 2023-10-03 19:03:23 +00:00
Sonatype Zion
495692d601 Release Update for 60.0.0 2023-09-12 13:45:57 +00:00
Sonatype Zion
7800130333 Release Update for 59.0.0 2023-08-15 15:45:45 +00:00
Sonatype Zion
528e80c24c Release Update for 58.1.0 2023-07-25 14:30:53 +00:00
Sonatype Zion
f0137814c9 Release Update for 57.1.0 2023-07-25 14:12:54 +00:00
Sonatype Zion
16fd539366 Release Update for 58.1.0 2023-07-21 22:21:18 +00:00
Sonatype Zion
442069aa67 Release Update for 57.1.0 2023-07-21 22:20:01 +00:00
Sonatype Zion
28dff42f5f Release Update for 58.0.0 2023-07-17 14:16:11 +00:00
Sonatype Zion
368fa2ba2e Release Update for 57.0.0 2023-07-05 18:39:25 +00:00
Sonatype Zion
b146ad56b3 Release Update for 56.0.0 2023-06-19 16:14:10 +00:00
Sonatype Zion
686253599c Release Update for 55.0.0 2023-06-05 20:42:42 +00:00
Mykyta Shevelov
9080037994 Merge pull request #51 from sonatype/NEXUS-39410-Make-fluentbit-docker-and-external-dns-optional 2023-06-01 13:34:53 +02:00
Mykyta Shevelov
78f22f8ed5 fix warning 2023-06-01 12:22:43 +02:00
Olu Shiyanbade
b46d89e078 make fluentbit, docker and external dns optional 2023-05-23 12:00:59 +01:00
Sonatype Zion
a566f84674 Release Update for 54.1.0 2023-05-18 20:29:53 +00:00
Sonatype Zion
01dd44acdc Release Update for 54.0.0 2023-05-18 15:45:04 +00:00
Sonatype Zion
1014e66058 Release Update for 53.1.0 2023-05-13 02:57:17 +00:00
Sonatype Zion
9b42daf4c0 Release Update for 53.0.0 2023-05-02 22:39:59 +00:00
Sonatype Zion
a532a5eabc Release Update for 52.0.0 2023-04-18 21:16:24 +00:00
Michael Martz
9831de32bc Merge pull request #47 from sonatype/pin-unittest-version
Pin helm-unittest to 0.2.11
2023-04-18 16:14:40 -05:00
Michael Martz
f3a0053f4c Pin helm-unittest to 0.2.11 2023-04-18 16:11:11 -05:00
Sonatype Zion
eaff5b490c Release Update for 51.0.0 2023-04-04 20:28:21 +00:00
Sonatype Zion
90921100be Release Update for 50.0.0 2023-03-27 14:40:37 +00:00
Olu Shiyanbade
cc5a53e5a4 Merge pull request #45 from sonatype/NEXUS-38174
fix fluent bit path
2023-03-24 09:01:35 +00:00
Olu Shiyanbade
0cb275e219 fix fluent bit path 2023-03-23 12:55:53 +00:00
Sonatype Zion
0462b7eb43 Release Update for 49.0.0 2023-03-06 18:33:41 +00:00
Sonatype Zion
d1d2971125 Release Update for 48.0.0 2023-02-27 15:57:25 +00:00
Sonatype Zion
616ecbc831 Release Update for 47.1.0 2023-02-13 18:07:33 +00:00
Andres Ortiz
61c0cb0eb3 Delete nxrm-aws-resiliency-47.0.0.tgz 2023-02-13 12:57:52 -05:00
Andres Ortiz
ce20f243b6 Delete nexus-repository-manager-47.0.0.tgz 2023-02-13 12:53:49 -05:00
Sonatype Zion
3487c9fdb6 Release Update for 47.0.0 2023-02-07 21:53:31 +00:00
Olu Shiyanbade
f166861198 Merge pull request #41 from sonatype/specify-custom-folder-for-nexus-data
Create directory for nexus-data on node (i.e. ec2) startup
2023-01-31 11:25:58 +00:00
Olu Shiyanbade
00dfee338c externalise config map name 2023-01-31 11:04:24 +00:00
Sonatype Zion
560b9f1ff6 Release Update for 46.0.0 2023-01-30 16:59:06 +00:00
Olu Shiyanbade
35fb1119fb trunc to 63 characters 2023-01-27 12:26:36 +00:00
Olu Shiyanbade
8396c0de20 Don't use mnt for nexus-data 2023-01-27 11:45:26 +00:00
Sonatype Zion
541e70232b Release Update for 45.1.0 2023-01-17 19:47:06 +00:00
Sonatype Zion
7ef8c04eef Release Update for 45.0.0 2022-12-28 08:17:36 +00:00
Sonatype Zion
43580c8a5d Release Update for 44.0.0 2022-12-14 16:45:34 +00:00
Lisa Durant
d27891b463 remove erroneous link 2022-12-08 10:58:53 -05:00
Lisa Durant
53f8dcfa69 Merge pull request #33 from sonatype/Readme-Update
Update README
2022-12-08 09:44:07 -05:00
Lisa Durant
55a17e0b76 Update README.md 2022-12-08 09:43:44 -05:00
Lisa Durant
7d3dcf6fe1 Update README.md 2022-12-08 09:42:55 -05:00
John M Flinchbaugh
c8b1ad3059 INT-7432 security context for openshift (#34)
OpenShift requires the red hat image (optional)
and these security settings to alleviate warnings.

These changes are fine for other k8s implementations
like minikube using the stock container from docker hub.
2022-11-17 11:05:22 -05:00
Lisa Durant
990728c288 Update README.md 2022-11-16 10:09:13 -05:00
Lisa Durant
4b62f278ef Update README.md 2022-11-16 10:08:19 -05:00
Lisa Durant
28f4e871e5 Update README.md 2022-11-15 10:32:40 -05:00
Lisa Durant
e2b335d84b Update README.md 2022-11-15 10:32:24 -05:00
Lisa Durant
e5ea67a8b4 Update README.md 2022-11-15 10:23:53 -05:00
Lisa Durant
cb992b92e5 Update README 2022-11-15 10:22:20 -05:00
Sonatype Zion
7dd8cd5112 Release Update for 43.0.0 2022-11-07 16:44:38 +00:00
Lisa Durant
5db6031514 Wording tweak per Vijay 2022-10-26 12:15:37 -04:00
Lisa Durant
70d639ca4e Merge pull request #29 from sonatype/end-support-chart
End of support for chart
2022-10-25 12:33:45 -04:00
John M Flinchbaugh
95b8a984ca upgrade to helm 3.10.1 (#31)
latest helm for packaging and testing.
2022-10-25 12:28:21 -04:00
Lisa Durant
3f0979d531 Update README.md 2022-10-21 12:42:27 -04:00
Lisa Durant
c164995fbf End of support for chart 2022-10-21 12:41:09 -04:00
Matthew Piggott
3a22af41bd NEXUS-35492 - Allow configuring install4j vm arguments (#25) 2022-10-05 12:42:26 -04:00
Olu Shiyanbade
59e8ebcd98 Merge pull request #26 from sonatype/fix_broken_link
Fix broken link
2022-09-30 14:37:55 +01:00
Olu Shiyanbade
5d0bfa8e4e fix link 2022-09-30 10:56:38 +01:00
Sonatype Zion
4b4bbd13f3 Release Update for 42.0.1 2022-09-28 15:38:44 +00:00
Sonatype Zion
77aac91a9f Release Update for 42.0.0 2022-09-28 14:28:27 +00:00
Sergii Pryhoda
0c51e4c7be Merge pull request #22 from sonatype/NEXUS-34974-publish-nxrm-helm-charts 2022-09-28 16:35:17 +03:00
spryhoda
0adb4a9fc7 uncomment the tests related code in Jenkinsfile 2022-09-20 10:43:08 +03:00
spryhoda
1a821d1032 uncomment the tests 2022-09-19 12:41:25 +03:00
spryhoda
1fa72df38c license header added to README.md 2022-09-14 11:26:56 +03:00
spryhoda
8123c3db21 NEXUS-34974 Publish nxrm helm charts to Sonatype helm repo and Artifact Hub 2022-09-13 15:33:07 +03:00
Olu Shiyanbade
595206fdc9 Merge pull request #21 from sonatype/fix-build
fix build
2022-09-02 16:12:52 +01:00
Lisa Durant
7d1dfaa1bd Update README.md 2022-09-02 10:43:11 -04:00
Olu Shiyanbade
de46a3ca1f fix build 2022-09-02 13:06:18 +01:00
Olu Shiyanbade
298a49e994 Merge pull request #20 from sonatype/fix-build
fix build
2022-09-02 12:53:26 +01:00
Olu Shiyanbade
786e5717d2 fix build 2022-09-02 12:50:47 +01:00
Olu Shiyanbade
6ed696ec15 Merge pull request #19 from sonatype/NEXUS-35078-Remove-nexus-repository-manager-helm3-charts
Remove non resiliency helm3-charts
2022-09-02 12:41:59 +01:00
Olu Shiyanbade
e82e7a3208 Remove non resiliency helm3-charts 2022-09-02 11:23:27 +01:00
Lisa Durant
d9da79bb8d Update README.md
wording cleanup
2022-08-30 15:29:11 -04:00
Lisa Durant
670344d45a Merge pull request #15 from sonatype/update-readme
NEXUS-34871 - readme update
2022-08-30 15:15:32 -04:00
Lisa Durant
b5168a2dc3 Merge pull request #16 from sonatype/lisadurant-patch-2
readme update
2022-08-30 15:09:58 -04:00
Olu Shiyanbade
96b919241d resolve conflict 2022-08-30 20:04:28 +01:00
Olu Shiyanbade
5410733d72 Update README.md 2022-08-30 20:00:37 +01:00
Olu Shiyanbade
1b4585d89c readme update 2022-08-30 19:32:36 +01:00
Olu Shiyanbade
4b91e48ef5 readme update 2022-08-30 19:30:05 +01:00
Sonatype Zion
02c19b39ee Release Update for 41.1.3 2022-08-30 15:16:56 +00:00
Olu Shiyanbade
f351b8e244 Merge pull request #14 from sonatype/NEXUS-34871-configure-external-dns-to-create-docker-sub-domain-records-and-https-listener
NEXUS-34871 - Create A records for docker sub domain and configure HTTPS listener for ALB
2022-08-30 15:49:43 +01:00
Olu Shiyanbade
4902991b0c Add more comments to values.yaml 2022-08-30 15:49:21 +01:00
Olu Shiyanbade
0734d746eb Associate sub domains with docker ingress 2022-08-27 00:59:07 +01:00
Olu Shiyanbade
c7c527174f Associate sub domains with docker ingress 2022-08-27 00:38:36 +01:00
Olu Shiyanbade
595db96ef1 license 2022-08-26 22:07:25 +01:00
Olu Shiyanbade
97dfe39202 parameterise hosted zone 2022-08-26 21:35:49 +01:00
Olu Shiyanbade
10ee4a5efb parameterise hosted zone 2022-08-26 21:33:53 +01:00
Olu Shiyanbade
1e5ce73111 specify examples for docker subdomain and cert manager arn 2022-08-26 21:01:10 +01:00
Olu Shiyanbade
862f179251 Configure external-dns to create docker sub domain rcords and https listener 2022-08-26 20:47:16 +01:00
Olu Shiyanbade
769c3b7f7c revert 2022-08-26 20:44:42 +01:00
Olu Shiyanbade
e3af231002 Configure external-dns to create docker sub domain rcords and https listener 2022-08-26 20:42:13 +01:00
Olu Shiyanbade
a0318927b0 Merge pull request #13 from sonatype/fix-typo
fix numbering
2022-08-26 12:33:05 +01:00
Olu Shiyanbade
702f846cb2 fix numbering 2022-08-26 12:31:05 +01:00
Olu Shiyanbade
53b1ba9fcb Merge pull request #12 from sonatype/NEXUS-34129-Update-Broken-links-and-readme
NEXUS-34129 - Update-Broken-links-and-readme
2022-08-26 12:28:54 +01:00
Olu Shiyanbade
1cddb6982b Update Broken links and readme 2022-08-26 11:48:48 +01:00
Sonatype Zion
cc34987953 Release Update for 41.1.2 2022-08-25 22:04:51 +00:00
Olu Shiyanbade
d6ac3edf71 Merge pull request #11 from sonatype/Don't-specify-a-default-for-host-in-sample-values
dont set default value for host
2022-08-25 23:02:11 +01:00
Olu Shiyanbade
9c80534bd0 dont set default value for host 2022-08-25 23:00:51 +01:00
Sonatype Zion
d90c7f36e8 Release Update for 41.1.1 2022-08-25 21:30:11 +00:00
Olu Shiyanbade
6e1c74c877 Merge pull request #10 from sonatype/fix-license
license should be apache not mit
2022-08-25 22:23:41 +01:00
Olu Shiyanbade
b3785cf228 license should be apache not mit 2022-08-25 22:20:00 +01:00
Sonatype Zion
6dd1b3c662 Release Update for 41.1.0 2022-08-25 19:06:09 +00:00
Sonatype Zion
a40171ae42 Release Update for 41.1.0 2022-08-25 19:00:58 +00:00
Olu Shiyanbade
c55540bcc7 Merge pull request #9 from sonatype/NEXUS-34129-single-jenkins-job-for-resiliency-and-non-resiliency-helm-charts
NEXUS-34129 - Combined Jenkins job to publish AWS resilient and non resilient helm charts
2022-08-25 19:59:57 +01:00
Olu Shiyanbade
5c359b9c2c fix commit message 2022-08-25 19:57:48 +01:00
Sonatype Zion
737c1fdc07 Release Update for null 41.1.0 2022-08-25 18:53:31 +00:00
Olu Shiyanbade
662f32ab62 Use chart version for tag name 2022-08-25 19:52:34 +01:00
Sonatype Zion
694a919144 Release Update for null 41.1.0 2022-08-25 18:47:13 +00:00
Olu Shiyanbade
4f6f86c972 remove chart from tag name 2022-08-25 19:46:01 +01:00
Olu Shiyanbade
073dc3d51d set tag name to both charts 2022-08-25 19:43:22 +01:00
Sonatype Zion
526fb55499 Release Update for null 41.1.0 2022-08-25 18:36:12 +00:00
Olu Shiyanbade
a7feecb463 remove unneeded checks 2022-08-25 19:35:18 +01:00
Sonatype Zion
e5abf26148 Release Update for null 41.1.0 2022-08-25 18:26:16 +00:00
Olu Shiyanbade
6238cb0609 Remove check for chart param 2022-08-25 19:25:11 +01:00
Olu Shiyanbade
80cbc2c1b2 fix license 2022-08-25 19:16:06 +01:00
Olu Shiyanbade
dce7ce20b4 header.txt 2022-08-25 19:08:20 +01:00
Olu Shiyanbade
e1a1b9baed Update license 2022-08-25 19:03:44 +01:00
Olu Shiyanbade
af6729642c Update build notifications call 2022-08-25 18:13:27 +01:00
Olu Shiyanbade
e33e0077b2 Fix file 2022-08-25 18:08:39 +01:00
Olu Shiyanbade
93553957c5 Newline 2022-08-25 17:51:41 +01:00
Olu Shiyanbade
5ee93839e4 git ignore 2022-08-25 17:44:42 +01:00
Olu Shiyanbade
6ec044c09b Removed .DS dir file 2022-08-25 17:42:57 +01:00
Olu Shiyanbade
24ee4fc9ed Address review comments 2022-08-25 17:38:44 +01:00
Olu Shiyanbade
9979f3623f Address review comments 2022-08-25 17:38:44 +01:00
Olu Shiyanbade
b5ef7c6481 Remove sources since nexus-internal is the source but it's a private repo 2022-08-25 17:38:44 +01:00
Olu Shiyanbade
191c271e35 Address review comments 2022-08-25 17:38:44 +01:00
Olu Shiyanbade
f60bc6237d Combined Jenkins job to publish aws resilient and non resilient helm charts 2022-08-25 17:38:44 +01:00
Olu Shiyanbade
4c6584ed83 Merge pull request #8 from sonatype/NEXUS-34871-Make-Ingress-Host-Configurable
NEXUS-34871 - Make ingress host configurable
2022-08-24 21:31:33 +01:00
Olu Shiyanbade
5c5e88f8f1 Make ingress host configurable 2022-08-24 12:13:04 +01:00
Olu Shiyanbade
3ddd0ba925 Make ingress host configurable 2022-08-24 12:08:28 +01:00
Dawid Sawa
9e7106f9d1 Fix links in README 2022-08-23 13:43:07 +01:00
Oleksii Rudyk
a6a8a3c60f Merge pull request #5 from sonatype/NEXUS-34843_update_the_AWS_resiliency_helm_chart_version 2022-08-22 19:44:13 +03:00
Brzozova
9fd454a8dd Fixing paths to proper destination in main README
Old paths lead to 404. Paths have been updated to proper ones.
2022-08-22 17:21:45 +02:00
Lisa Durant
f3c87e8d32 NEXUS-34212 - Update README
Update README with info about adding annotations and labels
2022-07-29 12:05:29 -04:00
123 changed files with 889 additions and 379 deletions

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
.vs/**
.idea/**
**/test-output.xml
.DS_Store

View File

@@ -1,17 +1,20 @@
#
# Copyright (c) 2019-present Sonatype, Inc. All rights reserved.
# Includes the third-party code listed at http://links.sonatype.com/products/clm/attributions.
# "Sonatype" is a trademark of Sonatype, Inc.
# Sonatype Nexus (TM) Open Source Version
# Copyright (c) 2008-present Sonatype, Inc.
# All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
#
# This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
# which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
#
# Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
# of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
# Eclipse Foundation. All other trademarks are the property of their respective owners.
#
# FROM docker-all.repo.sonatype.com/alpine:latest
# LABEL maintainer="operations-group@sontype.com"
FROM docker-all.repo.sonatype.com/alpine/helm:3.10.1
# RUN apk update
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
# WORKDIR /app
# COPY ./src ./
RUN mkdir /.local /.cache && chmod 777 /.local /.cache
# EXPOSE 8080
# CMD ["./runit"]

31
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,31 @@
/*
* Sonatype Nexus (TM) Open Source Version
* Copyright (c) 2008-present Sonatype, Inc.
* All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
*
* This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
* which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
* of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
* Eclipse Foundation. All other trademarks are the property of their respective owners.
*/
@Library(['private-pipeline-library', 'jenkins-shared', 'nxrm-jenkins-shared']) _
dockerizedBuildPipeline(
prepare: {
githubStatusUpdate('pending')
},
buildAndTest: {
sh './build.sh'
},
skipVulnerabilityScan: true,
archiveArtifacts: 'docs/*',
testResults: ['**/test-output.xml'],
onSuccess: {
nxrmBuildNotifications(currentBuild, env)
},
onFailure: {
nxrmBuildNotifications(currentBuild, env)
}
)

97
Jenkinsfile-Release Normal file
View File

@@ -0,0 +1,97 @@
/*
* Copyright (c) 2020-present Sonatype, Inc. All rights reserved.
*
* This program is licensed to you under the Apache License Version 2.0,
* and you may not use this file except in compliance with the Apache License Version 2.0.
* You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Apache License Version 2.0 is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
*/
@Library(['private-pipeline-library', 'jenkins-shared', 'nxrm-jenkins-shared']) _
final jira = [
versionPrefix: '', project: 'NEXUS', projectId: '12410',
credentialId : 'jenkins-jira', autoRelease: true, failOnError: true
]
properties([
parameters([
string(
name: 'appVersion',
description: 'Version of the application image, like "3.41.0"',
),
string(
name: 'chartVersion',
description: '(Optional) Version of the Chart, like "41.0.0". If omitted, it will be calculated from the appVersion.',
),
])
])
final chartVersion = calculateChartVersion(params.chartVersion, params.appVersion)
dockerizedBuildPipeline(
prepare: {
if (! params.appVersion) {
error('The appVersion is required.')
}
githubStatusUpdate('pending')
},
buildAndTest: {
sonatypeZionGitConfig()
runSafely "git checkout ${gitBranch(env)}"
runSafely "./upgrade.sh ./nexus-repository-manager ${chartVersion} ${params.appVersion}"
runSafely "./upgrade.sh ./nxrm-aws-resiliency ${chartVersion} ${params.appVersion}"
runSafely './build.sh'
runSafely 'git add nxrm-aws-resiliency'
runSafely 'git add nexus-repository-manager'
},
skipVulnerabilityScan: true,
archiveArtifacts: 'docs/*',
testResults: [],
deployCondition: { true },
deploy: {
runSafely 'git add docs'
runSafely "git commit -m 'Release Update for ${chartVersion}'"
sshagent(credentials: [sonatypeZionCredentialsId()]) {
runSafely 'git push'
}
},
postDeploy: {
// Create tags
String tagName = "${chartVersion}"
runSafely "git tag -a ${tagName} -m 'Release Update: ${chartVersion}'"
sshagent(credentials: [sonatypeZionCredentialsId()]) {
runSafely "git push origin ${tagName}"
}
},
onSuccess: {
nxrmBuildNotifications(currentBuild, env)
},
onFailure: {
nxrmBuildNotifications(currentBuild, env)
}
)
String calculateChartVersion(final String chartVersion, final String appVersion) {
if (chartVersion) {
return chartVersion
}
if (! appVersion) {
error 'Failed to calculate chartVersion with no appVersion.'
}
final versionParts = parseVersionString(appVersion)
final chartMajor = versionParts[1]
final chartMinor = versionParts[2]
if (! chartMajor || ! chartMinor) {
error "Failed to calculate chartVersion from appVersion: ${appVersion}"
}
return [chartMajor, chartMinor, '0'].join('.')
}

28
LICENSE
View File

@@ -1,21 +1,13 @@
MIT License
Copyright (c) 2020-present Sonatype, Inc.
Copyright (c) 2020 Sonatype
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
http://www.apache.org/licenses/LICENSE-2.0
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,65 +0,0 @@
<!--
Copyright (c) 2019-present Sonatype, Inc. All rights reserved.
Includes the third-party code listed at http://links.sonatype.com/products/clm/attributions.
"Sonatype" is a trademark of Sonatype, Inc.
-->
## Overview
Overview of the service: what is it, why do we have it, who are the primary
contacts, how to report bugs, links to design docs and other relevant
information.
### Public Facing Endpoints
The URLs (or IPs) and ports used by the service and what they are used for
(ALB? SSH? FTP?) and notes about any certificates and their location.
## Monitoring
Monitoring dashboards / logging / introspection & obseverbility info.
### Runbooks
A list of every alert your monitoring system may generate for this service and
a step-by-step "what do to when..." for each of them.
### SLO
Service Level Objectives in a succinct format: a target value or range of
values for a service level that is measured by an SLI. A natural structure for
SLOs is thus SLI ≤ target, or lower bound ≤ SLI ≤ upper bound. For example, we
might decide that we will return Shakespeare search results "quickly," adopting
an SLO that our average search request latency should be less than 100
milliseconds.
For more detailed information, please check out the Service Level Objectives
doc. If you're still unsure of what your SLOs should be, please reach out to
the SREs at #ops-sre-chat.
Optionally but recommended, have a section of monitoring and dashboards for SLO
tracking (see the auth-service OpsDoc for examples of dashboards).
## Build
How to build the software that makes the service. Where to download it from,
where the source code repository is, steps for building and making a package or
other distribution mechanisms. If it is software that you modify in any way
(open source project you contribute to or a local project) include instructions
for how a new developer gets started. Ideally the end result is a package that
can be copied to other machines for installation.
## Deploy
How to deploy the service. How to build something from scratch: RAM/disk
requirements, OS version and configuration, what packages to install, and so
on. If this is automated with a configuration management tool like ansible/etc,
then say so.
## Common Tasks
Step-by-step instructions for common things like provisioning
(add/change/delete), common problems and their solutions, and so on.
## DR
Where are backups of data stored? What are disaster / data recovery
procedures?

View File

@@ -1,13 +1,23 @@
<!--
Sonatype Nexus (TM) Open Source Version
Copyright (c) 2008-present Sonatype, Inc.
All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
Eclipse Foundation. All other trademarks are the property of their respective owners.
-->
# ⚠️ Archive Notice
As of October 24, 2023, we will no longer update or support the [Single-Instance OSS/Pro Helm Chart](https://github.com/sonatype/nxrm3-helm-repository/tree/main/nexus-repository-manager).
Deploying Nexus Repository in containers with an embedded database has been known to corrupt the database under some circumstances. We strongly recommend that you use an external PostgreSQL database for Kubernetes deployments.
## Helm Charts for Sonatype Nexus Repository Manager 3
We provide Helm charts for two different deployment scenarios:
See the [AWS Single-Instance Resiliency Chart](./https://github.com/sonatype/nxrm3-helm-repository/tree/main/aws-single-instance-resiliency) if you are doing the following:
* Deploying Nexus Repository Pro to an AWS cloud environment with the desire for automatic failover across Availability Zones (AZs) within a single region
* Planning to configure a single Nexus Repository Pro instance within your Kubernetes/EKS cluster with two or more nodes spread across different AZs within an AWS region
* Using an external PostgreSQL database (required)
See the [Single-Instance OSS/Pro Kubernetes Chart](./https://github.com/sonatype/nxrm3-helm-repository/tree/main/single-inst-oss-pro-kubernetes) if you are doing the following:
* Using embedded OrientDB (required)
* Deploying either Nexus Repository Pro or OSS to an on-premises environment with bare metal/VM server (Node)
* Deploying a single Nexus Repository instance within a Kubernetes cluster that has a single Node configured
We now provide one [HA/Resiliency Helm Chart](https://github.com/sonatype/nxrm3-ha-repository/tree/main/nxrm-ha) that supports both high availability and resilient deployments in AWS, Azure, or on-premises in a Kubernetes cluster. This is our only supported Helm chart for deploying Sonatype Nexus Repository; it requires a PostgreSQL database.

View File

@@ -1,11 +1,17 @@
<!--
Copyright (c) 2019-present Sonatype, Inc. All rights reserved.
Includes the third-party code listed at http://links.sonatype.com/products/clm/attributions.
"Sonatype" is a trademark of Sonatype, Inc.
Sonatype Nexus (TM) Open Source Version
Copyright (c) 2008-present Sonatype, Inc.
All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
Eclipse Foundation. All other trademarks are the property of their respective owners.
-->
# Reporting Security Vulnerabilities
## When to report

View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2020 Sonatype
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,101 +0,0 @@
# Helm Chart for a Resilient Nexus Repository Deployment in AWS
This Helm chart configures the Kubernetes resources that are needed for a resilient Nexus Repository deployment on AWS as described in our documented [single-node cloud resilient deployment example using AWS](https://help.sonatype.com/repomanager3/planning-your-implementation/resiliency-and-high-availability/single-node-cloud-resilient-deployment-example-using-aws).
Use the checklist below to determine if this Helm chart is suitable for your deployment needs.
---
## When to Use This Helm Chart
Use this Helm chart if you are doing any of the following:
- Deploying Nexus Repository Pro to an AWS cloud environment with the desire for automatic failover across Availability Zones (AZs) within a single region
- Planning to configure a single Nexus Repository Pro instance within your Kubernetes/EKS cluster with two or more nodes spread across different AZs within an AWS region
- Using an external PostgreSQL database
> **Note**: A Nexus Repository Pro license is required for our resilient deployment options. Your Nexus Repository Pro license file must be stored externally as mounted from AWS Secrets AWS (required).
---
## Prerequisites for This Chart
In order to set up an environment like the one illustrated above and described in this section, you will need the following:
- Kubernetes 1.19+
- [kubectl](https://kubernetes.io/docs/tasks/tools/)
- [Helm 3](https://helm.sh/docs/intro/install/)
- A Nexus Repository Pro license
- An AWS account with permissions for accessing the following AWS services:
- Elastic Kubernetes Service (EKS)
- Relational Database Service (RDS) for PostgreSQL
- Application Load Balancer (ALB)
- CloudWatch
- Simple Storage Service (S3)
- Secrets Manager
You will also need to complete the steps below. See the referenced AWS documentation for detailed configuration steps. Also see [our resiliency documentation](https://help.sonatype.com/repomanager3/planning-your-implementation/resiliency-and-high-availability/single-node-cloud-resilient-deployment-example-using-aws) for more details about why these steps are necessary and how each AWS solution functions within a resilient deployment:
1. Configure an EKS cluster - [AWS documentation for managed nodes (i.e., EC2)](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html)
2. Create an Aurora database cluster - [AWS documentation for creating an Aurora database cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html)
3. Deploy the AWS Load Balancer Controller (LBC) to your EKS cluster - [AWS documentation for deploying the AWS LBC to your EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html)
4. Install AWS Secrets Store CSI drivers - You need to create an IAM service account using the ```eksctl create iamserviceaccount``` command. Before proceeding, read the points below as they contain important required steps to ensure this helm chart will work for you: <br>
- **You must include two additional command parameters when running the command**: ```--role-only``` and ```--namespace <nexusrepo namespace>```
- It is important to include the ```--role-only``` option in the ```eksctl create iamserviceaccount``` command so that the helm chart manages the Kubernetes service account. <br>
- **The namespace you specify to the ```eksctl create iamserviceaccount``` must be the same namespace into which you will deploy the Nexus Repository pod.** <br>
- Although the namespace does not exist at this point, you must specify it as part of the command. **Do not create that namespace manually beforehand**; the helm chart will create and manage it.
- You should specify this same namespace as the value of ```nexusNs``` in your values.yaml. <br>
- Follow the instructions provided in the [AWS Secrets Store CSI drivers documentation](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/README.md) to install the AWS Secrets Store CSI drivers; ensure that you follow the additional instructions in the bullets above when you reach the ```eksctl create iamserviceaccount``` command on that page.
5. Ensure that your EKS nodes are granted CloudWatchFullAccess and CloudWatchAgentServerPolicy IAM policies. This Helm chart will configure Fluentbit for log externalisation to CloudWatch.
- [AWS documentation for setting up Fluentbit](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-EKS.html)
---
## Deployment
1. Pull the [nxrm-resiliency-aws-helmchart](https://github.com/sonatype/nxrm3-helm-repository/blob/main/aws-single-instance-resiliency/Chart.yaml).
2. Ensure you have updated your values.yaml with appropriate values for your environment.
3. Install the chart using the following:
```helm install nxrm nexus/nxrm-aws-resiliency --values values.yaml```
3. Get the Nexus Repository link using the following:
```kubectl get ingresses -n nexusrepo```
---
## Health Check
You can use the following commands to perform various health checks:
See a list of releases:
```helm list```
Check pods using the following:
```kubectl get pods -n nexusrepo```
Check the Nexus Repository logs with the following:
```kubectl logs <pod_name> -n nexusrepo nxrm-app```
Check if the pod is OK by using the following; you shouldn't see any error/warning messages:
```kubectl describe pod <pod_name> -n nexusrepo```
Check if ingress is OK using the following:
```kubectl describe ingress <ingress_name> -n nexusrepo```
Check that the Fluent Bit pod is sending events to CloudWatch using the following:
```kubectl logs -n amazon-cloudwatch <fluent-bit pod id>```
If the above returns without error, then check CloudWatch for the ```/aws/containerinsights/<eks cluster name>/nexus-logs``` log group, which should contain four log streams.
---
## Uninstall
To uninstall the deployment, use the following:
```helm uninstall nxrm```
After removing the deployment, ensure that the namespace is deleted and that Nexus Repository is not listed when using the following:
```helm list```

View File

@@ -1,10 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: {{ .Values.namespaces.nexusNs }}
---
apiVersion: v1
kind: Namespace
metadata:
name: {{ .Values.namespaces.cloudwatchNs }}
---

View File

@@ -1,7 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.name }}
namespace: {{ .Values.namespaces.nexusNs }}
annotations:
eks.amazonaws.com/role-arn: {{ .Values.serviceAccount.role }}

View File

@@ -1,79 +0,0 @@
# Declare variables to be passed into your templates.
namespaces:
nexusNs: nexusrepo
cloudwatchNs: amazon-cloudwatch
deployment:
name: nxrm.deployment
clusterName: nxrm-nexus
logsRegion: us-east-1
initContainer:
image:
repository: busybox
tag: 1.33.1
container:
image:
repository: sonatype/nexus3
tag: 3.41.1
containerPort: 8081
pullPolicy: IfNotPresent
env:
nexusDBName: nexus
nexusDBPort: 3306
requestLogContainer:
image:
repository: busybox
tag: 1.33.1
auditLogContainer:
image:
repository: busybox
tag: 1.33.1
taskLogContainer:
image:
repository: busybox
tag: 1.33.1
serviceAccount:
name: nexus-repository-deployment-sa #This SA is created as part of steps under "AWS Secrets Manager"
role: arn:aws:iam::000000000000:role/nxrm-nexus-role #Role with secretsmanager permissions
ingress:
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internal # scheme
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2 #comma separated list of subnet ids
dockerIngress: #Ingress for Docker Connector
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internal # scheme
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2 #comma separated list of subnet ids
port: 9090
pv:
storage: 120Gi
volumeMode: Filesystem
accessModes: ReadWriteOnce
reclaimPolicy: Retain
path: /mnt
zones:
zone1: us-east-1a
zone2: us-east-1b
pvc:
accessModes: ReadWriteOnce
storage: 100Gi
service: #Nexus Repo NodePort Service
nexus:
type: NodePort
protocol: TCP
port: 80
targetPort: 8081
docker: #Nodeport Service for Docker connector
type: NodePort
protocol: TCP
port: 9090
targetPort: 9090
secret:
license:
arn: arn:aws:secretsmanager:us-east-1:000000000000:secret:nxrm-nexus-license
alias: nxrm-license.lic
rds:
arn: arn:aws:secretsmanager:us-east-1:000000000000:secret:nxrmrds-cred-nexus
adminpassword:
arn: arn:aws:secretsmanager:us-east-1:000000000000:secret:admin-nxrm-password

29
build.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/sh
#
# Sonatype Nexus (TM) Open Source Version
# Copyright (c) 2008-present Sonatype, Inc.
# All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
#
# This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
# which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
#
# Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
# of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
# Eclipse Foundation. All other trademarks are the property of their respective owners.
#
helm plugin install --version "0.2.11" https://github.com/quintush/helm-unittest
set -e
# lint yaml of charts
helm lint ./nxrm-aws-resiliency
helm lint ./nexus-repository-manager
# unit test
(cd ./nxrm-aws-resiliency; helm unittest -3 -t junit -o test-output.xml .)
(cd ./nexus-repository-manager; helm unittest -3 -t junit -o test-output.xml .)
# package the charts into tgz archives
helm package ./nxrm-aws-resiliency --destination docs
helm package ./nexus-repository-manager --destination docs

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,3 +1,10 @@
Copyright (c) 2019-present Sonatype, Inc. All rights reserved.
Includes the third-party code listed at http://links.sonatype.com/products/clm/attributions.
"Sonatype" is a trademark of Sonatype, Inc.
Sonatype Nexus (TM) Open Source Version
Copyright (c) 2008-present Sonatype, Inc.
All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
Eclipse Foundation. All other trademarks are the property of their respective owners.

View File

@@ -0,0 +1,24 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS
*.tar

View File

@@ -1,14 +1,16 @@
apiVersion: v2
name: nexus-repository-manager
# The nexus-repository-manager chart is deprecated and no longer maintained
deprecated: true
# 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.
version: 38.1.0
version: 64.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: 3.38.1
appVersion: 3.64.0
description: Sonatype Nexus Repository Manager - Universal Binary repository
description: DEPRECATED Sonatype Nexus Repository Manager - Universal Binary repository
# A chart can be either an 'application' or a 'library' chart.
#
@@ -35,6 +37,3 @@ home: https://www.sonatype.com/nexus-repository-oss
icon: https://sonatype.github.io/helm3-charts/NexusRepo_Vertical.svg
sources:
- https://github.com/sonatype/nexus-public
maintainers:
- email: support@sonatype.com
name: Sonatype

View File

@@ -1,3 +1,27 @@
<!--
Sonatype Nexus (TM) Open Source Version
Copyright (c) 2008-present Sonatype, Inc.
All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
Eclipse Foundation. All other trademarks are the property of their respective owners.
-->
# ⚠️ Archive Notice
As of October 24, 2023, we will no longer update or support this Helm chart.
Deploying Nexus Repository in containers with an embedded database has been known to corrupt the database under some circumstances. We strongly recommend that you use an external PostgreSQL database for Kubernetes deployments.
If you are deploying in AWS, you can use our [AWS Helm chart](https://github.com/sonatype/nxrm3-helm-repository/tree/main/nxrm-aws-resiliency) to deploy Nexus Repository in an EKS cluster.
We do not currently provide Helm charts for on-premises deployments using PostgreSQL. For those wishing to deploy on premises, see our [Single Data Center On-Premises Deployment Example Using Kubernetes documentation](https://help.sonatype.com/repomanager3/planning-your-implementation/resiliency-and-high-availability/single-data-center-on-premises-deployment-example-using-kubernetes) for information and sample YAMLs to help you plan a resilient on-premises deployment.
# Nexus Repository
[Nexus Repository OSS](https://www.sonatype.com/nexus-repository-oss) provides universal support for all major build tools.
@@ -52,14 +76,9 @@ Do not use this Helm chart and, instead, refer to our [resiliency documentation]
By default, this Chart uses Sonatype's Public Docker image. If you want to use a different image, run with the following: `--set nexus.imageName=<my>/<image>`.
### With Red Hat Certified container
## Adding the Sonatype Repository to your Helm
If you're looking run our Certified Red Hat image in an OpenShift4 environment, there is a Certified Operator in OperatorHub.
---
## Adding the repo
To add as a Helm Repo, use the following:
To add as a Helm Repo
```helm repo add sonatype https://sonatype.github.io/helm3-charts/```
---
@@ -96,6 +115,7 @@ The default login is randomized and can be found in `/nexus-data/admin.password`
by setting the environment variable `NEXUS_SECURITY_RANDOMPASSWORD` to `false` in your `values.yaml`.
---
## Uninstalling the Chart
To uninstall/delete the deployment, use the following:
@@ -118,16 +138,16 @@ The following table lists the configurable parameters of the Nexus chart and the
| Parameter | Description | Default |
|--------------------------------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| `deploymentStrategy` | Deployment Strategy | `Recreate` |
| `nexus.imagePullPolicy` | Nexus Repository image pull policy | `IfNotPresent` |
| `nexus.imagePullSecrets` | Secret to download Nexus Repository image from private registry | `nil` |
| `nexus.imagePullPolicy` | Nexus Repository image pull policy | `IfNotPresent` |
| `imagePullSecrets` | The names of the kubernetes secrets with credentials to login to a registry | `[]` |
| `nexus.docker.enabled` | Enable/disable Docker support | `false` |
| `nexus.docker.registries` | Support multiple Docker registries | (see below) |
| `nexus.docker.registries[0].host` | Host for the Docker registry | `cluster.local` |
| `nexus.docker.registries[0].port` | Port for the Docker registry | `5000` |
| `nexus.docker.registries[0].secretName` | TLS Secret Name for the ingress | `registrySecret` |
| `nexus.env` | Nexus Repository environment variables | `[{INSTALL4J_ADD_VM_PARAMS: -Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap}]` |
| `nexus.resources` | Nexus Repository resource requests and limits | `{}` |
| `nexus.nexusPort` | Internal port for Nexus Repository service | `8081` |
| `nexus.env` | Nexus Repository environment variables | `[{INSTALL4J_ADD_VM_PARAMS: -Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap}]` |
| `nexus.resources` | Nexus Repository resource requests and limits | `{}` |
| `nexus.nexusPort` | Internal port for Nexus Repository service | `8081` |
| `nexus.securityContext` | Security Context (for enabling official image use `fsGroup: 2000`) | `{}` |
| `nexus.labels` | Service labels | `{}` |
| `nexus.podAnnotations` | Pod Annotations | `{}` |
@@ -144,17 +164,17 @@ The following table lists the configurable parameters of the Nexus chart and the
| `nexus.hostAliases` | Aliases for IPs in /etc/hosts | [] |
| `nexus.properties.override` | Set to true to override default nexus.properties | `false` |
| `nexus.properties.data` | A map of custom nexus properties if `override` is set to true | `nexus.scripts.allowCreation: true` |
| `ingress.enabled` | Create an ingress for Nexus Repository | `true` |
| `ingress.enabled` | Create an ingress for Nexus Repository | `false` |
| `ingress.annotations` | Annotations to enhance ingress configuration | `{kubernetes.io/ingress.class: nginx}` |
| `ingress.tls.secretName` | Name of the secret storing TLS cert, `false` to use the Ingress' default certificate | `nexus-tls` |
| `ingress.path` | Path for ingress rules. GCP users should set to `/*`. | `/` |
| `ingress.path` | Path for ingress rules. GCP users should set to `/*`. | `/` |
| `tolerations` | tolerations list | `[]` |
| `config.enabled` | Enable configmap | `false` |
| `config.mountPath` | Path to mount the config | `/sonatype-nexus-conf` |
| `config.data` | Configmap data | `nil` |
| `deployment.annotations` | Annotations to enhance deployment configuration | `{}` |
| `deployment.initContainers` | Init containers to run before main containers | `nil` |
| `deployment.postStart.command` | Command to run after starting the container | `nil` |
| `deployment.postStart.command` | Command to run after starting the container | `nil` |
| `deployment.terminationGracePeriodSeconds` | Update termination grace period (in seconds) | 120s |
| `deployment.additionalContainers` | Add additional Container | `nil` |
| `deployment.additionalVolumes` | Add additional Volumes | `nil` |
@@ -173,16 +193,44 @@ The following table lists the configurable parameters of the Nexus chart and the
| `route.portName` | Target port name of service | `docker` |
| `route.labels` | Labels to be added to route | `{}` |
| `route.annotations` | Annotations to be added to route | `{}` |
| `route.path` | Host name of Route e.g. jenkins.example.com | nil |
| `route.path` | Host name of Route e.g. jenkins.example.com | nil |
| `serviceAccount.create` | Set to true to create ServiceAccount | `true` |
| `serviceAccount.annotations` | Set annotations for ServiceAccount | `{}` |
| `serviceAccount.name` | The name of the service account to use. Auto-generate if not set and create is true. | `{}` |
| `serviceAccount.name` | The name of the service account to use. Auto-generate if not set and create is true. | `{}` |
| `persistence.enabled` | Set false to eliminate persistent storage | `true` |
| `persistence.existingClaim` | Specify the name of an existing persistent volume claim to use instead of creating a new one | nil |
| `persistence.storageSize` | Size of the storage the chart will request | `8Gi` |
| `persistence.storageSize` | Size of the storage the chart will request | `8Gi` |
### Persistence
By default, a `PersistentVolumeClaim` is created and mounted into the `/nexus-data` directory. In order to disable this functionality, you can change the `values.yaml` to disable persistence, which will use an `emptyDir` instead.
> *"An emptyDir volume is first created when a Pod is assigned to a Node, and exists as long as that Pod is running on that node. When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever."*
## Using the Image from the Red Hat Registry
To use the [Nexus Repository Manager image available from Red Hat's registry](https://catalog.redhat.com/software/containers/sonatype/nexus-repository-manager/594c281c1fbe9847af657690),
you'll need to:
* Load the credentials for the registry as a secret in your cluster
```shell
kubectl create secret docker-registry redhat-pull-secret \
--docker-server=registry.connect.redhat.com \
--docker-username=<user_name> \
--docker-password=<password> \
--docker-email=<email>
```
See Red Hat's [Registry Authentication documentation](https://access.redhat.com/RegistryAuthentication)
for further details.
* Provide the name of the secret in `imagePullSecrets` in this chart's `values.yaml`
```yaml
imagePullSecrets:
- name: redhat-pull-secret
```
* Set `image.name` and `image.tag` in `values.yaml`
```yaml
image:
repository: registry.connect.redhat.com/sonatype/nexus-repository-server
tag: 3.39.0-ubi-1
```
---

View File

@@ -48,7 +48,7 @@ spec:
hostAliases:
{{ toYaml .Values.nexus.hostAliases | nindent 8 }}
{{- end }}
{{- if .Values.nexus.imagePullSecrets }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
@@ -59,7 +59,14 @@ spec:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
capabilities:
drop:
- ALL
lifecycle:
{{- if .Values.deployment.postStart.command }}
postStart:

View File

@@ -62,6 +62,9 @@ metadata:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if $.Values.ingress.ingressClassName }}
ingressClassName: {{ $.Values.ingress.ingressClassName }}
{{- end }}
tls:
- hosts:
- {{ $registry.host | quote }}

View File

@@ -36,7 +36,14 @@ tests:
pattern: sonatype/nexus3:3\.\d+\.\d+
- equal:
path: spec.template.spec.containers[0].securityContext
value: null
value:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
- equal:
path: spec.template.spec.containers[0].imagePullPolicy
value: IfNotPresent
@@ -44,12 +51,17 @@ tests:
path: spec.template.spec.containers[0].env
value:
- name: INSTALL4J_ADD_VM_PARAMS
value: -Xms2703M -Xmx2703M -XX:MaxDirectMemorySize=2703M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
value: |-
-Xms2703M -Xmx2703M
-XX:MaxDirectMemorySize=2703M
-XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap
-Djava.util.prefs.userRoot=/nexus-data/javaprefs
- name: NEXUS_SECURITY_RANDOMPASSWORD
value: "true"
- equal:
path: spec.template.spec.containers[0].ports
value:
value:
- containerPort: 8081
name: nexus-ui
- equal:
@@ -83,3 +95,26 @@ tests:
- name: nexus-repository-manager-data
persistentVolumeClaim:
claimName: RELEASE-NAME-nexus-repository-manager-data
- equal:
path: spec.template.spec.securityContext
value:
fsGroup: 200
runAsGroup: 200
runAsUser: 200
- it: should use our simple values
template: deployment.yaml
set:
deploymentStrategy: my-strategy
imagePullSecrets:
- name: top-secret
asserts:
- hasDocuments:
count: 1
- equal:
path: spec.strategy.type
value: my-strategy
- equal:
path: spec.template.spec.imagePullSecrets
value:
- name: top-secret

View File

@@ -1,3 +1,4 @@
---
suite: ingress
templates:
- ingress.yaml
@@ -97,7 +98,105 @@ tests:
equal:
path: metadata.name
value: RELEASE-NAME-nexus-repository-manager
- documentIndex: 0
equal:
path: spec
value:
ingressClassName: nginx
rules:
- host: repo.demo
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: RELEASE-NAME-nexus-repository-manager
port:
number: 8081
- documentIndex: 1
equal:
path: metadata.name
value: RELEASE-NAME-nexus-repository-manager-docker-5000
- documentIndex: 1
equal:
path: spec
value:
ingressClassName: nginx
rules:
- host: docker.repo.demo
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: RELEASE-NAME-nexus-repository-manager-docker-5000
port:
number: 5000
tls:
- hosts:
- docker.repo.demo
secretName: registry-secret
- it: we can exclude ingressClassName for repo ingress and docker ingress
set:
ingress:
enabled: true
ingressClassName: {}
nexus:
docker:
enabled: true
registries:
- host: docker.repo.demo
port: 5000
secretName: registry-secret
asserts:
- hasDocuments:
count: 2
- isKind:
of: Ingress
- equal:
path: apiVersion
value: networking.k8s.io/v1
- equal:
path: metadata.labels.[app.kubernetes.io/instance]
value: RELEASE-NAME
- equal:
path: metadata.labels.[app.kubernetes.io/managed-by]
value: Helm
- matchRegex:
path: metadata.labels.[app.kubernetes.io/version]
pattern: \d+\.\d+\.\d+
- matchRegex:
path: metadata.labels.[helm.sh/chart]
pattern: nexus-repository-manager-\d+\.\d+\.\d+
- equal:
path: metadata.labels.[app.kubernetes.io/name]
value: nexus-repository-manager
- equal:
path: metadata.annotations
value:
nginx.ingress.kubernetes.io/proxy-body-size: "0"
- documentIndex: 0
equal:
path: metadata.name
value: RELEASE-NAME-nexus-repository-manager
- documentIndex: 0
equal:
path: spec
value:
rules:
- host: repo.demo
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: RELEASE-NAME-nexus-repository-manager
port:
number: 8081
- documentIndex: 1
equal:
path: metadata.name
@@ -119,9 +218,8 @@ tests:
number: 5000
tls:
- hosts:
- docker.repo.demo
- docker.repo.demo
secretName: registry-secret
- it: is disabled by default
asserts:
- hasDocuments:

Some files were not shown because too many files have changed in this diff Show More