summaryrefslogtreecommitdiff
path: root/doc/ci
diff options
context:
space:
mode:
authorKrasimir Angelov <kangelov@gitlab.com>2019-05-21 16:31:24 +0000
committerAchilleas Pipinellis <axil@gitlab.com>2019-05-21 16:31:24 +0000
commitd69cb6583013632aeecca2b2096daa05215e32bb (patch)
tree3d992d8a962c134ebec96e04a306ce8dde91d894 /doc/ci
parentb3a2d8d695dd7e1296a75a237e4a4462b5ef1df8 (diff)
downloadgitlab-ce-d69cb6583013632aeecca2b2096daa05215e32bb.tar.gz
Add CI variable types usage example
Update documentation with example how to use CI variable types. Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/46806.
Diffstat (limited to 'doc/ci')
-rw-r--r--doc/ci/variables/README.md25
-rw-r--r--doc/ci/variables/img/new_custom_variables_example.pngbin70758 -> 216497 bytes
-rw-r--r--doc/ci/variables/img/variable_types_usage_example.pngbin0 -> 67003 bytes
3 files changed, 23 insertions, 2 deletions
diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md
index 1ba22070abe..67e1d316f02 100644
--- a/doc/ci/variables/README.md
+++ b/doc/ci/variables/README.md
@@ -58,8 +58,29 @@ the need to specify the value itself.
There are two types of variables supported by GitLab:
-- `env_var`: the runner will create environment variable named same as the variable key and set its value to the variable value.
-- `file`: the runner will write the variable value to a temporary file and set the path to this file as the value of an environment variable named same as the variable key.
+- "Variable": the Runner will create an environment variable named same as the variable key and set its value to the variable value.
+- "File": the Runner will write the variable value to a temporary file and set the path to this file as the value of an environment variable named same as the variable key.
+
+Many tools (like [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) and [kubectl](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#the-kubeconfig-environment-variable)) provide the ability to customise configuration using files by either providing the file path as a command line argument or an environment variable. Prior to the introduction of variable types, the common pattern was to use the value of a CI variable, save it in a file, and then use the newly created file in your script:
+
+```bash
+# Save the content of variable in a file
+echo "$KUBE_CA_PEM" > "$(pwd)/kube.ca.pem"
+ # Use the newly created file
+kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$(pwd)/kube.ca.pem"
+```
+
+This can be simplified by creating a variable of type "File" and using it directly. For example, let's say we have the following variables.
+
+![CI/CD settings - variable types usage example](img/variable_types_usage_example.png)
+
+We can then call them from `.gitlab-ci.yml` like this:
+
+```bash
+kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM"
+```
+
+Variable types can be set via the [UI](#via-the-ui) or the [API](../../api/project_level_variables.md#create-variable), but not in `.gitlab-ci.yml`.
#### Masked variables
diff --git a/doc/ci/variables/img/new_custom_variables_example.png b/doc/ci/variables/img/new_custom_variables_example.png
index 4b78e0ff587..efe104efe4c 100644
--- a/doc/ci/variables/img/new_custom_variables_example.png
+++ b/doc/ci/variables/img/new_custom_variables_example.png
Binary files differ
diff --git a/doc/ci/variables/img/variable_types_usage_example.png b/doc/ci/variables/img/variable_types_usage_example.png
new file mode 100644
index 00000000000..0e8bde891fe
--- /dev/null
+++ b/doc/ci/variables/img/variable_types_usage_example.png
Binary files differ