Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Add databricks_app resource #4099

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open

[Feature] Add databricks_app resource #4099

wants to merge 22 commits into from

Conversation

nkvuong
Copy link
Contributor

@nkvuong nkvuong commented Oct 12, 2024

Changes

  • Added databricks_app resource

Resolves #4084

Tests

  • make test run locally
  • relevant change in docs/ folder
  • covered with integration tests in internal/acceptance
  • relevant acceptance tests are passing
  • using Go SDK

@nkvuong nkvuong marked this pull request as ready for review October 29, 2024 09:48
@nkvuong nkvuong requested review from a team as code owners October 29, 2024 09:48
@nkvuong nkvuong requested review from mgyucht and removed request for a team October 29, 2024 09:48
Copy link
Contributor

@alexott alexott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small changes in the doc required, otherwise code looks good

apps/resource_app.go Outdated Show resolved Hide resolved
docs/resources/app.md Outdated Show resolved Hide resolved
docs/resources/app.md Outdated Show resolved Hide resolved
return err
}
// now deploy the app, using the source code path
createAppDeployment.AppName = app.Name
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we discussed it offline and agreed that the deployment won't be part of TF configuration. Instead, if an users want to deploy, they use CLI to do that. Otherwise it's confusing because we do the deployments only when source_code_path changed but we need to do deployments when source code is changed.

@pietern wdyt?

if err != nil {
return err
}
if d.HasChanges("source_code_path", "mode") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my comment above, I think we should remove app deployment altogether for now

func (appStruct) CustomizeSchema(s *common.CustomizableSchema) *common.CustomizableSchema {

// Required fields & validation
s.SchemaPath("name").SetRequired().SetForceNew().SetValidateFunc(validation.StringMatch(regexp.MustCompile("^[a-z-]{2,30}$"), "name must contain only lowercase alphanumeric characters and hyphens, and be between 2 and 30 characters long"))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: this line is very long

apps/resource_app.go Show resolved Hide resolved
"update_time", "updater", "url"} {
s.SchemaPath(p).SetComputed()
}
return s
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add this constraint back, where you cannot have more than one defined per resource?

apps/resource_app.go Show resolved Hide resolved
docs/resources/app.md Outdated Show resolved Hide resolved
apps/resource_app.go Show resolved Hide resolved
Copy link
Contributor

@andrewnester andrewnester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just realised that there's an important piece is missing: we need to supporting setting permissions for app resource as we do for other resources (see ResourcePermissions). Apps do support this API https://docs.databricks.com/api/workspace/apps/setpermissions

@alexott
Copy link
Contributor

alexott commented Nov 21, 2024

@andrewnester maybe we can do it in a separate PR?

@andrewnester
Copy link
Contributor

@alexott we could, but having this permissions management for app is critical for DABs anyway, so I'd rather have it in this PR too. @pietern wdyt?

@andrewnester
Copy link
Contributor

Just to clarify, I mean app resource needs to be added here so it can be part of the schema and be able to use it by DABs since we rely on generic databricks_permission resource anyway
https://github.com/databricks/terraform-provider-databricks/blob/main/permissions/permission_definitions.go#L346

Copy link

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/terraform

Inputs:

  • PR number: 4099
  • Commit SHA: 9e41c692be0ebba3b34aa7e092b4ca9532d0d967

Checks will be approved automatically on success.

@eng-dev-ecosystem-bot
Copy link
Collaborator

Test Details: go/deco-tests/11968854526

@nkvuong
Copy link
Contributor Author

nkvuong commented Nov 22, 2024

@andrewnester makes sense - I've added apps to the permission resource and corresponding tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE] Add support for Databricks Apps
5 participants