Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/replicatedhq/kurl
Production-grade, airgapped Kubernetes installer combining upstream k8s with overlays and popular components
https://github.com/replicatedhq/kurl
airgapped bash ceph contour kubeadm kubernetes kubernetes-cluster kubernetes-installation kubernetes-installer kurl rook
Last synced: 6 days ago
JSON representation
Production-grade, airgapped Kubernetes installer combining upstream k8s with overlays and popular components
- Host: GitHub
- URL: https://github.com/replicatedhq/kurl
- Owner: replicatedhq
- License: apache-2.0
- Created: 2019-07-25T20:41:29.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-09-27T04:02:48.000Z (4 months ago)
- Last Synced: 2024-09-27T09:22:05.827Z (4 months ago)
- Topics: airgapped, bash, ceph, contour, kubeadm, kubernetes, kubernetes-cluster, kubernetes-installation, kubernetes-installer, kurl, rook
- Language: Shell
- Homepage: https://kurl.sh
- Size: 41.7 MB
- Stars: 748
- Watchers: 22
- Forks: 79
- Open Issues: 74
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# kURL
kURL is a Kubernetes installer for airgapped and online clusters.
kURL 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.
The purpose of this installer is to automate those tasks so that any user can deploy a Kubernetes cluster with a single script.## Getting Started
For more information please see [kurl.sh/docs/](https://kurl.sh/docs/)
## Community
For 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).
## Notifications
kURL offers several optional [add-ons](https://kurl.sh/add-ons) for Kubernetes cluster creation.
These open-source technology add-ons are distributed under various open-source licenses.One optional add-on available for object storage is [MinIO](https://github.com/minio/minio).
Use 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.One optional add-on available for Metrics & Monitoring is Prometheus via the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator), which includes Grafana.
Use 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.## Contributing
Contributions are greatly appreciated. See [CONTRIBUTING.md](CONTRIBUTING.md) or more details.
Before starting any work, please either comment on an existing issue, or file a new one.## Releases
For details on each release, see the [changelog](https://github.com/replicatedhq/kURL/releases).
For 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.Release assets and changelog are available on the [GitHub Releases](https://github.com/replicatedhq/kURL/releases) page.
Releases are created by a GitHub Workflow when a tag is pushed.
The tag should follow the date format `vYYYY.MM.DD-#`.A new release, from HEAD, can be tagged by running the following command:
```shell
make tag-and-release
```To tag and release a specific commit:
```shell
make COMMIT_ID= tag-and-release
```The `tag-and-release` Make task enforces the git tree to be clean and a tag to be created against
the `main` branch. To override this behavior call the underlying script directly:```shell
./bin/tag-and-release.sh --commit-id= --no-main --outdated
```## Software Bill of Materials
Signed SBOMs for kURL Go and Javascript dependencies are combined into a tar file and are included with each release.
- **kurl-sbom.tgz** contains SBOMs for Go and Javascript dependencies
- **kurl-sbom.tgz.sig** is the digital signature for kurl-sbom.tgz
- **key.pub** is the public key from the key pair used to sign kurl-sbom.tgzThe following example illustrates using [cosign](https://github.com/sigstore/cosign) to verify that **kurl-sbom.tgz** has
not been tampered with.```shell
$ cosign verify-blob --key key.pub --signature kurl-sbom.tgz.sig kurl-sbom.tgz
Verified OK
```