{"id":28925581,"url":"https://github.com/redpanda-data/terraform-provider-redpanda","last_synced_at":"2026-03-06T21:13:38.545Z","repository":{"id":221578798,"uuid":"713579114","full_name":"redpanda-data/terraform-provider-redpanda","owner":"redpanda-data","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-26T20:14:48.000Z","size":1680,"stargazers_count":9,"open_issues_count":12,"forks_count":11,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-02-27T02:16:33.471Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redpanda-data.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-02T20:07:31.000Z","updated_at":"2026-02-26T19:52:09.000Z","dependencies_parsed_at":"2024-02-12T16:59:57.502Z","dependency_job_id":"44ea837f-5cbe-447c-a820-25e12b83ddf0","html_url":"https://github.com/redpanda-data/terraform-provider-redpanda","commit_stats":null,"previous_names":["redpanda-data/terraform-provider-redpanda"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/redpanda-data/terraform-provider-redpanda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redpanda-data%2Fterraform-provider-redpanda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redpanda-data%2Fterraform-provider-redpanda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redpanda-data%2Fterraform-provider-redpanda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redpanda-data%2Fterraform-provider-redpanda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redpanda-data","download_url":"https://codeload.github.com/redpanda-data/terraform-provider-redpanda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redpanda-data%2Fterraform-provider-redpanda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30198520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-06-22T11:09:28.556Z","updated_at":"2026-03-06T21:13:38.521Z","avatar_url":"https://github.com/redpanda-data.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Redpanda Terraform Provider\n\nThe Redpanda Terraform Provider is a [Terraform](https://www.terraform.io/) plugin that allows you to create and manage\nresources on [Redpanda Cloud](https://redpanda.com/redpanda-cloud).\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Contributing](#contributing)\n    - [Pull Request Process](#pull-request-process)\n- [Development Guide](#development-guide)\n    - [Prerequisites](#prerequisites)\n    - [Task Commands Overview](#task-commands-overview)\n    - [Local Development \u0026 Testing](#local-development--testing)\n    - [Cluster Management Commands](#cluster-management-commands)\n    - [Development Commands](#development-commands)\n    - [Release Commands](#release-commands)\n    - [Best Practices](#best-practices)\n- [Contributing](#contributing)\n- [Releasing a Version](#releasing-a-version)\n- [Support](#support)\n\n## Getting Started\n\nUser documentation on the Terraform provider is available at\nthe [Terraform Registry](https://registry.terraform.io/providers/redpanda-data/redpanda/latest/docs).\n\n## Contributing\n\nWhen contributing to this project, please ensure you've run `task ready` and all tests pass before submitting a pull\nrequest. If you've added new functionality, consider adding appropriate unit and integration tests.\n\n### Pull Request Process\n\n* (optional) Use the label docs to generate documentation\n* Use the label ci-ready to run integration tests\n\n## Development Guide\n\nThis guide provides an overview of the development workflow using [Task](https://taskfile.dev/) for building, testing, and managing the Redpanda Terraform Provider. Task replaces our previous Makefile-based workflow with a more modern, cross-platform solution.\n\n### Prerequisites\n\nBefore using these commands, ensure you have the following:\n\n- [Task](https://taskfile.dev/) installed on your system\n- Go installed on your system\n- Terraform CLI installed\n- Access to a Redpanda Cloud account with appropriate permissions\n- Required environment variables set (see [Environment Configuration](#environment-configuration))\n\n#### Environment Configuration\n\nCreate a `.env` file in the project root with your configuration:\n\n```bash\n# Copy the example file and customize\ncp .env.example .env\n```\n\nRequired variables:\n- `REDPANDA_CLIENT_ID`: Redpanda Cloud client ID\n- `REDPANDA_CLIENT_SECRET`: Redpanda Cloud client secret\n- `REDPANDA_CLOUD_ENVIRONMENT`: Redpanda Cloud environment (pre/prod)\n\n### Task Commands Overview\n\nView all available commands:\n\n```bash\ntask --list-all\n```\n\nThe task system is organized into domains:\n\n- **build**: Provider compilation and installation\n- **test**: Unit and integration testing\n- **docs**: Documentation generation\n- **lint**: Code quality and formatting\n- **local**: Local development cluster management\n- **release**: Release preparation and publishing\n\n### Local Development \u0026 Testing\n\nThe local task domain provides commands for testing your locally-built provider against live Redpanda Cloud clusters. Note that \"local\" refers to using a locally-built version of the provider rather than the published version from the Terraform Registry - the clusters themselves are still created in Redpanda Cloud.\n\n#### Local Provider Testing\n\nTest your provider changes against real cloud infrastructure:\n\n```bash\n# Create an AWS cluster using your local provider build\ntask local:cluster:aws:apply\n\n# Create an Azure cluster using your local provider build\ntask local:cluster:azure:apply\n\n# Create a GCP cluster using your local provider build\ntask local:cluster:gcp:apply\n\n# Destroy clusters when done\ntask local:cluster:aws:destroy\ntask local:cluster:azure:destroy\ntask local:cluster:gcp:destroy\n```\n\nThese commands:\n- Build the provider locally from your current code\n- Install the local build to the specific example directory (not globally)\n- Run `terraform init` and `terraform apply/destroy` using your local provider build\n- Create real clusters in Redpanda Cloud for testing your changes\n- Handle different cluster types automatically (cluster, serverless, data sources)\n\nExample workflow:\n\n```bash\n# Build and test AWS cluster with your local provider changes\ntask local:cluster:aws:apply\n\n# Make changes to your provider code or examples/cluster/aws/main.tf\n# Test your changes (rebuilds provider automatically)\ntask local:cluster:aws:apply\n\n# Clean up the cloud resources when done\ntask local:cluster:aws:destroy\n```\n\n**Important:** These commands create real resources in Redpanda Cloud and may incur costs. Always clean up test clusters when finished.\n\n### Cluster Management Commands\n\nFor CI/CD and integration testing, use the test domain commands:\n\n#### Integration Tests\n\n```bash\n# Run unit tests (no credentials needed)\ntask test:unit\n\n# Run network tests (requires credentials)\ntask test:network\n\n# Run data source tests (requires existing cluster)\ntask test:datasource\n\n# Run full cluster tests (creates real resources)\ntask test:cluster:aws\ntask test:cluster:azure\ntask test:cluster:gcp\n\n# Run BYOC tests\ntask test:byoc:aws\ntask test:byoc:azure\ntask test:byoc:gcp\n\n# Run serverless tests\ntask test:serverless\ntask test:serverless:regions\n```\n\n**Important:** Integration tests create real cloud resources and require valid credentials.\n\n### Development Commands\n\nThese commands assist in code development, testing, and maintenance.\n\n#### Build Commands\n\n```bash\n# Build the provider binary\ntask build\n\n# Install provider to local Terraform cache\ntask build:install\n\n# Clean up Go modules\ntask build:tidy\n```\n\n#### Code Quality\n\n```bash\n# Prepare code for commit (docs, lint, tidy)\ntask ready\n\n# Run linting\ntask lint\n\n# Run linting with auto-fix\ntask lint:fix\n\n# Install linting tools\ntask lint:install\n```\n\n#### Documentation\n\n```bash\n# Generate provider documentation\ntask docs\n\n# Install documentation tools\ntask docs:install\n```\n\n#### Testing \u0026 Mocks\n\n```bash\n# Run unit tests (no credentials needed)\ntask test:unit\n\n# Generate and clean mocks\ntask mock\n\n# Clean existing mocks\ntask mock:clean\n\n# Generate mocks from interfaces\ntask mock:generate\n```\n\nThe `task ready` command is especially useful before committing changes as it ensures code quality and up-to-date documentation.\n\n### Release Commands\n\nThese commands are used for creating and managing releases:\n\n```bash\n# Check GoReleaser configuration\ntask release:check\n\n# Import GPG key for signing\ntask release:import-gpg\n\n# Create a full release (requires GPG setup)\ntask release\n\n# Build release artifacts locally\ntask release:build\n\n# Create a snapshot release for testing\ntask release:snapshot\n```\n\n**Environment Variables for Releases:**\n- `GPG_PRIVATE_KEY`: Base64-encoded GPG private key\n- `PASSPHRASE`: GPG key passphrase\n- `GPG_FINGERPRINT`: GPG key fingerprint\n- `GITHUB_TOKEN`: GitHub token for release publishing\n\n### Best Practices\n\n1. Always run `task ready` before committing changes to ensure code quality and documentation accuracy.\n2. Use `task test:unit` for quick, local testing that doesn't require Redpanda credentials.\n3. Use `task local:cluster:*:apply` and `task local:cluster:*:destroy` for manual testing during development.\n4. Run the integration tests by tagging your PR with `ci-ready` to ensure all tests pass before merging.\n5. Use `task release:check` to validate GoReleaser configuration before creating releases.\n6. Set up your `.env` file with appropriate credentials for your development environment.\n\n## Releasing a Version\n\nDo not change the Terraform Registry Manifest version! This is the version of the protocol, not the provider. To release\na version cut a release in GitHub. Goreleaser will handle things from there.\n\n## Support\n\nTo raise issues, questions, or interact with the community:\n\n- [Github Issues](https://github.com/redpanda-data/terraform-provider-redpanda/issues)\n- [Slack](https://redpanda.com/slack)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredpanda-data%2Fterraform-provider-redpanda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredpanda-data%2Fterraform-provider-redpanda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredpanda-data%2Fterraform-provider-redpanda/lists"}