1
0
Fork 0
mirror of https://github.com/external-secrets/external-secrets.git synced 2024-12-14 11:57:59 +00:00
external-secrets/docs/provider-gitlab-project-variables.md

56 lines
1.9 KiB
Markdown
Raw Normal View History

2021-08-25 17:01:41 +00:00
## Gitlab Project Variables
External Secrets Operator integrates with [Gitlab API](https://docs.gitlab.com/ee/api/project_level_variables.html) to sync Gitlab project variables to secrets held on the Kubernetes cluster.
### Authentication
The API requires an access token and project ID. To create a new access token, go to your user settings and select 'access tokens'. Give your token a name, expiration date, and select the permissions required (Note 'api' is required).
![token-details](./pictures/screenshot_gitlab_token.png)
2021-08-26 16:19:56 +00:00
Click 'Create personal access token', and your token will be generated and displayed on screen. Copy or save this token since you can't access it again.
2021-08-25 17:01:41 +00:00
![token-created](./pictures/screenshot_gitlab_token_created.png)
### Access Token secret
Create a secret containing your access token:
```yaml
{% include 'gitlab-credentials-secret.yaml' %}
```
### Update secret store
2021-08-26 16:19:56 +00:00
Be sure the `gitlab` provider is listed in the `Kind=SecretStore` and the ProjectID is set. If you are not using `https://gitlab.com`, you must set the `url` field as well.
2021-08-25 17:01:41 +00:00
```yaml
{% include 'gitlab-secret-store.yaml' %}
```
**NOTE:** In case of a `ClusterSecretStore`, Be sure to provide `namespace` in `accessToken` with the namespace where the secret resides.
2021-08-25 17:01:41 +00:00
Your project ID can be found on your project's page.
![projectID](./pictures/screenshot_gitlab_projectID.png)
### Creating external secret
To sync a Gitlab variable to a secret on the Kubernetes cluster, a `Kind=ExternalSecret` is needed.
```yaml
{% include 'gitlab-external-secret.yaml' %}
```
#### Using DataFrom
DataFrom can be used to get a variable as a JSON string and attempt to parse it.
```yaml
{% include 'gitlab-external-secret-json.yaml' %}
```
### Getting the Kubernetes secret
The operator will fetch the project variable and inject it as a `Kind=Secret`.
```
kubectl get secret gitlab-secret-to-create -o jsonpath='{.data.secretKey}' | base64 -d
```