https://github.com/mirantis/terraform-provider-k0sctl
https://github.com/mirantis/terraform-provider-k0sctl
Last synced: 29 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/mirantis/terraform-provider-k0sctl
- Owner: Mirantis
- License: mpl-2.0
- Created: 2023-12-07T08:50:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-01T13:19:36.000Z (3 months ago)
- Last Synced: 2025-03-29T09:34:13.804Z (about 2 months ago)
- Language: Go
- Size: 87.9 KB
- Stars: 4
- Watchers: 7
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Mirantis K0S Ctl provider
A terraform provider which integrates the k0s project tooling to natively
convert a set of hosts to a kubernetes cluster using terraform resources.This provider is developed internally, and comes with no warranty. Use it
at your own risk.## Requirements
- [Terraform](https://www.terraform.io/downloads.html) >= 1.4
- [Go](https://golang.org/doc/install) >= 1.20
- [GoReleaser](https://goreleaser.com/) : If you want to use it locally## Building The Provider
1. Clone the repository
2. Enter the repository directory
3. Build the provider using the `make local` command (uses goreleaser)```shell
$/> make local
```## Adding Dependencies
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
Please see the Go documentation for the most up to date information about using
Go modules.To add a new dependency `github.com/author/dependency` to your Terraform provider:
```shell
go get github.com/author/dependency
go mod tidy
```Then commit the changes to `go.mod` and `go.sum`.
## Using the provider
The provider, once installed properly can be used in any terraform root/chart.
### Using the released provider
Go to the terraform registry page and follow the instructions for declaring
the provider version in your chart/module@see https://registry.terraform.io/providers/Mirantis/k0sctl/latest
### Using the local source code provider
The `make local` target will use goreleaser to build the provider, and
then provide instructions on how to configure `terraform` to use the
provider locally,@see https://developer.hashicorp.com/terraform/cli/config/config-file#development-overrides-for-provider-developers
## Developing the Provider
### Using the local provider
You can develop the provider locally, and test the development version by building
the plugin locally, and then configuring terraform to use the local version as a
`dev_override` for the production version.To build the local plugin:
```
make local
```It is recommended that you use the `dev_override` by using a special TF config file
and running terraform with an environment variable telling it to use the special file.
This avoids using the development version globally, preventing simple mistakes.First create a file like my_tf_config_file:
```
provider_installation {
# This disables the version and checksum verifications for this provider
# and forces Terraform to look for the k0sctl provider plugin in the
# given directory.
dev_overrides {
"mirantis/k0sctl" = "path/to/this/repo/dist/terraform-provider-k0sctl_linux_amd64_v1"
}
# For all other providers, install them directly from their origin provider
# registries as normal. If you omit this, Terraform will _only_ use
# the dev_overrides block, and so no other providers will be available.
direct {}
}
```@NOTE that you mus replace `linux` and `amd64` if you are on a Mac/Windows machine
or not on a 64bit intel/amd processor. See `go env GOOS` and `go env GOARCH` for
the correct values.then run terraform with a config file override pointing to the new file:
```
$/> TF_CLI_CONFIG_FILE=my_tf_config_file terraform plan
```
(or use an environment variable export)@see: https://developer.hashicorp.com/terraform/cli/config/config-file#development-overrides-for-provider-developers"
### Contributing
To generate or update documentation, run `go generate`.
In order to run the testing mode unit test suite:
```
make test
```In order to run the full suite of Acceptance tests, run `make testacc`.
*Note:* Acceptance tests require that you have an environment set up for
testing that k0sctl can use.```shell
make testacc
```## Requirements
No requirements.
## Providers
No providers.
## Modules
No modules.
## Resources
No resources.
## Inputs
No inputs.
## Outputs
No outputs.