This commit fixes three issues: - Terraform and event-handler integratiosn were still using hardcoded versions instead of looking up the Teleport version - The version was not detectde properly when building access pluigin in docker - The event-handler Dockerfil was not importing the whole teleport repo as context which is required since the teleport-plugins -> teleport migration (we use the go.mod from the root)
Terraform Provider Plugin
Usage
Please, refer to official documentation.
Development
-
Install
protobuf. -
Install
protoc-gen-terraform.go install github.com/gravitational/protoc-gen-terraform@main -
Install
Terraformv1.1.0+. Alternatively, you can usetfenv. Please note that on Mac M1 you need to specifyTFENV_ARCH(ex:TFENV_ARCH=arm64 tfenv install 1.1.6). -
Clone the plugin:
git clone git@github.com:gravitational/teleport-plugins -
Build and install the plugin:
cd teleport-plugins/terraform make install -
Run tests:
make testNote: Some tests won't pass without a valid
teleportbinary, enterprise license, etc. See Testing to see how to provide these values to the tests locally.
Updating the provider
Run:
make gen-tfschema
This will generate types_tfschema.go from a current API .proto file, and regenerate the provider code.
Playing with examples locally
-
Start Teleport.
teleport start -
Create Terraform user and role:
tctl create example/terraform.yaml tctl auth sign --format=file --user=terraform --out=/tmp/terraform-identity --ttl=10h -
Create
main.tffile:cp example/main.tf.example example/main.tfPlease note that target identity file was exported to
/tmp/terraform-identityon previous step. If you used another location, please change in inmain.tf. -
Create sample resources:
cp example/user.tf.example example/user.tf cp example/role.tf.example example/role.tf cp example/provision_token.tf.example example/provision_token.tfPlease note that some resources require preliminary setup steps.
-
Apply changes:
make apply -
Make changes to .tf files and run:
make reapply -
Clean up:
make destroy