Add Git Server
This page describes how to integrate KubeRocketCI with GitLab or GitHub.
Integration Procedure​
To start from, it is required to add both Secret with SSH key, API token, and GitServer resources by taking the steps below.
-
Generate an SSH key pair and add a public key to GitLab or GitHub account.
ssh-keygen -t ed25519 -C "email@example.com"
-
Generate access token for GitLab or GitHub account with read/write access to the API. Both personal and project access tokens are applicable.
- GitHub
- GitLab
To create access token in GitHub, follow the steps below:
- Log in to GitHub.
- Click the profile account and navigate to Settings -> Developer Settings.
- Select Personal access tokens (classic) and generate a new token with the following parameters:
noteThe access below is required for the codebase operator to setup hooks.
warningMake sure to save a new personal access token because it won`t be displayed later.
To create access token in GitLab, follow the steps below:
- Log in to GitLab.
- In the top-right corner, click the avatar and select Settings.
- On the User Settings menu, select Access Tokens.
- Choose a name and an optional expiry date for the token.
- In the Scopes block, select the api scope for the token.
- Click the Create personal access token button.
noteMake sure to save the access token as there will not be any ability to access it once again.
In case you want to create a project access token instead of a personal one, take the following steps:
- Log in to GitLab and navigate to the project.
- On the User Settings menu, select Access Tokens.
- Choose a name and an optional expiry date for the token.
- Choose a role: Owner or Maintainer.
- In the Scopes block, select the api scope for the token.
- Click the Create project access token button.
-
Create a secret in the namespace where KubeRocketCI is installed (
edp
by default) for the Git account with the id_rsa, username, and token fields.- UI Portal
- kubectl
Navigate to Configuration -> Git Servers. Fill in the required fields:
warningTake the following template as an example (for the name use
ci-gitlab
for GitLab andci-github
for GitHub):Create a manifest file called
secret.yaml
with the following content filled in:kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: ci-github
namespace: edp
labels:
app.edp.epam.com/secret-type: repository
type: Opaque
stringData:
id_rsa: <id_rsa_data>
username: git
token: <your_github_access_token>
EOF
As a result, you will be able to create codebases using an integrated Version Control System.