Commit Graph

60 Commits

Author SHA1 Message Date
Shreyas Goenka ce7b2133bf
Added comments for the schema struct fields 2023-01-17 13:59:56 +01:00
Shreyas Goenka d2f466afc5
replaced properties and items with schema 2023-01-17 13:47:31 +01:00
Shreyas Goenka cc350f761a
correct typo and some comments 2023-01-17 13:43:50 +01:00
Shreyas Goenka e79c52ff37
Added doc string for type mapping 2023-01-17 12:25:25 +01:00
Shreyas Goenka aa81d83970
added ignoring - fields and tests for ignoring dashed and non annotated fields 2023-01-17 11:58:32 +01:00
Shreyas Goenka 2a66a2fc74
added comment for what to do about cycles in json schema 2023-01-17 11:26:46 +01:00
Shreyas Goenka 7385f37df6
fixed typo 2023-01-16 21:53:20 +01:00
Shreyas Goenka 2945408f0d
add test for errWithTrace 2023-01-16 13:19:31 +01:00
Shreyas Goenka 42d82ede6e
- 2023-01-16 02:30:41 +01:00
Shreyas Goenka 4438d1b37c
some todo and comment cleanup 2023-01-16 02:27:49 +01:00
Shreyas Goenka ae201f1bd3
comments and typo correction 2023-01-16 02:23:35 +01:00
Shreyas Goenka 276ba00067
fixed debugTrace 2023-01-13 20:03:24 +01:00
Shreyas Goenka 1ee35c3633
corrected enum 2023-01-13 19:40:09 +01:00
Shreyas Goenka d605ab1aa4
using list for error tracing 2023-01-13 19:37:35 +01:00
Shreyas Goenka 1538422d27
some cleanup 2023-01-13 19:26:50 +01:00
Shreyas Goenka 0f67d7c0d7
added test for embedded structs 2023-01-13 19:25:42 +01:00
Shreyas Goenka b1e85e20f6
cleaned up test boilerplate, added support for maps and embedded types 2023-01-13 19:08:21 +01:00
Shreyas Goenka 010f60d498
added slice of object handling 2023-01-13 18:01:53 +01:00
Shreyas Goenka babd7fa4eb
corrected item typo 2023-01-13 17:28:46 +01:00
Shreyas Goenka cc5ed2bc76
fixed typo, and tested schema is working 2023-01-13 17:13:21 +01:00
Shreyas Goenka 926db54a6d
added tests for primitives and basic objects/arrays 2023-01-13 16:45:01 +01:00
Shreyas Goenka 987dd29357
added recursive limit 2023-01-13 12:09:19 +01:00
Shreyas Goenka d46dbbce6a
WIP json schema support for bundles 2023-01-13 04:52:25 +01:00
Pieter Noordhuis 3582037be6
Add nil check for retries.Info.Info (#166) 2023-01-12 18:58:36 +01:00
Pieter Noordhuis 8f4461904b
Define flags for running jobs and pipelines (#146) 2022-12-23 15:17:16 +01:00
Pieter Noordhuis 49aa858b89
Run command must always take a single argument (#156) 2022-12-22 16:19:38 +01:00
Pieter Noordhuis 61ef0ba8c6
Handle nil environment (#154) 2022-12-22 15:31:32 +01:00
Pieter Noordhuis 7f83463ca3
Bump SDK to latest (#151) 2022-12-22 09:46:17 +01:00
Pieter Noordhuis 4026b2cda2
Mutator to convert paths to local notebooks files into artifacts (#144)
This lets you write:
```yaml
libraries:
  - notebook:
      path: ./events.sql
```

Instead of:
```yaml
artifacts:
  events_sql:
    notebook:
      path: ./events.sql

libraries:
  - notebook:
      path: "${artifacts.events_sql.notebook.remote_path}"
```
2022-12-16 14:49:23 +01:00
Pieter Noordhuis 1a9a431b97
No need for nil check on map (#143) 2022-12-15 21:28:27 +01:00
Pieter Noordhuis 24a3b90713
Add "default" flag to environment block (#142)
If the environment is not set through command line argument or
environment variable, the bundle loads either 1) the only environment,
2) the only environment with the default flag set.
2022-12-15 21:28:14 +01:00
Pieter Noordhuis 35243db33c
Automatically install Terraform if needed (#141)
Users can opt out and use the system-installed version with the
following configuration:

```
bundle:
  terraform:
    exec_path: terraform
```

This will find the binary in $PATH and replace it with the found value.

If this is not set, the initialize phase will install Terraform in the
bundle's cache directory.
2022-12-15 17:30:33 +01:00
Pieter Noordhuis 32a37c1b83
Use filer.Filer in bundle/deployer/locker (#136)
Summary:
* All remote path arguments for deployer and locker are now relative to
root specified at initialization
* The workspace client is now a struct field so it doesn't have to be
passed around
2022-12-15 17:16:07 +01:00
Pieter Noordhuis b111416fe5
Add `bricks bundle run` command (#134) 2022-12-15 15:12:47 +01:00
Pieter Noordhuis 72e89bf33c
Use pointers to resources in bundle configuration (#140)
Avoid copy-by-value when iterating over these maps.
2022-12-15 13:00:41 +01:00
Pieter Noordhuis d0bd74c116
Run Go formatting with 1.19 (#137)
See https://tip.golang.org/doc/go1.19#go-doc.
2022-12-14 15:59:47 +01:00
Pieter Noordhuis d713521d63
Convert job task libraries to TF JSON (#132) 2022-12-12 16:36:59 +01:00
Pieter Noordhuis c255bd686a
Define deploy command as sequence of build phases (#129) 2022-12-12 12:49:25 +01:00
Pieter Noordhuis 8640696b4b
Add minimal test for conversion to TF JSON format (#130) 2022-12-12 11:31:28 +01:00
Pieter Noordhuis 94a86972e5
Allow multiple lookup functions for interpolation (#128) 2022-12-12 10:48:52 +01:00
Pieter Noordhuis 3f8e233a18
Function to limit interpolation to specific path (#127)
New function `IncludeLookupsInPath` is counterpart to
`ExcludeLookupsInPath`.
2022-12-12 10:30:17 +01:00
Pieter Noordhuis 4f668fc58b
Mutators to work with Terraform (#124)
This includes 3 mutators:
* Interpolate resources references to TF compatible format
* Convert resources struct to TF JSON format and write it to disk
* Run TF apply
2022-12-09 08:57:30 +01:00
Pieter Noordhuis ff89c9d06f
Generate equivalent Go types from Terraform provider schema (#122)
It contains:
* `codegen` -- this turns the schema of the Databricks Terraform provider into Go types.
* `schema` -- the output of the above.
2022-12-06 16:26:19 +01:00
shreyas-goenka d9d295f2a9
Implement Terraform state synchronization and deploy (#98)
https://user-images.githubusercontent.com/88374338/203669797-abebf99e-8fa6-4d6e-b57a-abd172d8020d.mov
2022-12-06 00:40:45 +01:00
Pieter Noordhuis d5474c9673
Revert "Rename jobs -> workflows" (#118)
This reverts PR #111.

This reverts commit 230811031f.
2022-12-01 22:39:15 +01:00
Pieter Noordhuis cdc776d89e
Parameterize interpolation function (#117)
By specifying a function typed `LookupFunction` the caller can customize
which path expressions to interpolate and which ones to skip. When we
express dependencies between resources their values are known by
Terraform at deploy time. Therefore, we have to skip interpolation for
`${resources.jobs.my_job.id}` and instead rewrite it to
`${databricks_job.my_job.id}` before passing it along to Terraform.
2022-12-01 22:38:49 +01:00
Pieter Noordhuis 34af98a8c3
Mutators to define current user and default artifact path (#112) 2022-12-01 11:17:29 +01:00
Pieter Noordhuis 230811031f
Rename jobs -> workflows (#111) 2022-12-01 09:35:21 +01:00
Pieter Noordhuis c4d63eac70
Rudimentary interpolation support (#108)
Performs interpolation on string field.

It looks for patterns `${foo.bar}` where `foo.bar` points to a string
field in the configuration data model.

It does not support traversal (e.g. `${foo}` with `foo` equal
to`${bar}`), hence "rudimentary".
2022-12-01 09:33:42 +01:00
Pieter Noordhuis 4064a21797
Function to return bundle's cache directory (#109)
Parallel of `project.CacheDir()` introduced in
https://github.com/databricks/bricks/pull/82.
2022-11-30 14:40:41 +01:00