Please, refer to official documentation.
-
Install
protobuf
. -
Install
protoc-gen-terraform
.go install github.com/gravitational/protoc-gen-terraform@main
-
Install
Terraform
v1.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 [email protected]:gravitational/teleport-plugins
-
Build and install the plugin:
cd teleport-plugins/terraform make install
-
Run tests:
make test
Note: Some tests won't pass without a valid
teleport
binary, enterprise license, etc. See Testing to see how to provide these values to the tests locally.
Run:
make gen-tfschema
This will generate types_tfschema.go
from a current API .proto
file, and regenerate the provider code.
-
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.tf
file:cp example/main.tf.example example/main.tf
Please note that target identity file was exported to
/tmp/terraform-identity
on 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.tf
Please 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