Compare commits
32 Commits
Author | SHA1 | Date | |
---|---|---|---|
a532a5eabc | |||
9831de32bc | |||
f3a0053f4c | |||
eaff5b490c | |||
90921100be | |||
cc5a53e5a4 | |||
0cb275e219 | |||
0462b7eb43 | |||
d1d2971125 | |||
616ecbc831 | |||
61c0cb0eb3 | |||
ce20f243b6 | |||
3487c9fdb6 | |||
f166861198 | |||
00dfee338c | |||
560b9f1ff6 | |||
35fb1119fb | |||
8396c0de20 | |||
541e70232b | |||
7ef8c04eef | |||
43580c8a5d | |||
d27891b463 | |||
53f8dcfa69 | |||
55a17e0b76 | |||
7d3dcf6fe1 | |||
c8b1ad3059 | |||
990728c288 | |||
4b62f278ef | |||
28f4e871e5 | |||
e2b335d84b | |||
e5ea67a8b4 | |||
cb992b92e5 |
10
README.md
10
README.md
@ -14,7 +14,13 @@
|
||||
-->
|
||||
# ⚠️ Archive Notice
|
||||
|
||||
As of October 24, 2023, we will no longer update or support the [Single-Instance OSS/Pro Kubernetes Chart](https://github.com/sonatype/nxrm3-helm-repository/tree/main/nexus-repository-manager).
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
## Helm Charts for Sonatype Nexus Repository Manager 3
|
||||
|
||||
@ -25,7 +31,7 @@ See the [AWS Single-Instance Resiliency Chart](https://github.com/sonatype/nxrm3
|
||||
* 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/nexus-repository-manager) if you are doing the following:
|
||||
See the [Single-Instance OSS/Pro Helm Chart](https://github.com/sonatype/nxrm3-helm-repository/tree/main/nexus-repository-manager) 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
|
||||
|
2
build.sh
2
build.sh
@ -12,7 +12,7 @@
|
||||
# Eclipse Foundation. All other trademarks are the property of their respective owners.
|
||||
#
|
||||
|
||||
helm plugin install https://github.com/quintush/helm-unittest
|
||||
helm plugin install --version "0.2.11" https://github.com/quintush/helm-unittest
|
||||
|
||||
set -e
|
||||
|
||||
|
BIN
docs/nexus-repository-manager-44.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-44.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-45.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-45.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-45.1.0.tgz
Normal file
BIN
docs/nexus-repository-manager-45.1.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-46.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-46.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-47.1.0.tgz
Normal file
BIN
docs/nexus-repository-manager-47.1.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-48.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-48.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-49.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-49.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-50.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-50.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-51.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-51.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nexus-repository-manager-52.0.0.tgz
Normal file
BIN
docs/nexus-repository-manager-52.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-44.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-44.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-45.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-45.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-45.1.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-45.1.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-46.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-46.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-47.1.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-47.1.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-48.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-48.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-49.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-49.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-50.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-50.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-51.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-51.0.0.tgz
Normal file
Binary file not shown.
BIN
docs/nxrm-aws-resiliency-52.0.0.tgz
Normal file
BIN
docs/nxrm-aws-resiliency-52.0.0.tgz
Normal file
Binary file not shown.
@ -3,10 +3,10 @@ name: nexus-repository-manager
|
||||
|
||||
# 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: 43.0.0
|
||||
version: 52.0.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.43.0
|
||||
appVersion: 3.52.0
|
||||
|
||||
description: Sonatype Nexus Repository Manager - Universal Binary repository
|
||||
|
||||
|
@ -16,6 +16,12 @@
|
||||
|
||||
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.
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -6,7 +6,7 @@ deploymentStrategy: Recreate
|
||||
image:
|
||||
# Sonatype Official Public Image
|
||||
repository: sonatype/nexus3
|
||||
tag: 3.43.0
|
||||
tag: 3.52.0
|
||||
pullPolicy: IfNotPresent
|
||||
imagePullSecrets:
|
||||
# for image registries that require login, specify the name of the existing
|
||||
|
@ -15,13 +15,13 @@ type: application
|
||||
# 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.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 43.0.0
|
||||
version: 52.0.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. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: 3.43.0
|
||||
appVersion: 3.52.0
|
||||
|
||||
keywords:
|
||||
- artifacts
|
||||
|
@ -77,7 +77,7 @@ data:
|
||||
[INPUT]
|
||||
Name tail
|
||||
Tag nexus.nexus-log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-nxrm.deployment*{{ .Values.namespaces.nexusNs }}_nxrm-app-*.log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-{{ .Values.deployment.name }}*{{ .Values.namespaces.nexusNs }}_nxrm-app-*.log
|
||||
Parser docker
|
||||
DB /var/fluent-bit/state/flb_container.db
|
||||
Mem_Buf_Limit 5MB
|
||||
@ -112,7 +112,7 @@ data:
|
||||
[INPUT]
|
||||
Name tail
|
||||
Tag nexus.request-log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-nxrm.deployment*{{ .Values.namespaces.nexusNs }}_request-log-*.log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-{{ .Values.deployment.name }}*{{ .Values.namespaces.nexusNs }}_request-log-*.log
|
||||
Parser docker
|
||||
DB /var/fluent-bit/state/flb_container.db
|
||||
Mem_Buf_Limit 5MB
|
||||
@ -147,7 +147,7 @@ data:
|
||||
[INPUT]
|
||||
Name tail
|
||||
Tag nexus.audit-log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-nxrm.deployment*{{ .Values.namespaces.nexusNs }}_audit-log-*.log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-{{ .Values.deployment.name }}*{{ .Values.namespaces.nexusNs }}_audit-log-*.log
|
||||
Parser docker
|
||||
DB /var/fluent-bit/state/flb_container.db
|
||||
Mem_Buf_Limit 5MB
|
||||
@ -182,7 +182,7 @@ data:
|
||||
[INPUT]
|
||||
Name tail
|
||||
Tag nexus.tasks-log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-nxrm.deployment*{{ .Values.namespaces.nexusNs }}_tasks-log-*.log
|
||||
Path /var/log/containers/{{ .Chart.Name }}-{{ .Chart.Version }}.{{ .Release.Name }}-{{ .Values.deployment.name }}*{{ .Values.namespaces.nexusNs }}_tasks-log-*.log
|
||||
Parser docker
|
||||
DB /var/fluent-bit/state/flb_container.db
|
||||
Mem_Buf_Limit 5MB
|
||||
|
11
nxrm-aws-resiliency/templates/workdir-configmap.yaml
Normal file
11
nxrm-aws-resiliency/templates/workdir-configmap.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Values.workdir.configmap.name }}
|
||||
namespace: {{ .Values.namespaces.nexusNs }}
|
||||
data:
|
||||
create-nexus-work-dir.sh: |
|
||||
#!/bin/bash
|
||||
# Make Nexus Repository Manager work directory
|
||||
mkdir -p /nexus-repo-mgr-work-dir/work
|
||||
|
51
nxrm-aws-resiliency/templates/workdir-daemonset.yaml
Normal file
51
nxrm-aws-resiliency/templates/workdir-daemonset.yaml
Normal file
@ -0,0 +1,51 @@
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: {{ .Values.workdir.daemonset.name }}
|
||||
namespace: {{ .Values.namespaces.nexusNs }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
job: dircreator
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
job: dircreator
|
||||
spec:
|
||||
hostPID: true
|
||||
restartPolicy: Always
|
||||
initContainers:
|
||||
# Copy file for creating nexus work directory over and execute it on host
|
||||
- name: create-nexus-work-dir
|
||||
image: ubuntu:23.04
|
||||
command: [/bin/sh]
|
||||
args:
|
||||
- -c
|
||||
- >-
|
||||
cp /tmp/create-nexus-work-dir.sh /host-dir &&
|
||||
/usr/bin/nsenter -m/proc/1/ns/mnt -- chmod u+x /tmp/install/create-nexus-work-dir.sh &&
|
||||
/usr/bin/nsenter -m/proc/1/ns/mnt /tmp/install/create-nexus-work-dir.sh
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- name: create-nexus-work-dir-script
|
||||
mountPath: /tmp
|
||||
- name: host-mnt
|
||||
mountPath: /host-dir
|
||||
containers:
|
||||
- name: directory-creator
|
||||
image: busybox:1.33.1
|
||||
command: ["/bin/sh"]
|
||||
args:
|
||||
- -c
|
||||
- >-
|
||||
tail -f /dev/null
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumes:
|
||||
- name: create-nexus-work-dir-script
|
||||
configMap:
|
||||
name: {{ .Values.workdir.configmap.name }}
|
||||
- name: host-mnt
|
||||
hostPath:
|
||||
path: /tmp/install
|
@ -12,6 +12,7 @@ deployment:
|
||||
clusterName: nxrm-nexus
|
||||
logsRegion: us-east-1
|
||||
fluentBitVersion: 2.28.0
|
||||
replicaCount: 1
|
||||
initContainer:
|
||||
image:
|
||||
repository: busybox
|
||||
@ -19,7 +20,7 @@ deployment:
|
||||
container:
|
||||
image:
|
||||
repository: sonatype/nexus3
|
||||
tag: 3.41.1
|
||||
tag: 3.45.1
|
||||
containerPort: 8081
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
@ -48,27 +49,35 @@ ingress:
|
||||
#host: "example.com" #host to apply this ingress rule to. Uncomment this in your values.yaml and set it as you wish
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: alb
|
||||
alb.ingress.kubernetes.io/healthcheck-path: /service/rest/v1/status
|
||||
alb.ingress.kubernetes.io/scheme: internal # scheme
|
||||
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2 #comma separated list of subnet ids
|
||||
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
|
||||
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:0000000000000:certificate/00000000-1111-2222-3333-444444444444 # The AWS Certificate Manager ARN for your HTTPS certificate
|
||||
#alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' uncomment for https
|
||||
#alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:0000000000000:certificate/00000000-1111-2222-3333-444444444444 # Uncomment for https. The AWS Certificate Manager ARN for your HTTPS certificate
|
||||
dockerIngress: #Ingress for Docker Connector - comment out if you don't use docker repositories
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: alb # comment out if you don't use docker repositories
|
||||
alb.ingress.kubernetes.io/scheme: internal # scheme comment out if you don't use docker repositories
|
||||
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2 #comma separated list of subnet ids, comment out if you don't use docker repositories
|
||||
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' #comment out if you don't use docker repositories
|
||||
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:0000000000000:certificate/00000000-1111-2222-3333-444444444444 # Comment out if you don't use docker repositories - The AWS Certificate Manager ARN for your HTTPS certificate
|
||||
external-dns.alpha.kubernetes.io/hostname: dockerrepo1.example.com, dockerrepo2.example.com, dockerrepo3.example.com # Add more docker subdomains using dockerrepoName.example.com othereise comment out if you don't use docker repositories
|
||||
# alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' #uncomment if you use docker repositories
|
||||
# alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:0000000000000:certificate/00000000-1111-2222-3333-444444444444 # Uncomment if you use docker repositories - The AWS Certificate Manager ARN for your HTTPS certificate
|
||||
# external-dns.alpha.kubernetes.io/hostname: dockerrepo1.example.com, dockerrepo2.example.com, dockerrepo3.example.com # Add more docker subdomains using dockerrepoName.example.com othereise comment out if you don't use docker repositories
|
||||
workdir:
|
||||
configmap:
|
||||
name: create-nexus-workdir-config
|
||||
daemonset:
|
||||
name: create-nexus-work-dir
|
||||
storageClass:
|
||||
iopsPerGB: "10" #Note: aws plugin multiplies this by the size of the requested volumne to compute IOPS of the volumne and caps it a 20, 000 IOPS
|
||||
pv:
|
||||
storage: 120Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes: ReadWriteOnce
|
||||
reclaimPolicy: Retain
|
||||
path: /mnt
|
||||
path: /nexus-repo-mgr-work-dir/work
|
||||
zones:
|
||||
zone1: us-east-1a
|
||||
zone2: us-east-1b
|
||||
- us-east-1a
|
||||
- us-east-1b
|
||||
pvc:
|
||||
accessModes: ReadWriteOnce
|
||||
storage: 100Gi
|
||||
|
Reference in New Issue
Block a user