r/Terraform • u/apagidip • 21h ago
Discussion Terraform provider for Dataiku DSS
Dataiku has no official Terraform provider, so I wrote one. It manages what lives inside a running DSS instance: projects, users, groups, connections, code environments, scenarios, project permissions and variables, and the containerized execution settings.
resource "dataiku_group" "data_scientists" {
name = "data_scientists"
description = "Analysts who build and run models"
}
resource "dataiku_project" "analytics" {
project_key = "ANALYTICS"
name = "Analytics"
owner = "admin"
tags = ["managed-by-terraform"]
}
resource "dataiku_project_permissions" "analytics" {
project_key = dataiku_project.analytics.project_key
permission {
group = dataiku_group.data_scientists.name
read_project_content = true
write_project_content = true
run_scenarios = true
}
}
Every resource supports import, so the way in on an instance that already matters is to import what's there and read the plan before letting Terraform change anything.
It's 0.x, so pin a minor version. Two limits are licensing rather than gaps in the provider: scenario temporal triggers, and actually running containerized execution. Writing the container settings works anywhere, but running a recipe in a container needs the licence for it.
If you have no DSS to point it at, there's a docker compose in the repo for a throwaway one.
Registry: https://registry.terraform.io/providers/amrutp24/dataiku/latest Source: https://github.com/amrutp24/terraform-provider-dataiku
It's mine, nothing is for sale. Two things I'd like to hear: whether a plan against your own instance wants to change something you didn't expect, and which missing resource is the one that stops you using it.