@unstablestudios/terraform 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +312 -0
- package/dist/config/backend.d.ts +118 -0
- package/dist/config/backend.d.ts.map +1 -0
- package/dist/config/backend.js +153 -0
- package/dist/config/backend.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/terraform.d.ts +157 -0
- package/dist/config/terraform.d.ts.map +1 -0
- package/dist/config/terraform.js +211 -0
- package/dist/config/terraform.js.map +1 -0
- package/dist/config/terraform.test.d.ts +2 -0
- package/dist/config/terraform.test.d.ts.map +1 -0
- package/dist/config/terraform.test.js +240 -0
- package/dist/config/terraform.test.js.map +1 -0
- package/dist/config/tfvars.d.ts +90 -0
- package/dist/config/tfvars.d.ts.map +1 -0
- package/dist/config/tfvars.js +133 -0
- package/dist/config/tfvars.js.map +1 -0
- package/dist/config/tfvars.test.d.ts +2 -0
- package/dist/config/tfvars.test.d.ts.map +1 -0
- package/dist/config/tfvars.test.js +187 -0
- package/dist/config/tfvars.test.js.map +1 -0
- package/dist/hcl/generator.d.ts +59 -0
- package/dist/hcl/generator.d.ts.map +1 -0
- package/dist/hcl/generator.js +401 -0
- package/dist/hcl/generator.js.map +1 -0
- package/dist/hcl/generator.test.d.ts +2 -0
- package/dist/hcl/generator.test.d.ts.map +1 -0
- package/dist/hcl/generator.test.js +280 -0
- package/dist/hcl/generator.test.js.map +1 -0
- package/dist/hcl/index.d.ts +5 -0
- package/dist/hcl/index.d.ts.map +1 -0
- package/dist/hcl/index.js +3 -0
- package/dist/hcl/index.js.map +1 -0
- package/dist/hcl/writer.d.ts +35 -0
- package/dist/hcl/writer.d.ts.map +1 -0
- package/dist/hcl/writer.js +154 -0
- package/dist/hcl/writer.js.map +1 -0
- package/dist/index.d.mts +970 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1283 -0
- package/dist/modules/cloudflare/d1.d.ts +39 -0
- package/dist/modules/cloudflare/d1.d.ts.map +1 -0
- package/dist/modules/cloudflare/d1.js +55 -0
- package/dist/modules/cloudflare/d1.js.map +1 -0
- package/dist/modules/cloudflare/index.d.ts +43 -0
- package/dist/modules/cloudflare/index.d.ts.map +1 -0
- package/dist/modules/cloudflare/index.js +44 -0
- package/dist/modules/cloudflare/index.js.map +1 -0
- package/dist/modules/cloudflare/kv.d.ts +57 -0
- package/dist/modules/cloudflare/kv.d.ts.map +1 -0
- package/dist/modules/cloudflare/kv.js +75 -0
- package/dist/modules/cloudflare/kv.js.map +1 -0
- package/dist/modules/cloudflare/r2.d.ts +49 -0
- package/dist/modules/cloudflare/r2.d.ts.map +1 -0
- package/dist/modules/cloudflare/r2.js +70 -0
- package/dist/modules/cloudflare/r2.js.map +1 -0
- package/dist/modules/cloudflare/worker.d.ts +104 -0
- package/dist/modules/cloudflare/worker.d.ts.map +1 -0
- package/dist/modules/cloudflare/worker.js +128 -0
- package/dist/modules/cloudflare/worker.js.map +1 -0
- package/dist/modules/index.d.ts +4 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +4 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/types.d.ts +97 -0
- package/dist/modules/types.d.ts.map +1 -0
- package/dist/modules/types.js +106 -0
- package/dist/modules/types.js.map +1 -0
- package/dist/modules/types.test.d.ts +2 -0
- package/dist/modules/types.test.d.ts.map +1 -0
- package/dist/modules/types.test.js +167 -0
- package/dist/modules/types.test.js.map +1 -0
- package/dist/types/config.d.ts +140 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +16 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/config.test.d.ts +2 -0
- package/dist/types/config.test.d.ts.map +1 -0
- package/dist/types/config.test.js +36 -0
- package/dist/types/config.test.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<strong>Part of the <a href="https://www.npmjs.com/org/unstablestudios">Unstable Studios</a> open source libraries</strong>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://github.com/unstable-studios/echo-libs/actions/workflows/ci.yml"><img src="https://github.com/unstable-studios/echo-libs/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/@unstablestudios/terraform"><img src="https://img.shields.io/npm/v/@unstablestudios/terraform.svg" alt="npm version"></a>
|
|
8
|
+
<a href="https://www.npmjs.com/package/@unstablestudios/terraform"><img src="https://img.shields.io/npm/dm/@unstablestudios/terraform.svg" alt="npm downloads"></a>
|
|
9
|
+
<a href="https://github.com/unstable-studios/echo-libs/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@unstablestudios/terraform.svg" alt="license"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# @unstablestudios/terraform
|
|
15
|
+
|
|
16
|
+
TypeScript utilities for generating Terraform HCL configurations.
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pnpm add @unstablestudios/terraform
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- **HCL Generation** - Convert TypeScript objects to valid HCL syntax
|
|
27
|
+
- **Config Builders** - Fluent API for building Terraform configurations
|
|
28
|
+
- **tfvars Generation** - Create variable files programmatically
|
|
29
|
+
- **Backend Helpers** - Type-safe backend configuration builders
|
|
30
|
+
- **Cloudflare Modules** - Pre-built types for Cloudflare Workers, KV, D1, R2
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
### Basic HCL Generation
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { generateTerraformConfig, expr } from '@unstablestudios/terraform';
|
|
38
|
+
|
|
39
|
+
const config = {
|
|
40
|
+
terraform: {
|
|
41
|
+
required_version: '>= 1.0',
|
|
42
|
+
required_providers: {
|
|
43
|
+
cloudflare: {
|
|
44
|
+
source: 'cloudflare/cloudflare',
|
|
45
|
+
version: '~> 4.0',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
providers: [
|
|
50
|
+
{ provider: 'cloudflare', config: {} },
|
|
51
|
+
],
|
|
52
|
+
resources: [
|
|
53
|
+
{
|
|
54
|
+
type: 'cloudflare_workers_kv_namespace',
|
|
55
|
+
name: 'my_kv',
|
|
56
|
+
config: {
|
|
57
|
+
account_id: expr('var.cloudflare_account_id'),
|
|
58
|
+
title: 'my-kv-namespace',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const hcl = generateTerraformConfig(config);
|
|
65
|
+
console.log(hcl);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Using the Builder API
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import { terraform, backends, providers } from '@unstablestudios/terraform';
|
|
72
|
+
|
|
73
|
+
const config = terraform()
|
|
74
|
+
.requiredVersion('>= 1.0')
|
|
75
|
+
.requiredProvider('cloudflare', {
|
|
76
|
+
source: 'cloudflare/cloudflare',
|
|
77
|
+
version: '~> 4.0',
|
|
78
|
+
})
|
|
79
|
+
.backend(backends.s3({
|
|
80
|
+
bucket: 'my-terraform-state',
|
|
81
|
+
key: 'state.tfstate',
|
|
82
|
+
region: 'us-east-1',
|
|
83
|
+
}))
|
|
84
|
+
.provider('cloudflare')
|
|
85
|
+
.variable('cloudflare_account_id', 'string', {
|
|
86
|
+
description: 'Cloudflare Account ID',
|
|
87
|
+
sensitive: true,
|
|
88
|
+
})
|
|
89
|
+
.resource('cloudflare_workers_kv_namespace', 'my_kv', {
|
|
90
|
+
account_id: expr('var.cloudflare_account_id'),
|
|
91
|
+
title: 'my-kv-namespace',
|
|
92
|
+
})
|
|
93
|
+
.output('kv_id', expr('cloudflare_workers_kv_namespace.my_kv.id'), {
|
|
94
|
+
description: 'KV Namespace ID',
|
|
95
|
+
})
|
|
96
|
+
.toHcl();
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Generate Multiple Files
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
import { generateTerraformFiles } from '@unstablestudios/terraform';
|
|
103
|
+
|
|
104
|
+
const files = generateTerraformFiles(config);
|
|
105
|
+
// Returns: [
|
|
106
|
+
// { path: 'main.tf', content: '...' },
|
|
107
|
+
// { path: 'variables.tf', content: '...' },
|
|
108
|
+
// { path: 'outputs.tf', content: '...' }
|
|
109
|
+
// ]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### tfvars Generation
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
import { tfvars, generateEnvTfvars } from '@unstablestudios/terraform';
|
|
116
|
+
|
|
117
|
+
// Using builder
|
|
118
|
+
const vars = tfvars()
|
|
119
|
+
.string('cloudflare_account_id', 'abc123')
|
|
120
|
+
.string('environment', 'production')
|
|
121
|
+
.list('allowed_origins', ['https://example.com'])
|
|
122
|
+
.build();
|
|
123
|
+
|
|
124
|
+
// Generate environment-specific tfvars
|
|
125
|
+
const { filename, content } = generateEnvTfvars('production', {
|
|
126
|
+
cloudflare_account_id: 'abc123',
|
|
127
|
+
environment: 'production',
|
|
128
|
+
});
|
|
129
|
+
// filename: 'production.tfvars'
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Backend Configurations
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { s3Backend, azureBackend, terraformCloudBackend } from '@unstablestudios/terraform';
|
|
136
|
+
|
|
137
|
+
// S3 backend with DynamoDB locking
|
|
138
|
+
const s3 = s3Backend({
|
|
139
|
+
bucket: 'my-terraform-state',
|
|
140
|
+
key: 'state.tfstate',
|
|
141
|
+
region: 'us-east-1',
|
|
142
|
+
encrypt: true,
|
|
143
|
+
dynamodb_table: 'terraform-locks',
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// Azure backend
|
|
147
|
+
const azure = azureBackend({
|
|
148
|
+
resource_group_name: 'my-rg',
|
|
149
|
+
storage_account_name: 'mystorageaccount',
|
|
150
|
+
container_name: 'tfstate',
|
|
151
|
+
key: 'state.tfstate',
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Terraform Cloud
|
|
155
|
+
const tfc = terraformCloudBackend({
|
|
156
|
+
organization: 'my-org',
|
|
157
|
+
workspaces: { name: 'my-workspace' },
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Cloudflare Resources
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
import {
|
|
165
|
+
cloudflareWorkerScript,
|
|
166
|
+
cloudflareKvNamespace,
|
|
167
|
+
cloudflareD1Database,
|
|
168
|
+
cloudflareR2Bucket,
|
|
169
|
+
kvNamespaceRef,
|
|
170
|
+
d1DatabaseRef,
|
|
171
|
+
r2BucketRef,
|
|
172
|
+
cfAccountId,
|
|
173
|
+
} from '@unstablestudios/terraform';
|
|
174
|
+
|
|
175
|
+
// KV Namespace
|
|
176
|
+
const kv = cloudflareKvNamespace({
|
|
177
|
+
title: 'my-cache',
|
|
178
|
+
accountId: cfAccountId,
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// D1 Database
|
|
182
|
+
const d1 = cloudflareD1Database({
|
|
183
|
+
name: 'my-database',
|
|
184
|
+
accountId: cfAccountId,
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
// R2 Bucket
|
|
188
|
+
const r2 = cloudflareR2Bucket({
|
|
189
|
+
name: 'my-assets',
|
|
190
|
+
accountId: cfAccountId,
|
|
191
|
+
location: 'wnam',
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// Worker Script with bindings
|
|
195
|
+
const worker = cloudflareWorkerScript({
|
|
196
|
+
name: 'my-worker',
|
|
197
|
+
accountId: cfAccountId,
|
|
198
|
+
content: expr('file("./dist/worker.js")'),
|
|
199
|
+
module: true,
|
|
200
|
+
compatibilityDate: '2024-01-01',
|
|
201
|
+
kvNamespaces: [
|
|
202
|
+
{ name: 'CACHE', namespaceId: kvNamespaceRef('my_cache') },
|
|
203
|
+
],
|
|
204
|
+
d1Databases: [
|
|
205
|
+
{ name: 'DB', databaseId: d1DatabaseRef('my_database') },
|
|
206
|
+
],
|
|
207
|
+
r2Buckets: [
|
|
208
|
+
{ name: 'ASSETS', bucketName: r2BucketRef('my_assets') },
|
|
209
|
+
],
|
|
210
|
+
});
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Expression Helpers
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
import { expr, varRef, localRef, resourceRef, dataRef, tf } from '@unstablestudios/terraform';
|
|
217
|
+
|
|
218
|
+
// Variable reference
|
|
219
|
+
varRef('my_var') // var.my_var
|
|
220
|
+
|
|
221
|
+
// Local reference
|
|
222
|
+
localRef('computed_value') // local.computed_value
|
|
223
|
+
|
|
224
|
+
// Resource reference
|
|
225
|
+
resourceRef('aws_instance', 'web', 'id') // aws_instance.web.id
|
|
226
|
+
|
|
227
|
+
// Data source reference
|
|
228
|
+
dataRef('aws_ami', 'ubuntu', 'id') // data.aws_ami.ubuntu.id
|
|
229
|
+
|
|
230
|
+
// Common functions
|
|
231
|
+
tf.file('path/to/file') // file("path/to/file")
|
|
232
|
+
tf.jsonencode('local.config') // jsonencode(local.config)
|
|
233
|
+
tf.length('var.list') // length(var.list)
|
|
234
|
+
tf.lookup('var.map', 'key', 'default') // lookup(var.map, "key", default)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Module System
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
import { defineModule, useModule } from '@unstablestudios/terraform';
|
|
241
|
+
|
|
242
|
+
// Define a module interface
|
|
243
|
+
interface MyModuleInputs {
|
|
244
|
+
name: string;
|
|
245
|
+
environment: string;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
interface MyModuleOutputs {
|
|
249
|
+
id: string;
|
|
250
|
+
endpoint: string;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const myModule = defineModule<MyModuleInputs, MyModuleOutputs>(
|
|
254
|
+
'git::https://github.com/org/terraform-module.git',
|
|
255
|
+
'v1.0.0'
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
// Use the module
|
|
259
|
+
const instance = useModule(myModule, 'my_instance', {
|
|
260
|
+
name: 'example',
|
|
261
|
+
environment: 'production',
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
// Reference outputs
|
|
265
|
+
const id = instance.output('id'); // module.my_instance.id
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## API Reference
|
|
269
|
+
|
|
270
|
+
### Types
|
|
271
|
+
|
|
272
|
+
- `HclValue` - Union type for all valid HCL values
|
|
273
|
+
- `HclExpression` - Raw HCL expression (not quoted)
|
|
274
|
+
- `TerraformConfig` - Complete Terraform configuration
|
|
275
|
+
- `ResourceConfig` - Resource block configuration
|
|
276
|
+
- `VariableConfig` - Variable block configuration
|
|
277
|
+
- `OutputConfig` - Output block configuration
|
|
278
|
+
- `BackendConfig` - Backend configuration
|
|
279
|
+
|
|
280
|
+
### HCL Generation
|
|
281
|
+
|
|
282
|
+
- `toHcl(value)` - Convert value to HCL string
|
|
283
|
+
- `formatBlock(block)` - Format a Terraform block
|
|
284
|
+
- `generateTerraformConfig(config)` - Generate complete .tf content
|
|
285
|
+
- `generateTerraformFile(config)` - Generate with header
|
|
286
|
+
- `generateTerraformFiles(config)` - Generate split files
|
|
287
|
+
|
|
288
|
+
### Config Builders
|
|
289
|
+
|
|
290
|
+
- `terraform()` - Create config builder
|
|
291
|
+
- `tfvars()` - Create tfvars builder
|
|
292
|
+
- `backend(type)` - Create backend builder
|
|
293
|
+
|
|
294
|
+
### Backend Helpers
|
|
295
|
+
|
|
296
|
+
- `s3Backend(options)` - S3 backend
|
|
297
|
+
- `gcsBackend(options)` - GCS backend
|
|
298
|
+
- `azureBackend(options)` - Azure backend
|
|
299
|
+
- `terraformCloudBackend(options)` - Terraform Cloud
|
|
300
|
+
- `localBackend(path)` - Local backend
|
|
301
|
+
|
|
302
|
+
### Cloudflare Helpers
|
|
303
|
+
|
|
304
|
+
- `cloudflareWorkerScript(config)` - Worker script resource
|
|
305
|
+
- `cloudflareKvNamespace(config)` - KV namespace resource
|
|
306
|
+
- `cloudflareD1Database(config)` - D1 database resource
|
|
307
|
+
- `cloudflareR2Bucket(config)` - R2 bucket resource
|
|
308
|
+
- Reference helpers: `kvNamespaceRef`, `d1DatabaseRef`, `r2BucketRef`, `workerScriptRef`
|
|
309
|
+
|
|
310
|
+
## License
|
|
311
|
+
|
|
312
|
+
MIT
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { BackendConfig, HclValue } from '../types/config';
|
|
2
|
+
/**
|
|
3
|
+
* Backend configuration builder
|
|
4
|
+
*/
|
|
5
|
+
export declare class BackendBuilder {
|
|
6
|
+
private type;
|
|
7
|
+
private config;
|
|
8
|
+
constructor(type: string);
|
|
9
|
+
/**
|
|
10
|
+
* Set a configuration option
|
|
11
|
+
*/
|
|
12
|
+
set(key: string, value: HclValue): this;
|
|
13
|
+
/**
|
|
14
|
+
* Set multiple configuration options
|
|
15
|
+
*/
|
|
16
|
+
setAll(config: Record<string, HclValue>): this;
|
|
17
|
+
/**
|
|
18
|
+
* Build the backend configuration
|
|
19
|
+
*/
|
|
20
|
+
build(): BackendConfig;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a backend builder
|
|
24
|
+
*/
|
|
25
|
+
export declare function backend(type: string): BackendBuilder;
|
|
26
|
+
/**
|
|
27
|
+
* S3 backend builder with type-safe options
|
|
28
|
+
*/
|
|
29
|
+
export interface S3BackendOptions {
|
|
30
|
+
bucket: string;
|
|
31
|
+
key: string;
|
|
32
|
+
region: string;
|
|
33
|
+
encrypt?: boolean;
|
|
34
|
+
dynamodb_table?: string;
|
|
35
|
+
workspace_key_prefix?: string;
|
|
36
|
+
acl?: string;
|
|
37
|
+
skip_credentials_validation?: boolean;
|
|
38
|
+
skip_metadata_api_check?: boolean;
|
|
39
|
+
skip_region_validation?: boolean;
|
|
40
|
+
profile?: string;
|
|
41
|
+
role_arn?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create an S3 backend configuration
|
|
45
|
+
*/
|
|
46
|
+
export declare function s3Backend(options: S3BackendOptions): BackendConfig;
|
|
47
|
+
/**
|
|
48
|
+
* GCS backend options
|
|
49
|
+
*/
|
|
50
|
+
export interface GcsBackendOptions {
|
|
51
|
+
bucket: string;
|
|
52
|
+
prefix?: string;
|
|
53
|
+
credentials?: string;
|
|
54
|
+
encryption_key?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a GCS backend configuration
|
|
58
|
+
*/
|
|
59
|
+
export declare function gcsBackend(options: GcsBackendOptions): BackendConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Azure backend options
|
|
62
|
+
*/
|
|
63
|
+
export interface AzureBackendOptions {
|
|
64
|
+
resource_group_name: string;
|
|
65
|
+
storage_account_name: string;
|
|
66
|
+
container_name: string;
|
|
67
|
+
key: string;
|
|
68
|
+
access_key?: string;
|
|
69
|
+
sas_token?: string;
|
|
70
|
+
use_oidc?: boolean;
|
|
71
|
+
subscription_id?: string;
|
|
72
|
+
tenant_id?: string;
|
|
73
|
+
client_id?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create an Azure backend configuration
|
|
77
|
+
*/
|
|
78
|
+
export declare function azureBackend(options: AzureBackendOptions): BackendConfig;
|
|
79
|
+
/**
|
|
80
|
+
* Terraform Cloud backend options
|
|
81
|
+
*/
|
|
82
|
+
export interface TerraformCloudOptions {
|
|
83
|
+
organization: string;
|
|
84
|
+
workspaces: {
|
|
85
|
+
name: string;
|
|
86
|
+
} | {
|
|
87
|
+
tags: string[];
|
|
88
|
+
} | {
|
|
89
|
+
project: string;
|
|
90
|
+
};
|
|
91
|
+
hostname?: string;
|
|
92
|
+
token?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create a Terraform Cloud backend configuration
|
|
96
|
+
*/
|
|
97
|
+
export declare function terraformCloudBackend(options: TerraformCloudOptions): BackendConfig;
|
|
98
|
+
/**
|
|
99
|
+
* Create a local backend configuration
|
|
100
|
+
*/
|
|
101
|
+
export declare function localBackend(path?: string): BackendConfig;
|
|
102
|
+
/**
|
|
103
|
+
* Consul backend options
|
|
104
|
+
*/
|
|
105
|
+
export interface ConsulBackendOptions {
|
|
106
|
+
address: string;
|
|
107
|
+
path: string;
|
|
108
|
+
scheme?: 'http' | 'https';
|
|
109
|
+
datacenter?: string;
|
|
110
|
+
access_token?: string;
|
|
111
|
+
gzip?: boolean;
|
|
112
|
+
lock?: boolean;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a Consul backend configuration
|
|
116
|
+
*/
|
|
117
|
+
export declare function consulBackend(options: ConsulBackendOptions): BackendConfig;
|
|
118
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/config/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend configuration builder
|
|
3
|
+
*/
|
|
4
|
+
export class BackendBuilder {
|
|
5
|
+
constructor(type) {
|
|
6
|
+
this.config = {};
|
|
7
|
+
this.type = type;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Set a configuration option
|
|
11
|
+
*/
|
|
12
|
+
set(key, value) {
|
|
13
|
+
this.config[key] = value;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Set multiple configuration options
|
|
18
|
+
*/
|
|
19
|
+
setAll(config) {
|
|
20
|
+
Object.assign(this.config, config);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the backend configuration
|
|
25
|
+
*/
|
|
26
|
+
build() {
|
|
27
|
+
return {
|
|
28
|
+
type: this.type,
|
|
29
|
+
config: this.config,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a backend builder
|
|
35
|
+
*/
|
|
36
|
+
export function backend(type) {
|
|
37
|
+
return new BackendBuilder(type);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create an S3 backend configuration
|
|
41
|
+
*/
|
|
42
|
+
export function s3Backend(options) {
|
|
43
|
+
const config = {
|
|
44
|
+
bucket: options.bucket,
|
|
45
|
+
key: options.key,
|
|
46
|
+
region: options.region,
|
|
47
|
+
};
|
|
48
|
+
if (options.encrypt !== undefined)
|
|
49
|
+
config.encrypt = options.encrypt;
|
|
50
|
+
if (options.dynamodb_table)
|
|
51
|
+
config.dynamodb_table = options.dynamodb_table;
|
|
52
|
+
if (options.workspace_key_prefix)
|
|
53
|
+
config.workspace_key_prefix = options.workspace_key_prefix;
|
|
54
|
+
if (options.acl)
|
|
55
|
+
config.acl = options.acl;
|
|
56
|
+
if (options.skip_credentials_validation !== undefined) {
|
|
57
|
+
config.skip_credentials_validation = options.skip_credentials_validation;
|
|
58
|
+
}
|
|
59
|
+
if (options.skip_metadata_api_check !== undefined) {
|
|
60
|
+
config.skip_metadata_api_check = options.skip_metadata_api_check;
|
|
61
|
+
}
|
|
62
|
+
if (options.skip_region_validation !== undefined) {
|
|
63
|
+
config.skip_region_validation = options.skip_region_validation;
|
|
64
|
+
}
|
|
65
|
+
if (options.profile)
|
|
66
|
+
config.profile = options.profile;
|
|
67
|
+
if (options.role_arn)
|
|
68
|
+
config.role_arn = options.role_arn;
|
|
69
|
+
return { type: 's3', config };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a GCS backend configuration
|
|
73
|
+
*/
|
|
74
|
+
export function gcsBackend(options) {
|
|
75
|
+
const config = {
|
|
76
|
+
bucket: options.bucket,
|
|
77
|
+
};
|
|
78
|
+
if (options.prefix)
|
|
79
|
+
config.prefix = options.prefix;
|
|
80
|
+
if (options.credentials)
|
|
81
|
+
config.credentials = options.credentials;
|
|
82
|
+
if (options.encryption_key)
|
|
83
|
+
config.encryption_key = options.encryption_key;
|
|
84
|
+
return { type: 'gcs', config };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create an Azure backend configuration
|
|
88
|
+
*/
|
|
89
|
+
export function azureBackend(options) {
|
|
90
|
+
const config = {
|
|
91
|
+
resource_group_name: options.resource_group_name,
|
|
92
|
+
storage_account_name: options.storage_account_name,
|
|
93
|
+
container_name: options.container_name,
|
|
94
|
+
key: options.key,
|
|
95
|
+
};
|
|
96
|
+
if (options.access_key)
|
|
97
|
+
config.access_key = options.access_key;
|
|
98
|
+
if (options.sas_token)
|
|
99
|
+
config.sas_token = options.sas_token;
|
|
100
|
+
if (options.use_oidc !== undefined)
|
|
101
|
+
config.use_oidc = options.use_oidc;
|
|
102
|
+
if (options.subscription_id)
|
|
103
|
+
config.subscription_id = options.subscription_id;
|
|
104
|
+
if (options.tenant_id)
|
|
105
|
+
config.tenant_id = options.tenant_id;
|
|
106
|
+
if (options.client_id)
|
|
107
|
+
config.client_id = options.client_id;
|
|
108
|
+
return { type: 'azurerm', config };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a Terraform Cloud backend configuration
|
|
112
|
+
*/
|
|
113
|
+
export function terraformCloudBackend(options) {
|
|
114
|
+
const config = {
|
|
115
|
+
organization: options.organization,
|
|
116
|
+
workspaces: options.workspaces,
|
|
117
|
+
};
|
|
118
|
+
if (options.hostname)
|
|
119
|
+
config.hostname = options.hostname;
|
|
120
|
+
if (options.token)
|
|
121
|
+
config.token = options.token;
|
|
122
|
+
return { type: 'cloud', config };
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Create a local backend configuration
|
|
126
|
+
*/
|
|
127
|
+
export function localBackend(path) {
|
|
128
|
+
return {
|
|
129
|
+
type: 'local',
|
|
130
|
+
config: path ? { path } : {},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Create a Consul backend configuration
|
|
135
|
+
*/
|
|
136
|
+
export function consulBackend(options) {
|
|
137
|
+
const config = {
|
|
138
|
+
address: options.address,
|
|
139
|
+
path: options.path,
|
|
140
|
+
};
|
|
141
|
+
if (options.scheme)
|
|
142
|
+
config.scheme = options.scheme;
|
|
143
|
+
if (options.datacenter)
|
|
144
|
+
config.datacenter = options.datacenter;
|
|
145
|
+
if (options.access_token)
|
|
146
|
+
config.access_token = options.access_token;
|
|
147
|
+
if (options.gzip !== undefined)
|
|
148
|
+
config.gzip = options.gzip;
|
|
149
|
+
if (options.lock !== undefined)
|
|
150
|
+
config.lock = options.lock;
|
|
151
|
+
return { type: 'consul', config };
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/config/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { TerraformConfigBuilder, terraform, backends, providers } from './terraform';
|
|
2
|
+
export { generateTfvars, generateEnvTfvars, TfvarsBuilder, tfvars, mergeTfvars, tfvarsFromEnv, } from './tfvars';
|
|
3
|
+
export type { TfvarsConfig } from './tfvars';
|
|
4
|
+
export { BackendBuilder, backend, s3Backend, gcsBackend, azureBackend, terraformCloudBackend, localBackend, consulBackend, } from './backend';
|
|
5
|
+
export type { S3BackendOptions, GcsBackendOptions, AzureBackendOptions, TerraformCloudOptions, ConsulBackendOptions, } from './backend';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TerraformConfigBuilder, terraform, backends, providers } from './terraform';
|
|
2
|
+
export { generateTfvars, generateEnvTfvars, TfvarsBuilder, tfvars, mergeTfvars, tfvarsFromEnv, } from './tfvars';
|
|
3
|
+
export { BackendBuilder, backend, s3Backend, gcsBackend, azureBackend, terraformCloudBackend, localBackend, consulBackend, } from './backend';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC"}
|