{"id":19176383,"url":"https://github.com/redhatqe/openstack-gitlab-executor","last_synced_at":"2025-05-07T19:23:11.401Z","repository":{"id":42688705,"uuid":"376058700","full_name":"RedHatQE/openstack-gitlab-executor","owner":"RedHatQE","description":"Custom GitLab executor for running jobs on Openstack instances","archived":false,"fork":false,"pushed_at":"2023-02-07T12:44:29.000Z","size":30,"stargazers_count":13,"open_issues_count":3,"forks_count":5,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-20T01:33:10.775Z","etag":null,"topics":["gitlab-ci","openstack"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedHatQE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-11T14:55:32.000Z","updated_at":"2025-02-16T21:29:41.000Z","dependencies_parsed_at":"2024-11-09T10:30:33.733Z","dependency_job_id":"c0d797ca-73be-4320-8114-e958fa61bca2","html_url":"https://github.com/RedHatQE/openstack-gitlab-executor","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatQE%2Fopenstack-gitlab-executor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatQE%2Fopenstack-gitlab-executor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatQE%2Fopenstack-gitlab-executor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatQE%2Fopenstack-gitlab-executor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedHatQE","download_url":"https://codeload.github.com/RedHatQE/openstack-gitlab-executor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252941766,"owners_count":21828931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitlab-ci","openstack"],"created_at":"2024-11-09T10:28:16.739Z","updated_at":"2025-05-07T19:23:11.369Z","avatar_url":"https://github.com/RedHatQE.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitLab CI Openstack executor\n\nGitLab CI doesn't support Openstack as an executor but provides the ability to implement your own\nexecutor by using scripts to provision, run, and clean up CI environment. This repository contains\nsuch scripts as well as a Containerfile to build and configure a container image with Gitlab Runner\nthat uses custom Openstack executor.\n\n## Building\n\n```sh\ngit clone https://github.com/RedHatQE/openstack-gitlab-executor.git\ncd openstack-gitlab-executor\npodman build --build-arg GITLAB_RUNNER_VERSION=\u003cversion\u003e -f Containerfile -t openstack-gitlab-runner\n```\n\n## Configuration\n\nThe container expects the following environment variables:\n\n### Instance variables\n\n`FLAVOR` - Default instance flavor reference\n\n`BUILDER_IMAGE` - Default image to use for instance provisioning\n\n`NETWORK` - Default network name\n\n`KEY_PAIR_NAME` - Default SSH key pair name\n\n`SECURITY_GROUP` - Default security group\n\n`USERNAME` - Default username for SSH connection to instances\n\n`PRIVATE_KEY` - Private key content\n\n`SSH_TIMEOUT` - Timeout for establishing SSH connection\n\n### GitLab Runner variables\n\n`RUNNER_TAG_LIST` - Tag list\n\n`REGISTRATION_TOKEN` - Runner's registration token\n\n`RUNNER_NAME` - Runner name\n\n`CI_SERVER_URL` - Runner URL\n\n`RUNNER_BUILDS_DIR` - Path to `builds` directory on the Openstack instance\n\n`RUNNER_CACHE_DIR` - Path to `cache` directory on the Openstack instance\n\n`CONCURRENT` - Limits how many jobs can run concurrently (default 1)\n\n### [Openstack variables](https://docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html#environment-variables)\n\n`OS_AUTH_URL` - Openstack authentication URL\n\n`OS_PROJECT_NAME` - Project-level authentication scope (name or ID)\n\n`OS_USERNAME` - Authentication username\n\n`OS_PASSWORD` - Authentication password\n\n`OS_PROJECT_DOMAIN_NAME` - Domain name or ID containing project\n\n`OS_USER_DOMAIN_NAME` - Domain name or ID containing user\n\n`OS_REGION_NAME` - Authentication region name\n\n`OS_IDENTITY_API_VERSION` - Identity API version\n\n`OS_INTERFACE` - Interface type\n\n## Usage\n\nCreate an env file with all variables:\n\n```sh\ncat env.txt\n\nRUNNER_TAG_LIST=\u003cyour value\u003e\nREGISTRATION_TOKEN=\u003cyour value\u003e\nRUNNER_NAME=\u003cyour value\u003e\nCI_SERVER_URL=\u003cyour value\u003e\nRUNNER_BUILDS_DIR=\u003cyour value\u003e\nRUNNER_CACHE_DIR=\u003cyour value\u003e\nCONCURRENT=\u003cyour value\u003e\n\nFLAVOR=\u003cyour value\u003e\nBUILDER_IMAGE=\u003cyour value\u003e\nNETWORK=\u003cyour value\u003e\nKEY_PAIR_NAME=\u003cyour value\u003e\nSECURITY_GROUP=\u003cyour value\u003e\nUSERNAME=\u003cyour value\u003e\n\nOS_AUTH_URL=\u003cyour value\u003e\nOS_PROJECT_NAME=\u003cyour value\u003e\nOS_USERNAME=\u003cyour value\u003e\nOS_PASSWORD=\u003cyour value\u003e\nOS_PROJECT_DOMAIN_NAME=\u003cyour value\u003e\nOS_USER_DOMAIN_NAME=\u003cyour value\u003e\nOS_REGION_NAME=\u003cyour value\u003e\nOS_IDENTITY_API_VERSION=\u003cyour value\u003e\nOS_INTERFACE=\u003cyour value\u003e\n```\n\nRun a container:\n\n```sh\npodman run -it \\\n           -e PRIVATE_KEY=\"$(cat \u003cprivate key filename\u003e)\"\n           --env-file=env.txt \\\n           quay.io/redhatqe/openstack-gitlab-runner:latest\n```\n\nYou can override instance configuration defaults by providing environment variables in a GitLab CI\njob config. For example, if you want to use another Openstack image to provision builder instance\nyou should provide the following:\n\n```yaml\nstages:\n  - build\n\nbuild:\n  stage: build\n  variables:\n    BUILDER_IMAGE: my-custom-image\n  tags:\n    - some-tag\n  script:\n    - some command\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhatqe%2Fopenstack-gitlab-executor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhatqe%2Fopenstack-gitlab-executor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhatqe%2Fopenstack-gitlab-executor/lists"}