{"id":15066003,"url":"https://github.com/sovereigncloudstack/csctl","last_synced_at":"2026-02-08T14:34:05.330Z","repository":{"id":216273811,"uuid":"732999194","full_name":"SovereignCloudStack/csctl","owner":"SovereignCloudStack","description":"csmctl","archived":false,"fork":false,"pushed_at":"2024-04-18T11:15:35.000Z","size":12241,"stargazers_count":3,"open_issues_count":22,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-18T13:16:55.698Z","etag":null,"topics":["k8s"],"latest_commit_sha":null,"homepage":"https://github.com/SovereignCloudStack/csctl","language":"Go","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/SovereignCloudStack.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}},"created_at":"2023-12-18T10:38:12.000Z","updated_at":"2024-04-23T12:41:36.786Z","dependencies_parsed_at":"2024-02-09T12:42:20.587Z","dependency_job_id":"259a4dec-d481-4cae-9d89-b25d2dfd5950","html_url":"https://github.com/SovereignCloudStack/csctl","commit_stats":null,"previous_names":["sovereigncloudstack/csmctl","sovereigncloudstack/csctl"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SovereignCloudStack%2Fcsctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SovereignCloudStack%2Fcsctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SovereignCloudStack%2Fcsctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SovereignCloudStack%2Fcsctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SovereignCloudStack","download_url":"https://codeload.github.com/SovereignCloudStack/csctl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247744283,"owners_count":20988781,"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":["k8s"],"created_at":"2024-09-25T00:59:34.197Z","updated_at":"2026-02-08T14:34:05.250Z","avatar_url":"https://github.com/SovereignCloudStack.png","language":"Go","readme":"# CSCTL\n\n## Table of Contents\n\n- [CSCTL](#csctl)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Introduction](#introduction)\n  - [Features of csctl](#features-of-csctl)\n  - [Docs](#docs)\n\n## Installation\nTo download `csctl` there are two ways. \nGo to https://github.com/SovereignCloudStack/csctl/releases/latest and then click on the binary. The name of the binary looks similar to this `\ncsctl_0.0.2_linux_amd64` for Linux amd64 architecture.\n\nThis will download the binary in your `~/Downloads` directory. Use the following commands to move it to your PATH. \n```bash\nchmod u+x ~/Downloads/csctl_0.0.2_linux_amd64\nsudo mv ~/Downloads/csctl_0.0.2_linux_amd64 /usr/local/bin/csctl\n```\n\nAlternative way of installing the binary is to use `[gh](https://github.com/cli/cli)` command line tool.\nUse the following command to download the latest binary from GitHub. \n```bash\ngh release download -p 'csctl_*_linux_amd64' -R SovereignCloudStack/csctl\nchmod u+x csctl_0.0.2_linux_amd64\nsudo mv ./csctl_0.0.2_linux_amd64 /usr/local/bin/csctl\n```\nFor darwin based systems, the steps are similar, you'll have to choose darwin based binaries instead of linux one mentioned above. You'll also need to update your destination directory.\n\n## Introduction\n\nThe [Cluster Stack Operator](https://github.com/SovereignCloudStack/cluster-stack-operator) facilitates the usage of [Cluster Stacks](https://github.com/SovereignCloudStack/cluster-stacks) by automating all steps that can be automated. It takes Cluster Stacks release assets that consist mainly of two Helm charts, one to deploy in the management cluster, the other one to deploy in the workload clusters, as well as provider-specific node image (build) information.\n\nUsers can take existing releases of Cluster Stacks and the operator and will be able to create clusters easily.\n\nThis project facilitates building node image artifacts and release assets that can be used with the Cluster Stack Operator.\n\n\n## Features of csctl\n1. Testing and quick iterations\ncsctl is created with a single focus of building Cluster Stacks and testing them with Cluster Stack Operator quickly. This tool helps in doing quick iterations and facilitates testing Cluster Stacks. \n\n2. Versioning\nWhen configuring Cluster Stacks, it is necessary to put versions in the configuration, e.g. to version a Helm chart or node images. This process is facilitated by the csctl through its own templating and mechanism to generate the right version, based on the content hash (for testing) or on a previous version (stable or beta channel). Users only have to use the right templating and the csctl will do all the versioning automatically.\n\n3. Plugin mechanism for providers\nThe plugin mechanism of csctl allows providers to implement all provider-specific steps that are needed for this provider. This can contain a fully automated building and uploading process for node images, which can be referenced in the Cluster Stack (using the templating logic for versioning). \n\n4. Automated testing of Cluster Stacks\nThe csctl enables automated testing of Cluster Stacks if integrated in a CI process that first builds all necessary files as well as node images (if needed) and then uses them to create a workload cluster based on the Cluster Stack.\n\n## Docs\n\n[Docs](./docs/README.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsovereigncloudstack%2Fcsctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsovereigncloudstack%2Fcsctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsovereigncloudstack%2Fcsctl/lists"}