{"id":19523882,"url":"https://github.com/eitansuez/terraform-tsb-local-k8s","last_synced_at":"2025-08-13T20:16:41.243Z","repository":{"id":175077764,"uuid":"653293579","full_name":"eitansuez/terraform-tsb-local-k8s","owner":"eitansuez","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-19T15:05:32.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T01:27:11.832Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eitansuez.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-13T19:19:51.000Z","updated_at":"2023-06-13T19:21:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"404154b4-7b8e-42a6-b9a0-3f7ae0733c4f","html_url":"https://github.com/eitansuez/terraform-tsb-local-k8s","commit_stats":null,"previous_names":["eitansuez/terraform-tsb-local-k8s"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitansuez%2Fterraform-tsb-local-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitansuez%2Fterraform-tsb-local-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitansuez%2Fterraform-tsb-local-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitansuez%2Fterraform-tsb-local-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eitansuez","download_url":"https://codeload.github.com/eitansuez/terraform-tsb-local-k8s/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitansuez%2Fterraform-tsb-local-k8s/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259265390,"owners_count":22831156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:45:04.470Z","updated_at":"2025-06-11T12:36:14.402Z","avatar_url":"https://github.com/eitansuez.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"This repository is about bootstrapping [tsb-local-k8s](https://github.com/boeboe/tetrate-service-bridge-minikube) with terraform.\n\nThe idea is to provision a TSB training environment.  `tsb-local-k8s` can do this with a single VM.  This terraform script provisions and configures that VM on GCP.\n\n## Prerequisites\n\n- Install the terraform CLI\n- For TSB image sync'ing, you should have your image sync username and API key ready.\n- A GCP account and a target GCP project with a service account key\n\n## Steps\n\nCreate a `terraform.tfvars` file and in it, specify your gcp project name, service account key json file name, and your TSB image sync credentials.\n\n```terraform\ngcp_project_name = \"my-gcp-project\"\ncredentials_filename = \"~/.ssh/my-service-account-key.json\"\ntsb_image_sync_username = \"john-doe\"\ntsb_image_sync_apikey = \"0123456789abcedf0123456789abcdef01234567\"\n```\n\nInitialize terraform:\n\n```shell\nterraform init\n```\n\nApply the terraform:\n\n```shell\nterraform apply\n```\n\nYou can either use the `gcloud` CLI to ssh to the VM using the `ubuntu` user.\n\n```shell\ngcloud compute ssh ubuntu@tsb-vm\n```\n\nAlternatively, an ssh key pair is created as part of the provisioning process.  You will find the script `ssh-to-gcp-vm.sh` in the `output/` subdirectory.\n\n```shell\ncd output\n./ssh-to-gcp-vm.sh\n```\n\nConfiguration of the VM is performed with [cloud-init](https://cloudinit.readthedocs.io/), which is asynchronous.  Wait a couple of minutes for that process to complete.\n\nOn the VM, you can check the status of cloud-init with `cloud-init status` and by tailing the cloud-init output logs at `/var/log/cloud-init-output.log`.\n\nOnce on the VM, navigate to the `tsb-local` subdirectory.\n\n```shell\ncd tsb-local\n```\n\nThe remaining time-consuming steps for provisioning TSB are left up to you:\n\n```shell\n./repo.sh sync\n```\n\nAnd:\n\n```shell\nmake up\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitansuez%2Fterraform-tsb-local-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feitansuez%2Fterraform-tsb-local-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitansuez%2Fterraform-tsb-local-k8s/lists"}