{"id":50385027,"url":"https://github.com/stackhpc/kayobe-automation","last_synced_at":"2026-05-30T14:30:53.254Z","repository":{"id":37097352,"uuid":"335679829","full_name":"stackhpc/kayobe-automation","owner":"stackhpc","description":"kayobe-automation","archived":false,"fork":false,"pushed_at":"2026-05-27T08:32:06.000Z","size":412,"stargazers_count":3,"open_issues_count":5,"forks_count":3,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-27T10:21:29.699Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackhpc.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-03T16:07:03.000Z","updated_at":"2026-05-21T09:41:41.000Z","dependencies_parsed_at":"2024-03-26T10:26:00.899Z","dependency_job_id":"b9b2c420-9d1c-4936-866c-094f55a8340a","html_url":"https://github.com/stackhpc/kayobe-automation","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/stackhpc/kayobe-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fkayobe-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fkayobe-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fkayobe-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fkayobe-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackhpc","download_url":"https://codeload.github.com/stackhpc/kayobe-automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fkayobe-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33696681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-05-30T14:30:53.193Z","updated_at":"2026-05-30T14:30:53.245Z","avatar_url":"https://github.com/stackhpc.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kayobe-automation\n\nScripts and tools for automating Kayobe operations. Intended for use in CI/CD\npipelines.\n\n## Installation\n\nkayobe-automation is typically installed as a Git submodule within a Kayobe\nconfiguration repository. This allows the version of kayobe-automation in use\nto be controlled.\n\nCheck out your kayobe-config repository and add the submodule.\n\n    cd \u003ckayobe-config-repository\u003e\n    git submodule add https://github.com/stackhpc/kayobe-automation.git .automation\n    cd .automation\n    git checkout 0.0.1\n    cd ..\n    git add .automation\n    git add .gitmodules\n    git commit -m \"Add kayobe-automation\"\n\nWhere `0.0.1` is the tag of the release you want to use. The submodule will act\nlike a separate git repository, so if you make any changes you will need to change\ninto `.automation` directory and commit those separately.\n\nYou can change the branch at a later date with:\n\n    cd .automation\n    git checkout \u003cnew-tag\u003e\n    cd ..\n    git add .automation\n    git commit -m \"Update kayobe-automation\"\n\n## Configuration\n\nConfiguration for kayobe-automation is typically provided via files in a\n`.automation.conf` directory at the root of the kayobe-config repository.\nThe following files are supported:\n\n* `config.sh`: Mandatory bash script that will be sourced by kayobe-automation\n  scripts. Typically it will export environment variables necessary to configure\n  kayobe-automation.\n\nUse the examples in examples/\\* for inspiration.\n\n## Environment variables\n\n`KAYOBE_URI`: **Deprecated** Kayobe source repository URI. It is preferred to install Kayobe via a `requirements.txt` file in kayobe-config.\n\n`KAYOBE_BRANCH`: **Deprecated** Kayobe source repository branch name. It is preferred to install Kayobe via a `requirements.txt` file in kayobe-config.\n\n`KAYOBE_ENVIRONMENT`: Optional Kayobe environment name.\n\n`KAYOBE_AUTOMATION_CONFIG_PATH`: Path to kayobe-automation configuration directory. Defaults to `.automation.conf` in the kayobe-config root directory.\n\n`KAYOBE_AUTOMATION_SSH_PRIVATE_KEY`: Private key used to login to kayobe-managed hosts\n\n`KAYOBE_AUTOMATION_SSH_PRIVATE_KEY_NAME` Name of private key used to login to kayobe-managed hosts. Defaults to `id_rsa`.\n\n`KAYOBE_AUTOMATION_LOG_LEVEL`: Verbosity of logging. Choose one of: `debug`, `info`, `warn`, `error`\n\n`KAYOBE_VAULT_PASSWORD`: Kayobe vault password.\n\n`KAYOBE_AUTOMATION_PR_AUTH_TOKEN`: (Required when `KAYOBE_AUTOMATION_PR_TYPE` is set) Auth token to use when submitting pull-requests. Typically you need to create a service account and generate a personal access token.\n\n`TEMPEST_OPENRC`: OpenRC file content to use when running Tempest\n\n## Pipeline scripts\n\nkayobe-automation provides various pipeline scripts in the `pipeline`\ndirectory. Many of these are wrappers around Kayobe commands.\n\n## Container images\n\n### Kayobe\n\nkayobe-automation provides a Dockerfile to build a container image for running\ncommands in `docker/kayobe/`.\n\nBuilding the image requires the use of [Docker\nbuildkit](https://docs.docker.com/develop/develop-images/build_enhancements/).\n\nOn Ubuntu, you may need to [do the\nfollowing](https://blog.sylo.space/can-not-login-docker-account/):\n```\nsudo apt install golang-docker-credential-helpers\n```\n\nTo build, from the root of the kayobe-config repository:\n```\nDOCKER_BUILDKIT=1 docker build --file .automation/docker/kayobe/Dockerfile --tag kayobe:latest .\n```\n\nTo use the image to run one of the pipeline scripts, from the root of the\nkayobe-config repository:\n```\ndocker run -it --rm -v $(pwd):/stack/kayobe-config kayobe:latest /stack/kayobe-config/.automation/pipeline/overcloud-host-configure.sh\n```\n\nIt may be necessary to provide certain environment variables at runtime, e.g.\n`KAYOBE_ENVIRONMENT` or `KAYOBE_VAULT_PASSWORD`. This may be done via `docker\nrun -e ENV_VAR=value ...`.\n\n## gitlab\n\nYou need to customise `/etc/gitlab-runner/config.toml` to add support for docker in docker:\n\n    [[runners]]\n      name = \"seed\"\n      url = \"https://gitlab.com/\"\n      token = \"redacted\"\n      executor = \"docker\"\n      [runners.custom_build_dir]\n      [runners.cache]\n        [runners.cache.s3]\n        [runners.cache.gcs]\n        [runners.cache.azure]\n      [runners.docker]\n        tls_verify = false\n        image = \"centos:8\"\n        privileged = true\n        disable_entrypoint_overwrite = false\n        oom_kill_disable = false\n        disable_cache = false\n        volumes = [\"/certs/client\", \"/cache\", \"/opt/kayobe/images\"]\n        shm_size = 0\n\nThis also uses a volume so that IPA images can be shared between pipelines.\n\n## Formatting\n\nDependencies: go\n\nInstall the git hooks:\n\n    [stack@seed .automation]$ python3 -m venv ~/will/venv/pre-commit\n    [stack@seed .automation]$ source ~/will/venv/pre-commit/bin/activate\n    (pre-commit) [stack@seed .automation]$ pip install pre-commit\n    (pre-commit) [stack@seed .automation]$ pre-commit install\n\nThis will run the formatter on commit.\n\nTo run manually:\n\n    (pre-commit) [stack@seed .automation]$ pre-commit run --all-files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fkayobe-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackhpc%2Fkayobe-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fkayobe-automation/lists"}