Connecting to an external version control repository#

Anaconda Enterprise supports the use of an external version control repository for user-created projects. Anaconda recommends connecting to this external version control repository at time of installation, however you are also able to migrate from one version control repository to another after installation is complete.

  • To provide permission granularity and maintain parity with your external version control repository, Anaconda Enterprise grants individual platform users access to individual repositories. To prevent default permissions being applied to all users within a group, users cannot belong to the given organization or group.

  • Platform users are prompted for their access token before they create their first project in Anaconda Enterprise. Anaconda recommends you advise users to create an ever-lasting token, to retain permanent access to their files from within Anaconda Enterprise. For more information about auth token permissions, see are Configuring access to version control.

Tip

Anaconda recommends that you collect the following information before you begin:

  • If necessary, the fully qualified domain name (FQDN) of your version control server.

  • The organization, team, or group name associated with your service account.

  • The username of the administrator for the organization, team, or group.

  • The personal access token or password required to connect to your version control repository.

Supported external git versions#

Workbench supports integration with the following external repositories:

External repository

Supported versions

GitHub Enterprise Server

2.15 through 3.4.1

GitHub Enterprise Cloud

github.com

Bitbucket Server/Data Center

5.9.1 through 7.21.0

Bitbucket Cloud

bitbucket.org

GitLab Self-Managed

10.4.2 through 14.9.2

GitLab Cloud

gitlab.com

GitHub#

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the GitHub service your organization uses.

    type

    Specifies the API version for accessing GitHub repositories.

    GitHub uses github-v3-api

    url

    The URL of the version control server API.

    For example: https://your-domain.com/api/v3/

    credential-url

    The hostname of the GitHub server used to manage user credentials.

    For example: https://your-domain.com/api/path/

    organization

    The name of your GitHub organization.

    username

    Specifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.

    auth-token

    The personal access token associated with the username GitHub account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example Github Enterprise Server configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: github-server
             type: github-v3-api
             url: https://<FQDN>/api/v3/
             http-timeout: 60
             credential-url: https://<FQDN>/api/v3/
             repository: '{owner}-{id}'
             organization: <GitHub_organization>
             username: <admin_username>
             auth-token: <username_token>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Delete and restart system pods by running the following command:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users are prompted to add their personal access token after logging into the platform.

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the GitHub service your organization uses.

    type

    Specifies the API version for accessing GitHub repositories.

    GitHub uses github-v3-api

    url

    The URL of the version control server API.

    GitHub Enterprise Cloud uses https://api.github.com

    credential-url

    The hostname of the GitHub server used to manage user credentials.

    GitHub Enterprise Cloud uses github.com

    organization

    The name of your GitHub organization.

    username

    Specifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.

    auth-token

    The personal access token associated with the username GitHub account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example Github Enterprise Cloud configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: github-cloud
             type: github-v3-api
             url: https://api.github.com/
             http-timeout: 60
             credential-url: https://github.com/<github-organization>
             repository: '{owner}-{id}'
             organization: <GitHub_organization>
             username: <admin_username>
             auth-token: <username_token>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Restart system pods with the following command for changes to take effect:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.

GitLab#

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the GitLab service your organization uses.

    type

    Specifies the API version for accessing GitLab repositories.

    GitLab Enterprise (Self-Managed) uses gitlab-v4-api

    url

    The URL of the version control server API.

    For example: https://your-gitlab-domain.com

    credential-url

    The hostname of the Bitbucket server used to manage user credentials.

    For example: https://your-gitlab-domain.com

    organization

    The name of your GitLab group.

    username

    Specifies a username for a GitLab account. This account must have Administrator permissions for your GitLab Server.

    auth-token

    The personal access token associated with the username GitLab Administrator account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example GitLab Enterprise (Self-Managed) configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: gitlab-server
             type: gitlab-v4-api
             url: https://<FQDN>.com
             http-timeout: 60
             credential-url: https://<FQDN>.com
             repository: '{owner}-{id}'
             organization: <GitLab_group>
             username: <admin_username>
             auth-token: <username_token>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Restart system pods with the following command for changes to take effect:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.

Note

