{"id":24233847,"url":"https://github.com/memes/volterra-lab","last_synced_at":"2026-01-28T07:03:07.838Z","repository":{"id":146198108,"uuid":"342716051","full_name":"memes/volterra-lab","owner":"memes","description":"Volterra stuff","archived":false,"fork":false,"pushed_at":"2021-03-02T23:18:44.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-14T16:16:21.956Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2021-02-26T22:23:33.000Z","updated_at":"2021-05-26T05:32:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"618735a6-8ad0-4dda-9269-d530242a7826","html_url":"https://github.com/memes/volterra-lab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"memes/repo-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Fvolterra-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Fvolterra-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Fvolterra-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Fvolterra-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memes","download_url":"https://codeload.github.com/memes/volterra-lab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241854009,"owners_count":20031343,"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":"2025-01-14T16:02:04.905Z","updated_at":"2026-01-28T07:03:07.787Z","avatar_url":"https://github.com/memes.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- spell-checker: ignore volterra markdownlint kubernetes --\u003e\n# Volterra Lab\n\nVolterra, Terraform, GCP. Initially focused on automating the \"Quick Start\"\nscenarios on GCP through Terraform automation, but will be expanded as needed.\n\n## Quick starts\n\n[ ] [Multi-Cloud Networking](https://www.volterra.io/docs/quick-start/multi-cloud-networking)\n[ ] [Secure Kubernetes Gateway](https://www.volterra.io/docs/quick-start/secure-kubernetes-gateway)\n[ ] [Web App Security \u0026 Performance](https://www.volterra.io/docs/quick-start/web-app-security-performance)\n[ ] [App Delivery Network (ADN)](https://www.volterra.io/docs/quick-start/app-delivery-network)\n[ ] [Edge Infrastructure \u0026 App Management](https://www.volterra.io/docs/quick-start/infrastructure-and-app-management)\n[ ] [Edge Networking \u0026 Security](https://www.volterra.io/docs/quick-start/edge-networking-and-security)\n[ ] [VoltShare Security \u0026 Sharing](https://www.volterra.io/docs/quick-start/volt-share)\n\n## GCP and Volterra resources managed by Terraform\n\n[x] Custom IAM role for Volterra\n[x] Volterra service account in GCP project, with custom Volterra IAM role attached\n[x] Service account credentials stored as Volterra Cloud Credentials\n[x] GCP VPC Site Object\n[ ] GKE cluster w/hipster-shop\n\n\u003c!-- markdownlint-disable MD033 MD034 --\u003e\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| terraform | ~\u003e 0.14 |\n| google | ~\u003e 3.58 |\n| volterra | ~\u003e 0.1.1 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| google | ~\u003e 3.58 |\n| google.executor | ~\u003e 3.58 |\n| random | n/a |\n| volterra | ~\u003e 0.1.1 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| gcp_role | ./modules/volterra_vpc_role/ |  |\n| gcp_sa | terraform-google-modules/service-accounts/google | 3.0.1 |\n\n## Resources\n\n| Name |\n|------|\n| [google_client_config](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/client_config) |\n| [google_compute_zones](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/compute_zones) |\n| [google_service_account_access_token](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/service_account_access_token) |\n| [random_shuffle](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/shuffle) |\n| [volterra_cloud_credentials](https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/cloud_credentials) |\n| [volterra_forward_proxy_policy](https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/forward_proxy_policy) |\n| [volterra_gcp_vpc_site](https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/gcp_vpc_site) |\n| [volterra_network_policy_view](https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/network_policy_view) |\n| [volterra_tf_params_action](https://registry.terraform.io/providers/volterraedge/volterra/latest/docs/resources/tf_params_action) |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| prefix | A unique prefix to apply to all resources; should be something short that\u003cbr\u003eunequivocably identifies and groups resources. E.g. olympus username or email.\u003cbr\u003e\u003cbr\u003eE.g.\u003cbr\u003eprefix = \"emes\" | `string` | n/a | yes |\n| project\\_id | The GCP project identifier where the Volterra resources will be created. | `string` | n/a | yes |\n| volterra\\_cert | Path to the PEM certificate file to use for Volterra API authentication. | `string` | n/a | yes |\n| volterra\\_key | Path to the PEM private key file to use for Volterra API authentication. | `string` | n/a | yes |\n| volterra\\_namespace | The Volterra namespace to use for resources. | `string` | n/a | yes |\n| volterra\\_tenant | The tenant ID to use with Volterra. | `string` | n/a | yes |\n| labels | An optional map of key:value labels to apply to resources created by Terraform.\u003cbr\u003eDefault is empty. Recommended that labels include the owner/username of the\u003cbr\u003eresources. E.g.\u003cbr\u003e\u003cbr\u003elabels = {\u003cbr\u003e  owner = \"memes\"\u003cbr\u003e} | `map(string)` | \u003cpre\u003e{\u003cbr\u003e  \"persistence\": \"delete-at-will\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| region | The Google Compute region to use for deployed resources. Default is 'us-central1'. | `string` | `\"us-central1\"` | no |\n| tf\\_sa\\_email | The fully-qualified email address of the Terraform GCP service account to use\u003cbr\u003efor GCP resource creation via account impersonation. If left blank (default)\u003cbr\u003ethen the invoker's account will be used.\u003cbr\u003e\u003cbr\u003eE.g. if you have permissions to impersonate:\u003cbr\u003e\u003cbr\u003etf\\_sa\\_email = \"terraform@PROJECT\\_ID.iam.gserviceaccount.com\" | `string` | `\"\"` | no |\n| tf\\_sa\\_token\\_lifetime\\_secs | The expiration duration for the Terraform GCP service account token, in seconds.\u003cbr\u003eThis value should be high enough to prevent token timeout issues during GCP\u003cbr\u003eresource creation, but short enough that the token is useless replayed later.\u003cbr\u003eDefault value is 600 (10 mins). | `number` | `600` | no |\n| volterra\\_forward\\_proxy\\_allowed\\_domains | The list of domain names that will be allowed via Volterra Forward Proxy policy.\u003cbr\u003eEach entry will be used as an exact match in the policy. Default set is\u003cbr\u003e[\"github.com\", \"gcr.io\", \"storage.googleapis.com\", \"docker.io\", \"docker.com\", \"amazonaws.com\"]. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"github.com\",\u003cbr\u003e  \"gcr.io\",\u003cbr\u003e  \"storage.googleapis.com\",\u003cbr\u003e  \"docker.io\",\u003cbr\u003e  \"docker.com\",\u003cbr\u003e  \"amazonaws.com\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| volterra\\_instance\\_type | The Google compute machine type to use for GCP VPC site nodes. Default is\u003cbr\u003e'n1-standard-4'. | `string` | `\"n1-standard-4\"` | no |\n| volterra\\_site\\_provision\\_action | Terraform action to take on successful GCP VPC site registration; can be 'plan'\u003cbr\u003e(default) or 'apply'. | `string` | `\"plan\"` | no |\n| volterra\\_ssh\\_key | An optional SSH key to use for accessing the Volterra nodes. | `string` | `\"\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| volterra\\_sa | The identity of the Volterra VPC service account. |\n| volterra\\_site\\_id | The unique identifier for the provisioned Volterra GCP VPC site. |\n| volterra\\_tf\\_output | The output from Volterra's site provisioner if 'apply' was the defined action. This\u003cbr\u003ewill be an empty string if 'plan' was the action (default). |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\u003c!-- markdownlint-enable MD033 MD034 --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemes%2Fvolterra-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemes%2Fvolterra-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemes%2Fvolterra-lab/lists"}