• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    Shell
  • License
    Other
  • Created over 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helm3 charts for Nexus IQ

Lint and Test Charts

Helm3 Charts for Sonatype Products

Nexus Repository 3 Helm charts are now being published to our Nexus Repository 3 Helm Repository.

Use the new repository to obtain the latest Nexus Repository 3 charts.

These charts are designed to work out of the box with minikube using both ingess and ingress dns addons.

The current releases have been tested on minikube v1.12.3 running k8s v1.18.3

User Documentation

See docs/index.md which is also https://sonatype.github.io/helm3-charts/

Contributing

See the contributing document for details.

For Sonatypers, note that external contributors must sign the CLA and the Dev-Ex team must verify this prior to accepting any PR.

Updating Charts

Charts for Nexus IQ and for NXRM can be updated in charts/ directories. The most common updates will be to use new application images and to bump chart versions for release.

There should likely be no reason to update anything in docs/ by hand.

Test a chart in a local k8s cluster (like minikube) by installing the local copy from within each charts directory:

helm install --generate-name ./

Packaging and Indexing for Release

Sonatype CI build will package, commit, and publish to the official helm repository.

Upon update of the charts/, run build.sh from here in the project root to create tgz packages of the latest chart changes and regenerate the index.yaml file to the docs/ directory which is the root of the repo site.

The build process requires Helm 3.

Manually Testing the Helm Charts

To test Helm Charts locally you will need to follow the next steps:

  1. Install docker, helm, kubectl, and minikube, if you don't already have it on your local workstation.
    • You could also use docker with k8s enabled instead of minikube. You don't need both.
  2. Start up minikube: minikube start
  3. Confirm minikube is up and running: minikube status
  4. List the existing pods in the cluster: kubectl get pods (There should not be anything listed at this point.)
  5. Install the helm chart in any of these ways:
    • From a copy of the source: helm install iq {path/to/your/helm3-charts}/charts/nexus-iq --wait
    • From our production online repo: Add our helm repo locally as instructed at https://sonatype.github.io/helm3-charts/
  6. List installed servers with helm: helm list
  7. Watch the server start in kubernetes by running: kubectl get pods
  8. Use the pod name you get from last command to follow the console logs: kubectl logs -f iq-nexus-iq-server-xxx
  9. Confirm expected version numbers in those logs.
  10. Forward a localhost port to a port on the running pod: kubectl port-forward iq-nexus-iq-server-xxx 8070
  11. Connect and check that your fresh new server is successfully running: http://localhost:8070/
  12. Uninstall the server with helm: helm delete iq
  13. Confirm it's gone: helm list && kubectl get pods
  14. Shutdown minikube: minikube stop

Running Lint

Helm's Lint command will highlight formatting problems in the charts that need to be corrected.

helm lint charts/nexus-iq charts/nexus-repository-manager

Running Unit Tests

To unit test the helm charts you can follow the next steps:

  1. Install the unittest plugin for Helm: https://github.com/quintush/helm-unittest
  2. Run the tests for each individual chart:
    • cd charts/nexus-iq; helm unittest -3 -t junit -o test-output.xml .
    • cd charts/nexus-repository-manager; helm unittest -3 -t junit -o test-output.xml .

Running Integration Tests

You can run the integration tests for the helm charts by running the next commands.

Before running the integration tests:

  • Install docker, helm, kubectl, and minikube, if you don't already have it on your local workstation.
    • You could also use docker with k8s enabled instead of minikube.
  • The integration tests will be executed on a running cluster. Each test will create a new POD that will connect to the server installed by our helm chart. Check this

Running integration tests for Nexus IQ:

  1. From source code: helm install iq ./charts/nexus-iq --wait
  2. Run the tests: helm test iq

Running integration tests for Nexus Repository Manager:

  1. From source code: helm install nxrm ./charts/nexus-repository-manager --wait
  2. Run the tests: helm test nxrm

Further Notes on Usage

Resolver File and Ingress-DNS

Get the default values.yaml for each chart.

  • Nexus Repository: helm show values sonatype/nexus-repository-manager > repo-values.yaml
  • Nexus IQ: helm show values sonatype/nexus-iq-server > iq-values.yaml

