Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
3cd9438
fix(Docs): Adding `services` to path in utils creation step description.
May 15, 2026
723c020
feat(dremio): Initial Commit for onboarding of the STACKIT Dremio ser…
May 15, 2026
f608724
feat(dremio): Adding Dremio instance resource.
May 22, 2026
32ca5c8
chore(dremio): Linting
May 22, 2026
86989ea
fix(dremio): Providing default region in SDK config.
May 22, 2026
7f06e2d
feat(dremio): Adding example for Dremio instance
May 22, 2026
894102e
feat(dremio): Preparing resource methods for data source usage.
May 22, 2026
1aa2a78
feat(dremio): Adding dremio instance data resource.
May 22, 2026
1d1fc6e
fix(dremio): Linting & Formatting
May 22, 2026
494fa39
feat(dremio): Adding acceptance tests for Dremio instance.
Jun 1, 2026
763d72e
feat(dremio): First draft for Dremio user resource
Jun 3, 2026
1bc40ee
fix(dremio): Removing some obsolete comments & fixing typos in Dremio…
Jun 3, 2026
e6af5ef
fix(dremio): Fully align instance data source with resource.
Jun 4, 2026
9775d71
fix(dremio): Fixing acceptance tests.
Jun 4, 2026
e433562
fix(dremio): Make Dremio users actually creatable
Jun 5, 2026
768dfec
feat(dremio): Adding user unit tests
Jun 8, 2026
6ff89af
feat(dremio): Adding Dremio user data source.
Jun 8, 2026
8fb1781
feat(dremio): Adding Dremio user to acceptance tests (draft).
Jun 8, 2026
e54f25b
fix(dremio): Implementing review suggestions for datasources.
Jun 9, 2026
0a5b63e
feat(dremio): Updating dremio SDK containing enums.
Jun 9, 2026
0bec9ca
feat(dremio): Implementing review feedback from PR.
Jun 9, 2026
96d4dab
fix(dremio): Adding default description for user, so state does not b…
Jun 9, 2026
8899741
fix(dremio): Fixing acceptance tests.
Jun 10, 2026
713ca04
fix(dremio): Linter
Jun 10, 2026
aca56f6
feat(dremio): Adding example for Dremio users
Jun 10, 2026
dfb9019
fix(dremio): Implementing PR feedback
Jun 10, 2026
395ff96
feat(dremio): Specifying Dremio as experimental
Jun 10, 2026
d29ed9b
fix(dremo): Formatting
Jun 10, 2026
2d616fa
feat(dremio): Adding description for experimental state in README.
Jun 10, 2026
1be2f8a
fix(dremio): Fix experimental state check
Jun 10, 2026
3d89482
fix(dremio): Generate docs.
Jun 11, 2026
e41f6ce
feat(dremio): Removing state & error_message from tf state
Jun 11, 2026
04e7e46
chore(dremio): Regenerating docs
Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ If you want to onboard resources of a STACKIT service `foo` that was not yet in
```go
setStringField(providerConfig.FooCustomEndpoint, func(v string) { providerData.FooCustomEndpoint = v })
```
4. Create a utils package, for service `foo` it would be `stackit/internal/foo/utils`. Add a `ConfigureClient()` func and use it in your resource and datasource implementations.
4. Create a utils package, for service `foo` it would be `stackit/internal/services/foo/utils`. Add a `ConfigureClient()` func and use it in your resource and datasource implementations.
Comment thread
bjarneschroeder marked this conversation as resolved.

https://github.com/stackitcloud/terraform-provider-stackit/blob/main/.github/docs/contribution-guide/utils/util.go

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,12 @@ The `stackit_network` provides the fields `region` and `routing_table_id` when t
The underlying API is not stable yet and could change in the future.
If you don't need these fields, don't set the experiment flag `network`, to use the stable api.

#### `dremio`

Enables the usage and provisioning of STACKIT Dremio resources.
The STACKIT Dremio API is currently in alpha state.
The fields of the resources are still subject to change.

## Acceptance Tests

> [!WARNING]
Expand Down
111 changes: 111 additions & 0 deletions docs/data-sources/dremio_instance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "stackit_dremio_instance Data Source - stackit"
subcategory: ""
description: |-
Manages a STACKIT Dremio instance.
~> This datasource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.
---

# stackit_dremio_instance (Data Source)

Manages a STACKIT Dremio instance.

~> This datasource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.

## Example Usage

