diff --git a/README.md b/README.md index d59e0ee..f9edd4a 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,87 @@ -# DevPod Provider STACKIT +# DevPod Provider for STACKIT +[![Open in DevPod](https://devpod.sh/assets/open-in-devpod.svg)](https://devpod.sh/open#provider=stackitcloud/devpod-provider-stackit) + [![Go Report Card](https://goreportcard.com/badge/github.com/stackitcloud/devpod-provider-stackit)](https://goreportcard.com/report/github.com/stackitcloud/devpod-provider-stackit) -Run [DevPod](https://devpod.sh/) on [STACKIT](https://www.stackit.de). +The DevPod Provider for STACKIT enables seamless integration between [DevPod](https://devpod.sh) and the [STACKIT Cloud Platform](https://www.stackit.de/en/), allowing you to deploy development environments on STACKIT's European cloud infrastructure. This provider offers a secure, GDPR-compliant solution for creating reproducible development environments in STACKIT's German data centers. + +## Features + +- Deploy development environments on STACKIT's cloud platform +- Automated VM provisioning and management +- GDPR-compliant European cloud infrastructure +- Full DevContainer compatibility + +## Requirements + +- [DevPod CLI](https://devpod.sh/docs/getting-started/installation) or [DevPod Desktop](https://devpod.sh/docs/getting-started/installation) +- STACKIT account with an active project +- Service Account with appropriate permissions +- Service Account Key and Private Key (for authentication) + +## Installation + +You can add the STACKIT provider to DevPod using the CLI: + +```bash +devpod provider add stackitcloud/devpod-provider-stackit +``` + +Or through the DevPod Desktop application by clicking on "Providers" and then "Add Provider". + +## Configuration + +When adding the provider, you need to configure the following options: + +| Option | Required | Description | Default | +|--------|----------|-------------|----------| +| REGION | true | The STACKIT region to create the VM in (e.g., `eu01`) | `eu01` | +| AVAILABILITY_ZONE | true | The availability zone to use (e.g., `eu01-1`, `eu01-2`) | `eu01-1` | +| PROJECT_ID | true | The STACKIT project ID to use | | +| DISK_SIZE | false | The disk size to use in GB | `64` | +| SERVICE_ACCOUNT_KEY_PATH | true | Path to your STACKIT Service Account Key JSON file | | +| PRIVATE_KEY_PATH | true | Path to your private key | | +| FLAVOR | false | The VM instance type to use | `g1.1` | + +## Authentication + +To authenticate with STACKIT, you need to: + +1. Create a Service Account in the STACKIT Portal +2. Generate a key pair locally +3. Upload the public key to STACKIT +4. Download the Service Account Key JSON file + +### Creating a Service Account Key + +1. Log in to the [STACKIT Portal](https://portal.stackit.cloud/) +2. Navigate to your project +3. Go to "Service Accounts" tab +4. Create a new Service Account or select an existing one +5. Go to "Service Account Keys" and create a new key +6. Follow the instructions to upload your public key and download the Service Account Key JSON + +For detailed instructions, see the [STACKIT documentation on creating service account keys](https://docs.stackit.cloud/stackit/en/create-a-service-account-key-175112456.html). ## Usage -To use this provider in your DevPod setup, you will need to do the following steps: - -1. See the [DevPod documentation](https://devpod.sh/docs/managing-providers/add-provider) - for how to add a provider -2. Use the reference `stackitcloud/devpod-provider-stackit` to download the latest - release from GitHub -3. Configure the provider by specifying a few options: -- Region -- Project ID -- Availability zone -- Disk size -- Private key path -- Service Account key path - -### STACKIT Service Account - -To authenticate with STACKIT you need to create a Service Account, generate a keypair locally and upload the public key -and download the Service Account Key JSON. -See the docs to see how: https://docs.stackit.cloud/stackit/en/create-a-service-account-key-175112456.html \ No newline at end of file +After setting up the provider, you can create a new DevPod workspace: + +```bash +# Create a new workspace from a Git repository +devpod up git@github.com:user/repository.git --provider stackit + +# Or from a local directory +devpod up ./my-project --provider stackit +``` + + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +## License + +This project is licensed under the [Apache License 2.0](LICENSE). \ No newline at end of file