diff options
Diffstat (limited to 'doc/ci/runners/saas/windows_saas_runner.md')
-rw-r--r-- | doc/ci/runners/saas/windows_saas_runner.md | 113 |
1 files changed, 30 insertions, 83 deletions
diff --git a/doc/ci/runners/saas/windows_saas_runner.md b/doc/ci/runners/saas/windows_saas_runner.md index 6e4ffc036b0..fa981bddff3 100644 --- a/doc/ci/runners/saas/windows_saas_runner.md +++ b/doc/ci/runners/saas/windows_saas_runner.md @@ -6,88 +6,47 @@ info: To determine the technical writer assigned to the Stage/Group associated w # SaaS runners on Windows (Beta) **(FREE SAAS)** -SaaS runners on Windows are in [Beta](../../../policy/alpha-beta-support.md#beta) -and shouldn't be used for production workloads. - -During this beta period, the [shared runner quota for CI/CD minutes](../../pipelines/cicd_minutes.md) -applies for groups and projects in the same manner as Linux runners. This may -change when the beta period ends, as discussed in this [related issue](https://gitlab.com/gitlab-org/gitlab/-/issues/30834). - -Windows runners on GitLab.com autoscale by launching virtual machines on +SaaS runner on Windows autoscale by launching virtual machines on the Google Cloud Platform. This solution uses an [autoscaling driver](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/-/blob/main/docs/README.md) developed by GitLab for the [custom executor](https://docs.gitlab.com/runner/executors/custom.html). -Windows runners execute your CI/CD jobs on `n1-standard-2` instances with -2 vCPUs and 7.5 GB RAM. You can find a full list of available Windows packages in -the [package documentation](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/gcp/windows-containers/blob/main/cookbooks/preinstalled-software/README.md). + +These SaaS runners are in [Beta](../../../policy/experiment-beta-support.md#beta) +and aren't recomended for production workloads. We want to keep iterating to get Windows runners in a stable state and -[generally available](../../../policy/alpha-beta-support.md#generally-available-ga). +[generally available](../../../policy/experiment-beta-support.md#generally-available-ga). You can follow our work towards this goal in the [related epic](https://gitlab.com/groups/gitlab-org/-/epics/2162). -## Configuration +## Machine types available for Windows + +| Runner Tag | vCPUs | Memory | Storage | +| ---------------------- | ----- | ------ | ------- | +| `shared-windows` | 2 | 7.5 GB | 75 GB | + +## Supported Windows versions + +The Windows runner virtual machine instances do not use the GitLab Docker executor. This means that you can't specify +[`image`](../../../ci/yaml/index.md#image) or [`services`](../../../ci/yaml/index.md#services) in your pipeline configuration. +Instead you have to select the [`tags`](../../../ci/yaml/index.md#tags) for the desired Windows version. -The full contents of our `config.toml` are: +You can execute your job in one of the following Windows versions: + +| Version tag | Status | +|----------------|---------------| +| `windows-1809` | `maintenance` | + +You can find a full list of available pre-installed software in +the [pre-installed software documentation](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/gcp/windows-containers/blob/main/cookbooks/preinstalled-software/README.md). NOTE: -Settings that aren't public are shown as `X`. - -```toml -concurrent = X -check_interval = 3 - -[[runners]] - name = "windows-runner" - url = "https://gitlab.com/" - token = "TOKEN" - executor = "custom" - builds_dir = "C:\\GitLab-Runner\\builds" - cache_dir = "C:\\GitLab-Runner\\cache" - shell = "powershell" - [runners.custom] - config_exec = "C:\\GitLab-Runner\\autoscaler\\autoscaler.exe" - config_args = ["--config", "C:\\GitLab-Runner\\autoscaler\\config.toml", "custom", "config"] - prepare_exec = "C:\\GitLab-Runner\\autoscaler\\autoscaler.exe" - prepare_args = ["--config", "C:\\GitLab-Runner\\autoscaler\\config.toml", "custom", "prepare"] - run_exec = "C:\\GitLab-Runner\\autoscaler\\autoscaler.exe" - run_args = ["--config", "C:\\GitLab-Runner\\autoscaler\\config.toml", "custom", "run"] - cleanup_exec = "C:\\GitLab-Runner\\autoscaler\\autoscaler.exe" - cleanup_args = ["--config", "C:\\GitLab-Runner\\autoscaler\\config.toml", "custom", "cleanup"] -``` +Each time you run a job that requires tooling or dependencies not available in the base image, those components must be installed to the newly provisioned VM increasing the total job duration. -The full contents of our `autoscaler/config.toml` are: - -```toml -Provider = "gcp" -Executor = "winrm" -OS = "windows" -LogLevel = "info" -LogFormat = "text" -LogFile = "C:\\GitLab-Runner\\autoscaler\\autoscaler.log" -VMTag = "windows" - -[GCP] - ServiceAccountFile = "PATH" - Project = "some-project-df9323" - Zone = "us-east1-c" - MachineType = "n1-standard-2" - Image = "IMAGE" - DiskSize = 50 - DiskType = "pd-standard" - Subnetwork = "default" - Network = "default" - Tags = ["TAGS"] - Username = "gitlab_runner" - -[WinRM] - MaximumTimeout = 3600 - ExecutionMaxRetries = 0 - -[ProviderCache] - Enabled = true - Directory = "C:\\GitLab-Runner\\autoscaler\\machines" -``` +## Supported shell + +SaaS runners on Windows have PowerShell configured as the shell. +The `script` section of your `.gitlab-ci.yml` file therefore requires PowerShell commands. ## Example `.gitlab-ci.yml` file @@ -97,7 +56,6 @@ Below is a sample `.gitlab-ci.yml` file that shows how to start using the runner .shared_windows_runners: tags: - shared-windows - - windows - windows-1809 stages: @@ -126,7 +84,7 @@ test: ## Limitations and known issues -- All the limitations mentioned in our [Beta definition](../../../policy/alpha-beta-support.md#beta). +- All the limitations mentioned in our [Beta definition](../../../policy/experiment-beta-support.md#beta). - The average provisioning time for a new Windows VM is 5 minutes. This means that you may notice slower build start times on the Windows runner fleet during the beta. In a future @@ -136,17 +94,6 @@ test: follow along in the [related issue](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/-/issues/32). - The Windows runner fleet may be unavailable occasionally for maintenance or updates. -- The Windows runner virtual machine instances do not use the - GitLab Docker executor. This means that you can't specify - [`image`](../../../ci/yaml/index.md#image) or [`services`](../../../ci/yaml/index.md#services) in - your pipeline configuration. -- For the beta release, we have included a set of software packages in - the base VM image. If your CI job requires additional software that's - not included in this list, then you must add installation - commands to [`before_script`](../../../ci/yaml/index.md#before_script) or [`script`](../../../ci/yaml/index.md#script) to install the required - software. Note that each job runs on a new VM instance, so the - installation of additional software packages needs to be repeated for - each job in your pipeline. - The job may stay in a pending state for longer than the Linux runners. - There is the possibility that we introduce breaking changes which will |