Edit the values file you just downloaded to enable ingress support, and install the chart with those values:

  • Nexus Repository: helm install nexus-repo sonatype/nexus-repository-manager -f repo-values.yaml
  • Nexus IQ: helm install nexus-iq sonatype/nexus-iq-server -f iq-values.yaml

If you want to use the custom values file for the demo environment that expose the apps on a local domain of *.demo which is done by creating a resolver file. On a Mac it's /etc/resolver/minikube-minikube-demo with the following entries:

domain demo
nameserver 192.168.64.8
search_order 1
timeout 5

You'll need to update the IP address to match the running instance's IP address. Use minikube ip to get the address

Docs for Ingress-dns are here https://github.com/kubernetes/minikube/tree/master/deploy/addons/ingress-dns

More Repositories

1

nexus-public

Sonatype Nexus Repository Open-source codebase mirror
Java
1,931
star
2

docker-nexus3

Dockerized version of Nexus Repo Manager 3
Groovy
1,418
star
3

docker-nexus

Docker image for Sonatype Nexus
Dockerfile
383
star
4

nexus-oss

Sonatype Nexus OSS
258
star
5

maven-example-en

Maven: By Example
CSS
175
star
6

nexus-book-examples

Example projects and other resources for the book Repository Management with Nexus
Shell
173
star
7

m2eclipse-scala

Java
108
star
8

nexus

Java
96
star
9

maven-guide-zh

Maven: The Definitive Guide (Chinese)
Java
86
star
10

nexus-maven-plugins

Nexus Maven Plugins
Java
84
star
11

nexus-book

Repository Management with Nexus
XSLT
83
star
12

maven-reference-en

Maven: The Complete Reference
CSS
82
star
13

sonatype-tycho

Java
79
star
14

sonatype-aether

DEPRECATED: This project moved to Eclipse, please follow the link below to find the new sources.
Java
67
star
15

nexus-blobstore-s3

[*No longer maintained*] Nexus Repository S3 Blobstores
Java
58
star
16

chef-nexus-repository-manager

Chef recipes for Nexus Repository Manager
Ruby
45
star
17

JGit

JGit
Java
39
star
18

codestyle

The Sonatype Code Style Guide
Java
35
star
19

nxrm3-helm-repository

Helm3 charts for Nexus Repository Manager
Shell
33
star
20

oss-parents

Sonatype OSS Parent poms
31
star
21

nexus-ruby-support

26
star
22

nexus-presentations

Presentations and labs about the Sonatype Nexus repository manager and Nexus Lifecycle
HTML
26
star
23

plexus-classworlds

Java
25
star
24

plexus-archiver

Java
25
star
25

plexus-utils

Java
25
star
26

jarjar-maven-plugin

Repackage and embed dependencies
Java
25
star
27

nexus-example-plugins

Nexus example plugins
Java
24
star
28

sisu-guice

Patched build of Google Guice
Java
24
star
29

docker-nexus-iq-server

Dockerized version of Nexus IQ Server
Slim
24
star
30

sisu

JSR 330 based container and Plexus adapter
Java
21
star
31

maven-guide-en

Maven: The Definitive Guide (English)
Java
21
star
32

plexus-compiler

Java
20
star
33

nxrm3-ha-repository

Repository for YAML configuration files for Nexus Repository Manager High Availability Feature
Mustache
20
star
34

sonatype-react-shared-components

The Shared Component Library is a set of components written in React, HTML, and CSS. The library provides development teams consistent, Sonatype-branded components that ensure that our applications have a common UI/UX.
TypeScript
20
star
35

maven-cookbook

Maven Cookbook
CSS
18
star
36

m2eclipse-book

This is a book about m2eclipse: The maven plugin for Eclipse
CSS
17
star
37

operator-nxrm3

IBM Operator for Nexus Repo Manager 3
Shell
16
star
38

artifact-resolver

Standalone jar executable client Maven 2 artifact resolver based on Eclipse Aether.
Groovy
14
star
39

aether-demo-maven-plugin

A simple Maven plugin demonstrating the use of Aether.
Java
13
star
40

tycho-jnlp-plugin

Java
13
star
41

package-url-java