```terraform
data "stackit_dremio_instance" "example" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
region = "eu01"
instance_id = "example-instance-id"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `instance_id` (String) The Dremio instance ID.
- `project_id` (String) STACKIT Project ID to which the resource is associated.

### Optional

- `description` (String) The description is a longer text chosen by the user to provide more context for the resource.
- `region` (String) The STACKIT region name the resource is located in. If not defined, the provider region is used.

### Read-Only

- `authentication` (Attributes) Dremio instance authentication settings. A change here triggers a Dremio restart and will incur downtime. (see [below for nested schema](#nestedatt--authentication))
- `display_name` (String) The display name is a short name chosen by the user to identify the resource.
- `endpoints` (Attributes) The available endpoints of the Dremio instance. (see [below for nested schema](#nestedatt--endpoints))
- `id` (String) Terraform's internal resource identifier. It is structured as "`project_id`,`region`,`instance_id`".

<a id="nestedatt--authentication"></a>
### Nested Schema for `authentication`

Optional:

- `azuread` (Attributes) Azure Active Directory authentication configuration. (see [below for nested schema](#nestedatt--authentication--azuread))
- `oauth` (Attributes) OIDC authentication configuration. (see [below for nested schema](#nestedatt--authentication--oauth))

Read-Only:

- `type` (String) Type of authentication (local-only, azuread, oauth).

<a id="nestedatt--authentication--azuread"></a>
### Nested Schema for `authentication.azuread`

Read-Only:

- `authority_url` (String) The Azure AD authority URL.
- `client_id` (String) The Azure AD client ID.
- `client_secret` (String, Sensitive) The Azure AD client secret.
- `redirect_url` (String) The Azure AD redirect URL.


<a id="nestedatt--authentication--oauth"></a>
### Nested Schema for `authentication.oauth`

Optional:

- `parameters` (Attributes List) Any additional parameters the Identity Provider requires. (see [below for nested schema](#nestedatt--authentication--oauth--parameters))
- `scope` (String) A list of space-separated scopes. The `openid` scope is always required; other scopes can vary by provider.

Read-Only:

- `authority_url` (String) The Issuer location URI, where the OIDC provider configuration can be found.
- `client_id` (String) The client ID assigned by the Identity Provider.
- `client_secret` (String, Sensitive) The client secret generated by the Identity Provider.
- `jwt_claims` (Attributes) Maps fields from the JWT token to fields Dremio requires. (see [below for nested schema](#nestedatt--authentication--oauth--jwt_claims))
- `redirect_url` (String) The URL where the Dremio instance is hosted. The URL must match the redirect URL set in the Identity Provider.

<a id="nestedatt--authentication--oauth--parameters"></a>
### Nested Schema for `authentication.oauth.parameters`

Read-Only:

- `name` (String) Parameter name.
- `value` (String) Parameter value.


<a id="nestedatt--authentication--oauth--jwt_claims"></a>
### Nested Schema for `authentication.oauth.jwt_claims`

Read-Only:

- `user_name` (String) Mapped user name claim (e.g. email).




<a id="nestedatt--endpoints"></a>
### Nested Schema for `endpoints`

Read-Only:

- `arrow_flight` (String) The arrow flight endpoint of the Dremio instance.
- `catalog` (String) The Apache Iceberg endpoint of the Dremio instance.
- `ui` (String) The UI endpoint of the Dremio instance.
47 changes: 47 additions & 0 deletions docs/data-sources/dremio_user.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "stackit_dremio_user Data Source - stackit"
subcategory: ""
description: |-
Manages a STACKIT Dremio instances user.
~> This datasource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.
---

# stackit_dremio_user (Data Source)

Manages a STACKIT Dremio instances user.

~> This datasource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.

## Example Usage

```terraform
data "stackit_dremio_user" "example" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
region = "eu01"
instance_id = "example-instance-id"
user_id = "example-user-id"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `instance_id` (String) The Dremio instance ID.
- `project_id` (String) STACKIT Project ID to which the resource is associated.
- `user_id` (String) The Dremio user ID.

### Optional

- `description` (String) The description of the user.
- `region` (String) The STACKIT region name the resource is located in. If not defined, the provider region is used.

### Read-Only

- `email` (String) The email address of the user.
- `first_name` (String) The first name of the user.
- `id` (String) Terraform's internal resource identifier. It is structured as "`project_id`,`region`,`instance_id`,`user_id`".
- `last_name` (String) The last name of the user.
- `name` (String) The username of the user.
3 changes: 2 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,10 @@ Note: AWS specific checks must be skipped as they do not work on STACKIT. For de
- `credentials_path` (String) Path of JSON from where the credentials are read. Takes precedence over the env var `STACKIT_CREDENTIALS_PATH`. Default value is `~/.stackit/credentials.json`.
- `default_region` (String) Region will be used as the default location for regional services. Not all services require a region, some are global
- `dns_custom_endpoint` (String) Custom endpoint for the DNS service
- `dremio_custom_endpoint` (String) Custom endpoint for the Dremio service
- `edgecloud_custom_endpoint` (String) Custom endpoint for the Edge Cloud service
- `enable_beta_resources` (Boolean) Enable beta resources. Default is false.
- `experiments` (List of String) Enables experiments. These are unstable features without official support. More information can be found in the README. Available Experiments: iam, routing-tables, network
- `experiments` (List of String) Enables experiments. These are unstable features without official support. More information can be found in the README. Available Experiments: dremio, iam, routing-tables, network
- `git_custom_endpoint` (String) Custom endpoint for the Git service
- `iaas_custom_endpoint` (String) Custom endpoint for the IaaS service
- `intake_custom_endpoint` (String) Custom endpoint for the Intake service
Expand Down
157 changes: 157 additions & 0 deletions docs/resources/dremio_instance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "stackit_dremio_instance Resource - stackit"
subcategory: ""
description: |-
Manages a STACKIT Dremio instance.
~> This resource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.
---

