Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

About

The GÉANT Software Repository is based on Artifactory (http://www.jfrog.com/products.php) with Pro Power Pack ( http://www.jfrog.com/pro-features.php). Artifactory provide base Maven/Gradle repository functionality: you can download artefacts and deploy own snapshot and release artefacts like in any repository. It can be used as mirror for any external repository. Also it provide nice GUI to manage your artefacts, deploy files manually and integration with GN Active Direcotry and Bamboo.  Integration with GN AD allow to use credentials (the same are used in Intranet and all SWDSD infrastructure eg. JIRA). Integration with Bamboo (https://ci.geant.org) allow eg. performing License Check process after artefacts deploy, deployment from Bamboo with global defined credentials etc.

Artifactory Pro Power Pack allow us to support different types of repository wider adopted in software development, see available predefined repositories types bellow:

  • Build Techonologies
    • Maven
    • Gradle
    • Ivy
  • Infrastructure Package Managers
    • Docker
    • Yum
    • Puppet
    • Chef
    • Debian
    • Vagrant
  • Development Language Package Managers
    • Npm
    • Nuget
    • Conan
    • Bower
    • Opkg
    • CocoaPods
    • PHP
    • P2
    • Git
    • gitLFS
    • Ruby
    • Python
    • Go/vGo
    • Helm Chart
    • CRAN

How to access

URL: https://artifactory.software.geant.org

User Directory: GÉANT Active Directory (the same users like in JIRA, Bamboo, Bitbucket and SonarQube)

...

Artifactory uses fedrated authentication. After entering https://artifactory.software.geant.org you will be redirect to https://login.geant.org/ where you must choose your Identity Provider. After successful authentication you will be redirect  back to Artifactory home page. 

To get access to specific repository:

  1. Log in to https://artifactory.software.geant.org
  2. Send access request - create issue on SWDSD Project or send e-mail at psnc@software.geant.org You have to provide us:
    • your user name in artifactory (federated-user-XXX)
    • repository name

For "non GUI" access to repository for automated deployment tools (Jenkins, Bitbucket), you can:

  • generate API key for your account (federated-user-XXX) - see How to use API Key
  • request for local account with password - this is the simplest way for CI purposes

Short guides

How to use Artifactory as Maven repository

GÉANT Artifactory Repositories

Artifactory allow to create three repository types: local, remote and virtual. In GÉANT we use all of them, to understood how it works read http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories page on Artifactory documentation page

...

Main repositories are:

...

.

Each GÉANT development projects have their own local repositories:

  • project-release-local - This repository contains all project release artefacts.
  • project-snapshot-local - This repository contains last 3* project snapshot artefacts.
  • project-ext-libs (optional) This repository contains dependency unavailable in public Maven repositories)

...

Working with Repository in Maven

1. Request for project internal repositories in SWDSD (https://issuesjira.software.geant.netorg/jira/browse/secure/RapidBoard.jspa?projectKey=SWDSD)
2. Setting Up a Maven Deployment Descriptor You can follow: http://wiki.jfrog.org/confluence/display/RTF/Configuring+Deployment or:
2.1. Provide configuration in main POM file eg.:

...

Artifactory can be used to serve Docker images like Docker Registry. It is just another type of repository and could be browsed and managed in Artifactory web dashboard.

Address: artifactory.software.geant.netorg/<REPO_NAME>/<IMAGE_NAME>:<TAG>

...

  1. Login

    Code Block
    titleDocker login
    docker login artifactory.software.geant.netorg


    And provide your Artifactory username and password

    To manually set your credentials copy the following snippet to your ~/.docker/config.json file.

    Code Block
    titleCredenitals
    {
        "auths": {
            "https://artifactory.software.geant.netorg: {
                "auth": "<USERNAME>:<PASSWORD>",
                "email": "youremail@email.com"
            }
        }
    }


  2. Push image to registry
    To push an image tag an image using the docker tag and then docker push command.

    Code Block
    titleDocker push
    docker tag <MY_IMAGE_ID> artifactory.software.geant.netorg/<REPO_NAME>/<IMAGE_NAME>:<TAG>
    docker push artifactory.software.geant.netorg/<REPO_NAME>/<IMAGE_NAME>:<TAG>


  3. Pull image

    Code Block
    titleDocker pull
    docker pull artifactory.software.geant.netorg/<REPO_NAME>/<IMAGE_NAME>:<TAG>


...