Compare commits

...

149 Commits

Author SHA1 Message Date
b8e8dd5d11 update readme 2024-02-27 15:48:15 +00:00
bd87fc9a92 Release Update for 64.1.0 2024-02-27 11:50:47 +00:00
7270b9f159 Merge pull request #63 from sonatype/NEXUS-40550-update-archive-project
NEXUS-40550 - Deprecate and redirect to nxrm ha helm chart
2024-02-27 10:34:09 +00:00
c4f82cb690 deprecate charts 2024-02-21 12:13:10 +00:00
c23b792dbc Merge pull request #64 from sonatype/README-Updates-Lisa
NEXUS-40550 - Readme updates lisa
2024-02-21 12:09:07 +00:00
114b09e289 Update nxrm-aws-resiliency/README.md 2024-02-15 08:11:01 -05:00
200b2a31cd Update README.md 2024-02-15 08:09:38 -05:00
e22fc2a29a Update README.md 2024-02-15 08:01:07 -05:00
4c6f4b195c Release Update for 64.0.0 2024-01-12 21:38:35 +00:00
1295047741 Release Update for 64.0.0 2024-01-12 21:35:18 +00:00
713ae5affa Release Update for 64.0.0 2024-01-10 00:22:53 +00:00
896c4fb4bc Release Update for 63.0.0 2023-12-05 13:29:51 +00:00
51d32734ba Release Update for 62.0.0 2023-11-07 16:48:20 +00:00
350fc3cc0a Release Update for 61.0.2 2023-10-04 15:08:50 +00:00
6333981376 Release Update for 61.0.0 2023-10-03 19:03:23 +00:00
495692d601 Release Update for 60.0.0 2023-09-12 13:45:57 +00:00
7800130333 Release Update for 59.0.0 2023-08-15 15:45:45 +00:00
528e80c24c Release Update for 58.1.0 2023-07-25 14:30:53 +00:00
f0137814c9 Release Update for 57.1.0 2023-07-25 14:12:54 +00:00
16fd539366 Release Update for 58.1.0 2023-07-21 22:21:18 +00:00
442069aa67 Release Update for 57.1.0 2023-07-21 22:20:01 +00:00
28dff42f5f Release Update for 58.0.0 2023-07-17 14:16:11 +00:00
368fa2ba2e Release Update for 57.0.0 2023-07-05 18:39:25 +00:00
b146ad56b3 Release Update for 56.0.0 2023-06-19 16:14:10 +00:00
686253599c Release Update for 55.0.0 2023-06-05 20:42:42 +00:00
9080037994 Merge pull request #51 from sonatype/NEXUS-39410-Make-fluentbit-docker-and-external-dns-optional 2023-06-01 13:34:53 +02:00
78f22f8ed5 fix warning 2023-06-01 12:22:43 +02:00
b46d89e078 make fluentbit, docker and external dns optional 2023-05-23 12:00:59 +01:00
a566f84674 Release Update for 54.1.0 2023-05-18 20:29:53 +00:00
01dd44acdc Release Update for 54.0.0 2023-05-18 15:45:04 +00:00
1014e66058 Release Update for 53.1.0 2023-05-13 02:57:17 +00:00
9b42daf4c0 Release Update for 53.0.0 2023-05-02 22:39:59 +00:00
a532a5eabc Release Update for 52.0.0 2023-04-18 21:16:24 +00:00
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
f3a0053f4c Pin helm-unittest to 0.2.11 2023-04-18 16:11:11 -05:00
eaff5b490c Release Update for 51.0.0 2023-04-04 20:28:21 +00:00
90921100be Release Update for 50.0.0 2023-03-27 14:40:37 +00:00
cc5a53e5a4 Merge pull request #45 from sonatype/NEXUS-38174
fix fluent bit path
2023-03-24 09:01:35 +00:00
0cb275e219 fix fluent bit path 2023-03-23 12:55:53 +00:00
0462b7eb43 Release Update for 49.0.0 2023-03-06 18:33:41 +00:00
d1d2971125 Release Update for 48.0.0 2023-02-27 15:57:25 +00:00
616ecbc831 Release Update for 47.1.0 2023-02-13 18:07:33 +00:00
61c0cb0eb3 Delete nxrm-aws-resiliency-47.0.0.tgz 2023-02-13 12:57:52 -05:00
ce20f243b6 Delete nexus-repository-manager-47.0.0.tgz 2023-02-13 12:53:49 -05:00
3487c9fdb6 Release Update for 47.0.0 2023-02-07 21:53:31 +00:00
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
00dfee338c externalise config map name 2023-01-31 11:04:24 +00:00
560b9f1ff6 Release Update for 46.0.0 2023-01-30 16:59:06 +00:00
35fb1119fb trunc to 63 characters 2023-01-27 12:26:36 +00:00
8396c0de20 Don't use mnt for nexus-data 2023-01-27 11:45:26 +00:00
541e70232b Release Update for 45.1.0 2023-01-17 19:47:06 +00:00
7ef8c04eef Release Update for 45.0.0 2022-12-28 08:17:36 +00:00
43580c8a5d Release Update for 44.0.0 2022-12-14 16:45:34 +00:00
d27891b463 remove erroneous link 2022-12-08 10:58:53 -05:00
53f8dcfa69 Merge pull request #33 from sonatype/Readme-Update
Update README
2022-12-08 09:44:07 -05:00
55a17e0b76 Update README.md 2022-12-08 09:43:44 -05:00
7d3dcf6fe1 Update README.md 2022-12-08 09:42:55 -05:00
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
990728c288 Update README.md 2022-11-16 10:09:13 -05:00
4b62f278ef Update README.md 2022-11-16 10:08:19 -05:00
28f4e871e5 Update README.md 2022-11-15 10:32:40 -05:00
e2b335d84b Update README.md 2022-11-15 10:32:24 -05:00
e5ea67a8b4 Update README.md 2022-11-15 10:23:53 -05:00
cb992b92e5 Update README 2022-11-15 10:22:20 -05:00
7dd8cd5112 Release Update for 43.0.0 2022-11-07 16:44:38 +00:00
5db6031514 Wording tweak per Vijay 2022-10-26 12:15:37 -04:00
70d639ca4e Merge pull request #29 from sonatype/end-support-chart
End of support for chart
2022-10-25 12:33:45 -04:00
95b8a984ca upgrade to helm 3.10.1 (#31)
latest helm for packaging and testing.
2022-10-25 12:28:21 -04:00
3f0979d531 Update README.md 2022-10-21 12:42:27 -04:00
c164995fbf End of support for chart 2022-10-21 12:41:09 -04:00
3a22af41bd NEXUS-35492 - Allow configuring install4j vm arguments (#25) 2022-10-05 12:42:26 -04:00
59e8ebcd98 Merge pull request #26 from sonatype/fix_broken_link
Fix broken link
2022-09-30 14:37:55 +01:00
5d0bfa8e4e fix link 2022-09-30 10:56:38 +01:00
4b4bbd13f3 Release Update for 42.0.1 2022-09-28 15:38:44 +00:00
77aac91a9f Release Update for 42.0.0 2022-09-28 14:28:27 +00:00
0c51e4c7be Merge pull request #22 from sonatype/NEXUS-34974-publish-nxrm-helm-charts 2022-09-28 16:35:17 +03:00
0adb4a9fc7 uncomment the tests related code in Jenkinsfile 2022-09-20 10:43:08 +03:00
1a821d1032 uncomment the tests 2022-09-19 12:41:25 +03:00
1fa72df38c license header added to README.md 2022-09-14 11:26:56 +03:00
8123c3db21 NEXUS-34974 Publish nxrm helm charts to Sonatype helm repo and Artifact Hub 2022-09-13 15:33:07 +03:00
595206fdc9 Merge pull request #21 from sonatype/fix-build
fix build
2022-09-02 16:12:52 +01:00
7d1dfaa1bd Update README.md 2022-09-02 10:43:11 -04:00
de46a3ca1f fix build 2022-09-02 13:06:18 +01:00
298a49e994 Merge pull request #20 from sonatype/fix-build
fix build
2022-09-02 12:53:26 +01:00
786e5717d2 fix build 2022-09-02 12:50:47 +01:00
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
e82e7a3208 Remove non resiliency helm3-charts 2022-09-02 11:23:27 +01:00
d9da79bb8d Update README.md
wording cleanup
2022-08-30 15:29:11 -04:00
670344d45a Merge pull request #15 from sonatype/update-readme
NEXUS-34871 - readme update
2022-08-30 15:15:32 -04:00
b5168a2dc3 Merge pull request #16 from sonatype/lisadurant-patch-2
readme update
2022-08-30 15:09:58 -04:00
96b919241d resolve conflict 2022-08-30 20:04:28 +01:00
5410733d72 Update README.md 2022-08-30 20:00:37 +01:00
1b4585d89c readme update 2022-08-30 19:32:36 +01:00
4b91e48ef5 readme update 2022-08-30 19:30:05 +01:00
02c19b39ee Release Update for 41.1.3 2022-08-30 15:16:56 +00:00
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
4902991b0c Add more comments to values.yaml 2022-08-30 15:49:21 +01:00
0734d746eb Associate sub domains with docker ingress 2022-08-27 00:59:07 +01:00
c7c527174f Associate sub domains with docker ingress 2022-08-27 00:38:36 +01:00
595db96ef1 license 2022-08-26 22:07:25 +01:00
97dfe39202 parameterise hosted zone 2022-08-26 21:35:49 +01:00
10ee4a5efb parameterise hosted zone 2022-08-26 21:33:53 +01:00
1e5ce73111 specify examples for docker subdomain and cert manager arn 2022-08-26 21:01:10 +01:00
862f179251 Configure external-dns to create docker sub domain rcords and https listener 2022-08-26 20:47:16 +01:00
769c3b7f7c revert 2022-08-26 20:44:42 +01:00
e3af231002 Configure external-dns to create docker sub domain rcords and https listener 2022-08-26 20:42:13 +01:00
a0318927b0 Merge pull request #13 from sonatype/fix-typo
fix numbering
2022-08-26 12:33:05 +01:00
702f846cb2 fix numbering 2022-08-26 12:31:05 +01:00
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
1cddb6982b Update Broken links and readme 2022-08-26 11:48:48 +01:00
cc34987953 Release Update for 41.1.2 2022-08-25 22:04:51 +00:00
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
9c80534bd0 dont set default value for host 2022-08-25 23:00:51 +01:00
d90c7f36e8 Release Update for 41.1.1 2022-08-25 21:30:11 +00:00
6e1c74c877 Merge pull request #10 from sonatype/fix-license
license should be apache not mit
2022-08-25 22:23:41 +01:00
b3785cf228 license should be apache not mit 2022-08-25 22:20:00 +01:00
6dd1b3c662 Release Update for 41.1.0 2022-08-25 19:06:09 +00:00
a40171ae42 Release Update for 41.1.0 2022-08-25 19:00:58 +00:00
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
5c359b9c2c fix commit message 2022-08-25 19:57:48 +01:00
737c1fdc07 Release Update for null 41.1.0 2022-08-25 18:53:31 +00:00
662f32ab62 Use chart version for tag name 2022-08-25 19:52:34 +01:00
694a919144 Release Update for null 41.1.0 2022-08-25 18:47:13 +00:00
4f6f86c972 remove chart from tag name 2022-08-25 19:46:01 +01:00
073dc3d51d set tag name to both charts 2022-08-25 19:43:22 +01:00
526fb55499 Release Update for null 41.1.0 2022-08-25 18:36:12 +00:00
a7feecb463 remove unneeded checks 2022-08-25 19:35:18 +01:00
e5abf26148 Release Update for null 41.1.0 2022-08-25 18:26:16 +00:00
6238cb0609 Remove check for chart param 2022-08-25 19:25:11 +01:00
80cbc2c1b2 fix license 2022-08-25 19:16:06 +01:00
dce7ce20b4 header.txt 2022-08-25 19:08:20 +01:00
e1a1b9baed Update license 2022-08-25 19:03:44 +01:00
af6729642c Update build notifications call 2022-08-25 18:13:27 +01:00
e33e0077b2 Fix file 2022-08-25 18:08:39 +01:00
93553957c5 Newline 2022-08-25 17:51:41 +01:00
5ee93839e4 git ignore 2022-08-25 17:44:42 +01:00
6ec044c09b Removed .DS dir file 2022-08-25 17:42:57 +01:00
24ee4fc9ed Address review comments 2022-08-25 17:38:44 +01:00
9979f3623f Address review comments 2022-08-25 17:38:44 +01:00
b5ef7c6481 Remove sources since nexus-internal is the source but it's a private repo 2022-08-25 17:38:44 +01:00
191c271e35 Address review comments 2022-08-25 17:38:44 +01:00
f60bc6237d Combined Jenkins job to publish aws resilient and non resilient helm charts 2022-08-25 17:38:44 +01:00
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
5c5e88f8f1 Make ingress host configurable 2022-08-24 12:13:04 +01:00
3ddd0ba925 Make ingress host configurable 2022-08-24 12:08:28 +01:00
9e7106f9d1 Fix links in README 2022-08-23 13:43:07 +01:00
a6a8a3c60f Merge pull request #5 from sonatype/NEXUS-34843_update_the_AWS_resiliency_helm_chart_version 2022-08-22 19:44:13 +03:00
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
f3c87e8d32 NEXUS-34212 - Update README
Update README with info about adding annotations and labels
2022-07-29 12:05:29 -04:00
126 changed files with 842 additions and 549 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.

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.2.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

@ -0,0 +1,19 @@
<!--
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.
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

@ -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 }}

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