# stackit_dremio_instance (Resource)

Manages a STACKIT Dremio instance.

~> This resource is part of the dremio experiment and is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.

## Example Usage

```terraform
resource "stackit_dremio_instance" "example" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
region = "eu01"
display_name = "exampleName"
description = "Example description"
authentication = {
type = "local-only" // "oauth" or "azuread" for IDP config

oauth = { // only needed if "oauth" is given as type
authority_url = "authority"
client_id = "client-id"
client_secret = "client-secret"
jwt_claims = {
user_name = "example"
}
scope = "idp-scope"
parameters = [
{ "name" : "example", "value" : "example-value" }
]
}

azuread = { // only needed if "azuread" is given as type
authority_url = "authority"
client_id = "client-id"
client_secret = "client-secret"
}
}
}

import {
to = stackit_dremio_instance.import_example
id = "${var.project_id},${var.region},${var.instance_id}"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `authentication` (Attributes) Dremio instance authentication settings. A change here triggers a Dremio restart and will incur downtime. (see [below for nested schema](#nestedatt--authentication))
- `display_name` (String) The display name is a short name chosen by the user to identify the resource.
- `project_id` (String) STACKIT Project ID to which the resource is associated.

### Optional

- `description` (String) The description is a longer text chosen by the user to provide more context for the resource.
- `region` (String) The STACKIT region name the resource is located in. If not defined, the provider region is used.
- `timeouts` (Attributes) (see [below for nested schema](#nestedatt--timeouts))

### Read-Only

- `endpoints` (Attributes) The available endpoints of the Dremio instance. (see [below for nested schema](#nestedatt--endpoints))
- `id` (String) Terraform's internal resource identifier. It is structured as "`project_id`,`region`,`instance_id`".
- `instance_id` (String) The Dremio instance ID.

<a id="nestedatt--authentication"></a>
### Nested Schema for `authentication`

Required:

- `type` (String) Type of authentication (local-only, azuread, oauth).

Optional:

- `azuread` (Attributes) Azure Active Directory authentication configuration. (see [below for nested schema](#nestedatt--authentication--azuread))
- `oauth` (Attributes) OIDC authentication configuration. (see [below for nested schema](#nestedatt--authentication--oauth))

<a id="nestedatt--authentication--azuread"></a>
### Nested Schema for `authentication.azuread`

Required:

- `authority_url` (String) The Azure AD authority URL.
- `client_id` (String) The Azure AD client ID.
- `client_secret` (String, Sensitive) The Azure AD client secret.

Read-Only:

- `redirect_url` (String) The Azure AD redirect URL.


<a id="nestedatt--authentication--oauth"></a>
### Nested Schema for `authentication.oauth`

Required:

- `authority_url` (String) The Issuer location URI, where the OIDC provider configuration can be found.
- `client_id` (String) The client ID assigned by the Identity Provider.
- `client_secret` (String, Sensitive) The client secret generated by the Identity Provider.
- `jwt_claims` (Attributes) Maps fields from the JWT token to fields Dremio requires. (see [below for nested schema](#nestedatt--authentication--oauth--jwt_claims))

Optional:

- `parameters` (Attributes List) Any additional parameters the Identity Provider requires. (see [below for nested schema](#nestedatt--authentication--oauth--parameters))
- `scope` (String) A list of space-separated scopes. The `openid` scope is always required; other scopes can vary by provider.

Read-Only:

- `redirect_url` (String) The URL where the Dremio instance is hosted. The URL must match the redirect URL set in the Identity Provider.

<a id="nestedatt--authentication--oauth--jwt_claims"></a>
### Nested Schema for `authentication.oauth.jwt_claims`

Required:

- `user_name` (String) Mapped user name claim (e.g. email).


<a id="nestedatt--authentication--oauth--parameters"></a>
### Nested Schema for `authentication.oauth.parameters`

Required:

- `name` (String) Parameter name.
- `value` (String) Parameter value.




<a id="nestedatt--timeouts"></a>
### Nested Schema for `timeouts`

Optional:

- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- `read` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).


<a id="nestedatt--endpoints"></a>
### Nested Schema for `endpoints`

Read-Only:

- `arrow_flight` (String) The arrow flight endpoint of the Dremio instance.
- `catalog` (String) The Apache Iceberg endpoint of the Dremio instance.
- `ui` (String) The UI endpoint of the Dremio instance.
Loading
Loading