You can use code from your GitLab repositories directly in Polyaxon projects without having to check them out on your local machine first.
Overview
Polyaxon supports repos hosted on GitLab (cloud and on-premise). You can use code from your GitLab repositories directly in Polyaxon projects without having to check them out on your local machine first.
N.B. Polyaxon supports public and private GitLab repos, you don’t need to have a GitLab account to use code from public GitLab repositories.
Open GitLab Developer Settings
Open Access Tokens
Generate a new token
Choose a name for the token (e.g. “Polyaxon”), then grant the token API permissions to be able to use full integration features or select read_repository and read_user to only have ability to use existing repositories. This will enable Polyaxon to read your repositories and detect new commits. Click the Generate Token button at the bottom to create the token.
Or If you only want to allow Polyaxon read access please select:
Copy the token
Select the token and copy it.
Create a secret
- Simple method using an inline token:
kubectl -n polyaxon create secret generic gitlab-connection-1 --from-literal=POLYAXON_GIT_CREDENTIALS="oauth2:<TOKEN_HASH>"
- Advanced method using a git credentials store (allows pulling submodules):
kind: Secret
apiVersion: v1
metadata:
name: gitlab-connection-2
type: Opaque
stringData:
.gitconfig: |
[credential "https://<HOSTNAME>"]
helper = store
.git-credentials: |
https://oauth2:<TOKEN_HASH>@<HOSTNAME>
Add the repos you want to use to the connections catalog
- Simple method using the inline token:
connections:
- name: repo1
kind: git
schema:
url: https://gitlab.com/org/repo1
secret:
name: "gitlab-connection-1"
- name: repo2
kind: git
schema:
url: https://gitlab.com/org/repo2
secret:
name: "gitlab-connection-1"
- name: repo3
kind: git
schema:
url: https://gitlab.com/org/repo3
secret:
name: "other-connection"
- Advanced method using the git cred store:
connections:
- name: repo4
kind: git
schema:
url: https://gitlab.com/org/repo4
secret:
name: "gitlab-connection-2"
mountPath: "/root"
- name: repo5
kind: git
schema:
url: https://gitlab.com/org/repo5
secret:
name: "gitlab-connection-2"
mountPath: "/root"