{"id":23181110,"url":"https://github.com/replicatedhq/kurl","last_synced_at":"2026-02-25T00:06:17.717Z","repository":{"id":37539509,"uuid":"198898598","full_name":"replicatedhq/kURL","owner":"replicatedhq","description":"Production-grade, airgapped Kubernetes installer combining upstream k8s with overlays and popular components","archived":false,"fork":false,"pushed_at":"2025-03-19T17:37:50.000Z","size":44653,"stargazers_count":772,"open_issues_count":80,"forks_count":78,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-03-23T03:33:14.801Z","etag":null,"topics":["airgapped","bash","ceph","contour","kubeadm","kubernetes","kubernetes-cluster","kubernetes-installation","kubernetes-installer","kurl","rook"],"latest_commit_sha":null,"homepage":"https://kurl.sh","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/replicatedhq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-25T20:41:29.000Z","updated_at":"2025-03-18T21:42:46.000Z","dependencies_parsed_at":"2025-03-31T02:35:41.738Z","dependency_job_id":null,"html_url":"https://github.com/replicatedhq/kURL","commit_stats":{"total_commits":5082,"total_committers":97,"mean_commits":"52.391752577319586","dds":0.8046044864226682,"last_synced_commit":"ea3aec3946c0776c89859524044ca3abdb7fdef0"},"previous_names":[],"tags_count":474,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replicatedhq%2FkURL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replicatedhq%2FkURL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replicatedhq%2FkURL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/replicatedhq%2FkURL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/replicatedhq","download_url":"https://codeload.github.com/replicatedhq/kURL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161244,"owners_count":21057552,"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":["airgapped","bash","ceph","contour","kubeadm","kubernetes","kubernetes-cluster","kubernetes-installation","kubernetes-installer","kurl","rook"],"created_at":"2024-12-18T08:14:30.140Z","updated_at":"2026-02-25T00:06:17.672Z","avatar_url":"https://github.com/replicatedhq.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Kurl-logo\" src=\"https://kurl.sh/kurl_logo@2x.png\" /\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\n# kURL\n\nkURL is a Kubernetes installer for airgapped and online clusters.\n\nkURL relies on `kubeadm` to bring up the Kubernetes control plane, but there are a variety of tasks a system administrator must perform both before and after running kubeadm init in order to have a production-ready Kubernetes cluster, such as installing Docker, configuring Pod networking, or installing kubeadm itself.\nThe purpose of this installer is to automate those tasks so that any user can deploy a Kubernetes cluster with a single script.\n\n## Getting Started\n\nFor more information please see [kurl.sh/docs/](https://kurl.sh/docs/)\n\n## Community\n\nFor questions about using kURL, there's a [Replicated Community](https://help.replicated.com/community) forum, and a [#kurl channel in Kubernetes Slack](https://kubernetes.slack.com/channels/kurl).\n\n## Notifications\n\nkURL offers several optional [add-ons](https://kurl.sh/add-ons) for Kubernetes cluster creation.\nThese open-source technology add-ons are distributed under various open-source licenses.\n\nOne optional add-on available for object storage is [MinIO](https://github.com/minio/minio).\nUse of MinIO is governed by the GNU AGPLv3 license that can be found in their [License](https://github.com/minio/minio/blob/master/LICENSE) file.\n\nOne optional add-on available for Metrics \u0026 Monitoring is Prometheus via the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator), which includes Grafana.\nUse of Grafana is currently governed by the GNU AGPL v3 license that can be found in their [License](https://github.com/grafana/grafana/blob/main/LICENSE) file.\n\n## Contributing\n\nContributions are greatly appreciated. See [CONTRIBUTING.md](CONTRIBUTING.md) or more details. \nBefore starting any work, please either comment on an existing issue, or file a new one.\n\n## Releases\n\nFor details on each release, see the [changelog](https://github.com/replicatedhq/kURL/releases).\nFor Replicated vendors, detailed release notes are available at [Kubernetes Installer Release Notes](https://docs.replicated.com/release-notes/rn-kubernetes-installer) on the Replicated documentation site.\n\nRelease assets and changelog are available on the [GitHub Releases](https://github.com/replicatedhq/kURL/releases) page.\n\nReleases are created by a GitHub Workflow when a tag is pushed.\nThe tag should follow the date format `vYYYY.MM.DD-#`.\n\nA new release, from HEAD, can be tagged by running the following command:\n\n```shell\nmake tag-and-release\n```\n\nTo tag and release a specific commit:\n\n```shell\nmake COMMIT_ID=\u003cGITHUB_SHA\u003e tag-and-release\n```\n\nThe `tag-and-release` Make task enforces the git tree to be clean and a tag to be created against\nthe `main` branch. To override this behavior call the underlying script directly:\n\n```shell\n./bin/tag-and-release.sh --commit-id=\u003cGITHUB_SHA\u003e --no-main --outdated\n```\n\n## Software Bill of Materials\n\nSigned SBOMs for kURL Go and Javascript dependencies are combined into a tar file and are included with each release.\n\n- **kurl-sbom.tgz** contains SBOMs for Go  and Javascript dependencies\n- **kurl-sbom.tgz.sig** is the digital signature for kurl-sbom.tgz\n- **key.pub** is the public key from the key pair used to sign kurl-sbom.tgz\n\nThe following example illustrates using [cosign](https://github.com/sigstore/cosign) to verify that **kurl-sbom.tgz** has\nnot been tampered with.\n\n```shell\n$ cosign verify-blob --key key.pub --signature kurl-sbom.tgz.sig kurl-sbom.tgz\nVerified OK\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freplicatedhq%2Fkurl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freplicatedhq%2Fkurl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freplicatedhq%2Fkurl/lists"}