Kubernetes support (#56)
* Add experimental support for Kubernetes
* Add documentation for Kubernetes
* Add golden tests for iterative/resource_runner.go
* Vendor dependencies to follow the project approach
* Fix provisioner code newlines to avoid tripping restyled
* Bump release Go version to 0.16
Failing to do so would produce build errors when dealing with M1
processors and sibling darwin_arm64 architectures.
failed to build for darwin_arm64: # terraform-provider-iterative
/opt/hostedtoolcache/go/1.14.15/x64/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/tmp/go-link-210080194/go.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
* Standardize Kubernetes resource identifiers
* Retrieve the namespace from the kubeconfig context
Previously, the namespace was hardcoded to the value
"iterative"; now it uses the namespace specified on
the provided Kubernetes configuration or the "default"
namespace otherwise.
* Adapt the identifier generator for Kubernetes compatibility
Identifiers were being generated through the time-based
github.com/teris-io/shortid module, which uses a fixed
64-character alphabet that includes uppercase letters and
underscores. Unfortunately, that alphabet is rejected by
Kubernetes because of these "disallowed" characters:
https://github.com/kubernetes/kubernetes/issues/71140
Now identifiers are valid 64-bit base 36 [0-9a-z] strings
generated with the system CSPRNG. Given that the previous 64^9
identifier finite field is 1024 times smaller than the new 2^64
one, this change should not pose any greater collision risk.
* Fix documentation blunder
* Remove vendor directory
* Restyle with gofmt
* Unstage outdated modifications
Revert stale clone-amis.go
Update README.md
Update README.md
Update README.md
Update README.md
Update README.md
Apply suggestions from code review
Apply suggestions from code review
* Merge changes from upstream README.md
* Skip deletion of nonexistent Kubernetes machines
* Replace the runner script interpreter process with exec
In order to transfer the graceful shutdown SIGTERM signal to
our NodeJS cml-runner script, we need to run the startup_script
with bash as the container entry point and replace the bash
interpreter with the node interpreter through an exec call so the
later can handle the container signals properly.
* Remove Kubernetes support from the documentation
* Fix formatting issues