Skip to main content

Nexus installation on EKS

  • Create nexus namespace
  •                         
    apiVersion: v1
    kind: Namespace
    metadata:
      name: nexus
                            
                        
  • Create storage class for nexus to store data on AWS EBS
  •                         
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: nexus
    provisioner: kubernetes.io/aws-ebs
    parameters:
      type: gp2
      fsType: ext4
    allowVolumeExpansion: true  
                            
                        
  • Create persistent volume claim
  •                         
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: nexus
      namespace: nexus
      labels:
        app: nexus
    spec:
      storageClassName: nexus
      resources:
        requests:
          storage: 50Gi
      accessModes:
        - ReadWriteOnce 
                            
                        
  • Create deployment for pod, replicaset and deployment itself.
    Since, nexus's docker registry accessible on separate ports, hence as per requirement add number of ports for docker registry.
  •                     
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nexus
      namespace: nexus
    spec:
      replicas: 1
      template:
        metadata:
          name: nexus
          labels:
            app: nexus
        spec:
          securityContext:
            fsGroup: 2000
          containers:
          - image: sonatype/nexus3:latest
            name: nexus
            imagePullPolicy: IfNotPresent
            resources:
              requests:
                memory: 1Gi
                cpu: 500m
              limits:
                  memory: 1Gi
                  cpu: 500m
            ports:
              - containerPort: 8081
                protocol: TCP
                name: nexus-ui
              - containerPort: 8082
                protocol: TCP
                name: docker-1
            volumeMounts:
              - name: nexus-data
                mountPath: /nexus-data
          volumes:
            - name: nexus-data
              persistentVolumeClaim:
                claimName: nexus
            
                        
                    
  • Create service to expose nexus UI and docker registry ports
  •                     
    apiVersion: v1
    kind: Service
    metadata:
      name: nexus
      namespace: nexus
      labels:
        app: nexus
    spec:
      type: LoadBalancer
      ports:
        - name: nexus-ui
          port: 8081
          protocol: TCP
          targetPort: 8081
        - name: docker-1
          port: 8082
          protocol: TCP
          targetPort: 8082
      selector:
        app: nexus
    
                        
                    

Verify all resources status

                    
kubectl get ns
kubectl get sc -n nexus
kubectl get pvc -n nexus
kubectl get pv -n nexus
kubectl get po -n nexus
kubectl get svc -n nexus
                
            

Comments

Popular posts from this blog

How to skip resources, compiler, surfire, install plugin in maven's default build process

When we want to use maven command line to upload zip type artifact to artifact repository then we don't want resources, compiler, surefire, install phases in maven process, only assembly would be enough. To skip particular phases go to each plugin's original website phase according to latest running plugin version download the same to our own project refer the skip phase configuration of particular phase, either it can be done command line or as part of the build-plugin-configuration. Example using POM.xml file <project> [...] <build> <plugins> <plugin> <groupId...

Install AWS CLI on Ubuntu localhost using Ansible Playbook

Install AWS CLI on Ubuntu localhost using Ansible Playbook --- - hosts: localhost tasks: - name: Installing Unzip package package: name: unzip state: present when: ansible_facts['os_family'] == "Debian" become: true - name: Create awscli directory in home directory file: path: ~/awscli state: directory mode: '0755' - name: Download bundled installer zip file get_url: url: https://s3.amazonaws.com/aws-cli/awscli-bundle.zip dest: ~/awscli/awscli-bundle.zip - name: Extract zip file unarchive: src: ~/awscli/awscli-bundle.zip dest: ~/awscli - name: Run install command shell: /home/ubuntu/awscli/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws become: true Same script is also avail...

How to give permission to particular user to particular dir. or file in Linux

Permission error: ubuntu@ip-192-168-62-113:~/bbb/testing$ ls -ltrh total 4.0K -rwx------ 1 ubuntu ubuntu 70 Mar 18 09:43 test.sh ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo su - abc abc@ip-192-168-62-113:~$ cat /home/ubuntu/jaydeep/testing/test.sh cat: /home/ubuntu/bbb/testing/test.sh: Permission denied Command - how to give permission to particular user to particular dir. or file ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo setfacl -m u:abc:r test.sh ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo su - abc abc@ip-192-168-62-113:~$ cat /home/ubuntu/bbb/testing/test.sh #!/bin/bash read -p "What is your name? " name echo "Welcome $name!" For the Directory setfacl -m u:userID:rwx /dir/subdir/ setfacl -m u:userID:rwx /d...