Sign inSign up

epamedp/nexus-operator

By epamedp

•Updated 14 days ago

Nexus Operator: Simplify Nexus repo management in Kubernetes.

Image
Developer tools
0

100K+

epamedp/nexus-operator repository overview

codecov

⁠Nexus Operator

:heavy_exclamation_mark: Please refer to KubeRocketCI documentation⁠ to get the notion of the main concepts and guidelines.

Get acquainted with the Nexus Operator and the installation process as well as the local development, and architecture scheme.

⁠Overview

Nexus Operator is a KubeRocketCI operator that is responsible for configuring Nexus.

NOTE: Operator is platform-independent, that is why there is a unified instruction for deploying.

⁠Prerequisites

  1. Linux machine or Windows Subsystem for Linux instance with Helm 3⁠ installed;
  2. Cluster admin access to the cluster;

⁠Installation

In order to install the Nexus operator, follow the steps below:

  1. To add the Helm EPAMEDP Charts for local client, run "helm repo add":

    helm repo add epamedp https://epam.github.io/edp-helm-charts/stable
    
  2. Choose available Helm chart version:

    helm search repo epamedp/nexus-operator -l
    NAME                        CHART VERSION   APP VERSION     DESCRIPTION
    epamedp/nexus-operator      3.3.0           3.3.0           A Helm chart for KRCI Nexus Operator
    

    NOTE: It is highly recommended to use the latest released version.

  3. Full chart parameters available in deploy-templates/README.md⁠.

  4. Install operator in the nexus-operator namespace with the helm command; find below the installation command example:

    helm install nexus-operator epamedp/nexus-operator --version <chart_version> --namespace nexus
    
  5. Check the nexus-operator namespace that should contain operator deployment with your operator in a running status.

⁠Quick Start

  1. Login into Nexus and create user. Attach permissions to user such as scripts, rules, blobs etc. Insert user credentials into Kubernetes secret.

    apiVersion: v1
    kind: Secret
    metadata:
      name: nexus-admin-password
    data:
      password: cGFzcw==  # base64-encoded value of "pass"
      user:     dXNlcg==  # base64-encoded value of "user"
    
  2. Create Custom Resource kind: Nexus with Nexus instance URL and secret created on the previous step:

    apiVersion: edp.epam.com/v1alpha1
    kind: Nexus
    metadata:
      name: nexus
    spec:
      secret: nexus-admin-password
      url: http://nexus.example.com
    

    Wait for the .status field with status.connected: true

  3. Create Role using Custom Resources NexusRole:

    apiVersion: edp.epam.com/v1alpha1
    kind: NexusRole
    metadata:
      name: edp-admin
    spec:
      description: Read and write access to all repos and scripts
      id: edp-admin
      name: edp-admin
      nexusRef:
        kind: Nexus
        name: nexus
      privileges:
        - nx-apikey-all
        - nx-repository-view-*-*-add
        - nx-repository-view-*-*-browse
        - nx-repository-view-*-*-edit
        - nx-repository-view-*-*-read
        - nx-script-*-add
        - nx-script-*-delete
        - nx-script-*-run
        - nx-search-read
    

    Inspect CR templates folder⁠ for more examples.

⁠Local Development

In order to develop the operator, first set up a local environment. For details, please refer to the Local Development⁠ page.

Development versions are also available, please refer to the snapshot Helm Chart repository⁠ page.

Tag summary

Content type

Image

Digest

sha256:fc8841b3a…

Size

33.4 MB

Last updated

14 days ago

docker pull epamedp/nexus-operator:3.7.0-SNAPSHOT.7