Java Package URL implementation
Java
12
star
42

nexus-gem

Ruby
12
star
43

bower-nexus3-resolver

A custom Bower resolver to communicate with Nexus 3.
JavaScript
12
star
44

plexus-containers

Java
12
star
45

install4j-support

Install4j Support
Java
11
star
46

tycho-extras

Java
11
star
47

docker-rhel-nexus

OpenShift Dockerfiles, templates and scripts to run Nexus Repository Manager
Roff
11
star
48

ossindex-maven

Sonatype OSS Index - Maven Integrations
Java
11
star
49

nxrm3-maven-plugin

Java
10
star
50

hudson-jsr330

JSR-330 integration for Hudson.
Java
8
star
51

women-at-sonatype

This list aims to highlight members of W@S and their expertise, along with an opportunity to connect with them based on their interests.
8
star
52

goodies

Goodies
Java
7
star
53

RestSimple

Java
7
star
54

http-testing-harness

Testing library for Junit3/4 and TestNG for handling multiple server fixture setups for test methods.
Java
7
star
55

modello

Java
7
star
56

nxrm-sample-files-repo

Repository for YAML configuration files for Nexus Repository Manager
Dockerfile
7
star
57

plexus-cipher

Java
6
star
58

munge-maven-plugin

Simple Java preprocessor
Java
6
star
59

port-allocator-maven-plugin

Java
6
star
60

p2-bridge

Java
6
star
61

nexus-perf

Nexus Performance Testing Library
Java
6
star
62

ossindex-public

Sonatype OSS Index - Public
Java
6
star
63

nexus-bundle-maker-plugin

Java
6
star
64

actions

Public repository to keep Sonatype's GitHub Actions.
6
star
65

nexus-ant-tasks

Nexus Ant Tasks
Java
6
star
66

patched-xfire

A custom patched version of xfire
Java
5
star
67

jgit-simple

Java
5
star
68

emma-maven-plugin

Java
5
star
69

AsyncHttpClient-Test-Suite

Extensive Test Suite for AsyncHttpClient library
Java
5
star
70

ui-gallery

Gallery for current styles for Sonatype user interfaces. Includes reusable HTML/SCSS.
HTML
4
star
71

sshjgit

Java
4
star
72

nexus-plugin-bundle

Java
4
star
73

onboarding

Java
4
star
74

emma4it-maven-plugin

Java
4
star
75

sonatype-peaberry

Java
4
star
76

dropwizard-support

Goodies: Dropwizard Support
Java
4
star
77

nxrm3-preview-ha-repository

Repository for YAML configuration files for preview Nexus Repository Manager High Availability Feature
4
star
78

nexus-ivy-support

Java
3
star
79

jsw-binaries

Java Service Wrapper (JSW) binaries, used by NXRM 2
Shell
3
star
80

tycho-book

Book about Tycho
Shell
3
star
81

simple-example

Simple Example from Maven by Example
Java
3
star
82

sisu-maven-bridge

Java
3
star
83

sisu-litmus

Sisu Litmus, test support components
Java
3
star
84

cometd-asynchttpclient

Bayeux client powered by AsyncHttpClient
Java
3
star
85

plexus-io

Java
3
star
86

plexus-interpolation

Java
3
star
87

sonatype-ci-for-jenkins

Java
3
star
88

wagon-jetty

Java
3
star
89

attach-artifact-maven-plugin

Java
2
star
90

cobertura4it-maven-plugin

Java
2
star
91

chef-nexus-iq-server

Chef recipes for Nexus IQ Server
Ruby
2
star
92

sisu-maven-plugin

Manage Sisu components and applications
Java
2
star
93

maven-assembly-helpers

Java
2
star
94

directjngine

DirectJNgine -- maintenance fork
Java
2
star
95

nexus-iq-fortify-ssc

Repository to share Fortify-SSC Integration artifacts
2
star
96

spice-zapper

Java
2
star
97

learn-k8s-master

Collaboration template repository to support the K8s Fluency Channel on Pluralsight
2
star
98

homebrew-nexus-iq-cli

Ruby
2
star
99

sonatype-bundle-plugin

2
star
100

sisu-build-api

Java
2
star