Gitlab.com does not support versioning of archive downloads and app deployments. In other words, the latest revision will always be downloaded or deployed.

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the GitLab service your organization uses.

    type

    Specifies the API version for accessing GitLab repositories.

    GitLab Enterprise (Cloud) uses gitlab-v4-api

    url

    The URL of the version control server API.

    GitLab (Cloud) uses https://gitlab.com

    credential-url

    The hostname of the GitLab server used to manage user credentials.

    GitLab (Cloud) uses https://gitlab.com

    organization

    The name of your GitLab group.

    username

    Specifies a username for a GitLab account. This account must have Administrator permissions for your GitLab instance.

    auth-token

    The personal access token associated with the username GitLab Administrator account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example GitLab Enterprise Cloud configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: gitlab-cloud
             type: gitlab-v4-api
             url: https://gitlab.com
             http-timeout: 60
             credential-url: https://gitlab.com
             repository: '{owner}-{id}'
             organization: <GitLab_group>
             username: <admin_username>
             auth-token: <username_token>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Restart system pods with the following command for changes to take effect:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.

Bitbucket#

Caution

By default, Bitbucket uses master as its default Git branch. Workbench uses main as its default Git branch. You must update the system-wide default branch name in Bitbucket to target main. If you do not, your deployments will fail.

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the Bitbucket Server/Data Center service your organization uses.

    type

    Specifies the API version for accessing Bitbucket repositories.

    Bitbucket Server/Data Center uses bitbutcket-v1-api

    url

    The URL of the version control server API.

    For example: https://your-bitbucket-server-domain:7990

    credential-url

    The hostname of the Bitbucket server used to manage user credentials.

    For example: https://your-bitbucket-server-domain:7990

    organization

    The name of your Bitbucket team.

    username

    Specifies a username for a Bitbucket account. This account must have Admin level permissions for your Bitbucket Server.

    auth-token

    The password associated with the username Bitbucket account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example Bitbucket Server/Data Center configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: bitbucket-server
             type: bitbucket-v1-api
             url: https://<FQDN>:7990
             http-timeout: 60
             credential-url: https://<FQDN>:7990
             repository: '{owner}-{id}'
             organization: <Bitbucket_team>
             username: <Bitbucket_admin>
             auth-token: <admin_password>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Restart system pods with the following command for changes to take effect:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.

Note

Bitbucket.com does not support versioning of archive downloads and app deployments. In other words, the latest revision will always be downloaded or deployed.

  1. Create a backup copy of the anaconda-enterprise-anaconda-platform.yml configmap.

  2. Open the anaconda-enterprise-anaconda-platform.yml configmap for editing.

  3. Locate the storage: git: default: section of the file.

  4. Uncomment (remove the # from the start of lines in) the Example external repo configuration section.

  5. Comment out (add a # to the start of lines in) the Internal repo configuration section.

  6. Configure the Example external repo configuration values as follows:

    Attribute

    Description

    name

    A descriptive name for the Bitbucket Server/Data Center service your organization uses.

    type

    Specifies the API version for accessing Bitbucket repositories.

    Bitbucket cloud uses bitbutcket-v2-api

    url

    The URL of the version control server API.

    Bitbucket cloud uses https://api.bitbucket.org

    credential-url

    The hostname of the Bitbucket server used to manage user credentials.

    Bitbucket cloud uses https://bitbucket.org

    organization

    The name of your Bitbucket team.

    username

    Specifies a username for a Bitbucket account. This account must have Admin-level permissions for your Bitbucket Server.

    auth-token

    The password associated with the username Bitbucket account.

    Caution

    The url and credential-url attributes must contain all lowercase characters.

    Example Bitbucket Cloud configuration
    storage:
       git:
          default:
             ## Example external repo configuration
             name: bitbucket-cloud
             type: bitbucket-v2-api
             url: https://api.bitbucket.org
             http-timeout: 60
             credential-url: https://bitbucket.org/
             repository: '{owner}-{id}'
             organization: <Bitbucket_team>
             username: <Bitbucket_admin>
             auth-token: <admin_password>
    
             ## Internal repo configuration
             #name: Example.com Workbench Server
             #type: internal
             #url: http://127.0.0.1:8088/
             #http-timeout: 60
             #username: anaconda
    
  7. Save your changes.

  8. Restart system pods with the following command for changes to take effect:

    kubectl delete --wait=false $(kubectl get pods -o name|grep ap-)
    

Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.