@swovohq/fuel 0.2.2-alpha.87 → 0.2.2-alpha.88

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.
Files changed (71) hide show
  1. package/dist/bin/fuel.js +10 -31
  2. package/dist/bin/fuel.js.map +1 -1
  3. package/dist/commands/config-verify.d.ts.map +1 -1
  4. package/dist/commands/config-verify.js +14 -6
  5. package/dist/commands/config-verify.js.map +1 -1
  6. package/dist/commands/create-app.d.ts.map +1 -1
  7. package/dist/commands/create-app.js +1 -0
  8. package/dist/commands/create-app.js.map +1 -1
  9. package/dist/commands/infra-deploy.d.ts +4 -0
  10. package/dist/commands/infra-deploy.d.ts.map +1 -1
  11. package/dist/commands/infra-deploy.js +72 -43
  12. package/dist/commands/infra-deploy.js.map +1 -1
  13. package/dist/commands/infra-destroy.js +3 -3
  14. package/dist/commands/infra-destroy.js.map +1 -1
  15. package/dist/commands/infra-init.d.ts +91 -0
  16. package/dist/commands/infra-init.d.ts.map +1 -1
  17. package/dist/commands/infra-init.js +451 -78
  18. package/dist/commands/infra-init.js.map +1 -1
  19. package/dist/commands/infra-pull.d.ts.map +1 -1
  20. package/dist/commands/infra-pull.js +6 -5
  21. package/dist/commands/infra-pull.js.map +1 -1
  22. package/dist/infra/azure-defaults.d.ts +49 -0
  23. package/dist/infra/azure-defaults.d.ts.map +1 -0
  24. package/dist/infra/azure-defaults.js +52 -0
  25. package/dist/infra/azure-defaults.js.map +1 -0
  26. package/dist/infra/azure-keyvault-client.d.ts +4 -0
  27. package/dist/infra/azure-keyvault-client.d.ts.map +1 -0
  28. package/dist/infra/azure-keyvault-client.js +57 -0
  29. package/dist/infra/azure-keyvault-client.js.map +1 -0
  30. package/dist/infra/azure-rbac.d.ts +11 -0
  31. package/dist/infra/azure-rbac.d.ts.map +1 -0
  32. package/dist/infra/azure-rbac.js +47 -0
  33. package/dist/infra/azure-rbac.js.map +1 -0
  34. package/dist/infra/azure-state-storage.d.ts +20 -0
  35. package/dist/infra/azure-state-storage.d.ts.map +1 -0
  36. package/dist/infra/azure-state-storage.js +229 -0
  37. package/dist/infra/azure-state-storage.js.map +1 -0
  38. package/dist/infra/credentials.d.ts +2 -2
  39. package/dist/infra/credentials.d.ts.map +1 -1
  40. package/dist/infra/credentials.js +3 -2
  41. package/dist/infra/credentials.js.map +1 -1
  42. package/dist/infra/deployment-detect.d.ts +9 -0
  43. package/dist/infra/deployment-detect.d.ts.map +1 -0
  44. package/dist/infra/deployment-detect.js +53 -0
  45. package/dist/infra/deployment-detect.js.map +1 -0
  46. package/dist/infra/github-client.d.ts.map +1 -1
  47. package/dist/infra/github-client.js +1 -4
  48. package/dist/infra/github-client.js.map +1 -1
  49. package/dist/infra/orchestrator.d.ts.map +1 -1
  50. package/dist/infra/orchestrator.js +193 -65
  51. package/dist/infra/orchestrator.js.map +1 -1
  52. package/dist/infra/preflight.js +11 -11
  53. package/dist/infra/preflight.js.map +1 -1
  54. package/dist/infra/remote-secret.d.ts +14 -0
  55. package/dist/infra/remote-secret.d.ts.map +1 -0
  56. package/dist/infra/remote-secret.js +42 -0
  57. package/dist/infra/remote-secret.js.map +1 -0
  58. package/dist/infra/template-engine.d.ts +13 -0
  59. package/dist/infra/template-engine.d.ts.map +1 -1
  60. package/dist/infra/template-engine.js +106 -38
  61. package/dist/infra/template-engine.js.map +1 -1
  62. package/dist/infra/tofu-runner.d.ts +4 -3
  63. package/dist/infra/tofu-runner.d.ts.map +1 -1
  64. package/dist/infra/tofu-runner.js +36 -27
  65. package/dist/infra/tofu-runner.js.map +1 -1
  66. package/dist/infra/types.d.ts +239 -16
  67. package/dist/infra/types.d.ts.map +1 -1
  68. package/dist/infra/types.js +153 -17
  69. package/dist/infra/types.js.map +1 -1
  70. package/package.json +10 -2
  71. package/schema/fuel.schema.json +528 -83
@@ -41,13 +41,17 @@ exports.serializeTfvars = serializeTfvars;
41
41
  exports.patchMainTf = patchMainTf;
42
42
  exports.patchBackendTf = patchBackendTf;
43
43
  exports.patchDefaultTfvars = patchDefaultTfvars;
44
+ exports.patchAzureBackendTf = patchAzureBackendTf;
45
+ exports.patchAzureDefaultTfvars = patchAzureDefaultTfvars;
44
46
  exports.pruneUnusedModules = pruneUnusedModules;
47
+ exports.acrNameFor = acrNameFor;
45
48
  exports.copyWorkflowFiles = copyWorkflowFiles;
46
49
  exports.generateInfra = generateInfra;
47
50
  const chalk_1 = __importDefault(require("chalk"));
48
51
  const fs = __importStar(require("fs-extra"));
49
52
  const path = __importStar(require("path"));
50
53
  const s3_state_bucket_1 = require("./s3-state-bucket");
54
+ const azure_state_storage_1 = require("./azure-state-storage");
51
55
  // Modules that must never be removed during pruning, regardless of main.tf references
52
56
  const MODULES_DONT_REMOVE = ['secret-main'];
53
57
  function slugify(name) {
@@ -116,7 +120,39 @@ async function patchDefaultTfvars(infraRoot, config, credentials) {
116
120
  vars['aws_region'] = credentials.AWS_REGION;
117
121
  vars['db_username'] = slugify(config.name);
118
122
  vars['db_name'] = slugify(config.name);
119
- vars['github_repo_name'] = `${config.name}-monorepo`;
123
+ vars['github_repo_name'] = config.github_repo_name ?? `${config.name}-monorepo`;
124
+ await fs.writeFile(filePath, serializeTfvars(vars), 'utf8');
125
+ }
126
+ /**
127
+ * Patch backend.tf (azurerm backend): replace {resource_group_name}, {storage_account_name},
128
+ * {container_name} placeholders.
129
+ */
130
+ async function patchAzureBackendTf(infraRoot, resourceGroupName, storageAccountName, containerName) {
131
+ const filePath = path.join(infraRoot, 'backend.tf');
132
+ const content = await fs.readFile(filePath, 'utf8');
133
+ const patched = content
134
+ .replaceAll('{resource_group_name}', resourceGroupName)
135
+ .replaceAll('{storage_account_name}', storageAccountName)
136
+ .replaceAll('{container_name}', containerName);
137
+ await fs.writeFile(filePath, patched, 'utf8');
138
+ }
139
+ /**
140
+ * Patch default.tfvars for the azure template: project_name, location, github_repo_name,
141
+ * db_username/db_name (used only when an app enables the Postgres engine).
142
+ */
143
+ async function patchAzureDefaultTfvars(infraRoot, config) {
144
+ const filePath = path.join(infraRoot, 'default.tfvars');
145
+ const content = await fs.readFile(filePath, 'utf8');
146
+ const vars = parseTfvars(content);
147
+ const suffix = (0, s3_state_bucket_1.deriveSuffix)(config.name);
148
+ vars['project_name'] = config.name;
149
+ vars['location'] = config.location;
150
+ vars['db_username'] = slugify(config.name);
151
+ vars['db_name'] = slugify(config.name);
152
+ vars['github_repo_name'] = config.github_repo_name ?? `${config.name}-monorepo`;
153
+ vars['resource_group_name'] = (0, azure_state_storage_1.buildResourceGroupName)(config.name);
154
+ vars['key_vault_name'] = (0, azure_state_storage_1.buildKeyVaultName)(config.name, suffix);
155
+ vars['acr_name'] = acrNameFor(config.name);
120
156
  await fs.writeFile(filePath, serializeTfvars(vars), 'utf8');
121
157
  }
122
158
  /**
@@ -141,6 +177,53 @@ async function pruneUnusedModules(infraRoot) {
141
177
  }
142
178
  }
143
179
  }
180
+ /** Applies REPLACEME/DOCKERFILE/BUILDARGS/BRANCHREPLACE/PATHSREPLACE/SECRETNAME + any extra tokens to a workflow template. */
181
+ function applySubstitutions(template, name, dockerfile, buildEnv, branch, secretName, extraTokens = {}) {
182
+ const buildArgLines = buildEnv && Object.keys(buildEnv).length > 0
183
+ ? Object.entries(buildEnv).map(([k, v]) => `${k}=${v}`)
184
+ : [];
185
+ const buildArgsIndent = template.match(/^(\s*)BUILDARGS$/m)?.[1] ?? '';
186
+ const buildArgs = buildArgLines.join(`\n${buildArgsIndent}`);
187
+ const appDir = dockerfile.split('/').slice(0, -1).join('/');
188
+ const pathsIndent = template.match(/^(\s*- )PATHSREPLACE$/m)?.[1] ?? ' - ';
189
+ const pathsList = [
190
+ ...(appDir ? [`'${appDir}/**'`] : []),
191
+ `'packages/**'`,
192
+ `'infra/**'`,
193
+ `'yarn.lock'`,
194
+ `'turbo.json'`,
195
+ `'.github/workflows/${name}.yaml'`
196
+ ];
197
+ const pathsValue = pathsList.join(`\n${pathsIndent}`);
198
+ let result = template
199
+ .replaceAll('REPLACEME', name)
200
+ .replaceAll('DOCKERFILE', dockerfile)
201
+ .replaceAll('BUILDARGS', buildArgs)
202
+ .replaceAll('BRANCHREPLACE', branch)
203
+ .replaceAll('PATHSREPLACE', pathsValue)
204
+ .replaceAll('SECRETNAME', secretName);
205
+ for (const [token, value] of Object.entries(extraTokens)) {
206
+ result = result.replaceAll(token, value);
207
+ }
208
+ return result;
209
+ }
210
+ function acrNameFor(projectName) {
211
+ return `${projectName.replace(/[^a-z0-9]/gi, '').toLowerCase()}acr`.slice(0, 50);
212
+ }
213
+ /** Copies build_and_deploy.yml (Container Apps) for the azure deployment. */
214
+ async function copyAzureWorkflows(workflowsDir, config, templateDir) {
215
+ const containerAppTemplate = await fs.readFile(path.join(templateDir, 'build_and_deploy.yml'), 'utf8');
216
+ const resourceGroup = (0, azure_state_storage_1.buildResourceGroupName)(config.name);
217
+ const acrName = acrNameFor(config.name);
218
+ for (const app of config.apps) {
219
+ const content = applySubstitutions(containerAppTemplate, app.name, app.dockerfile ?? 'Dockerfile', app.build_env, app.branch ?? 'main', `${app.name}-secrets`, { ACR_NAME: acrName, RESOURCE_GROUP: resourceGroup, CONTAINER_APP_NAME: app.name });
220
+ await fs.writeFile(path.join(workflowsDir, `${app.name}.yaml`), content, 'utf8');
221
+ for (const worker of app.workers ?? []) {
222
+ const workerContent = applySubstitutions(containerAppTemplate, worker.name, worker.dockerfile ?? 'Dockerfile', app.build_env, app.branch ?? 'main', `${app.name}-secrets`, { ACR_NAME: acrName, RESOURCE_GROUP: resourceGroup, CONTAINER_APP_NAME: worker.name });
223
+ await fs.writeFile(path.join(workflowsDir, `${worker.name}.yaml`), workerContent, 'utf8');
224
+ }
225
+ }
226
+ }
144
227
  /**
145
228
  * Copy GitHub Actions workflow files into <projectDir>/.github/workflows/.
146
229
  * Replaces what Terraform's github_repository_file resources used to do.
@@ -148,39 +231,14 @@ async function pruneUnusedModules(infraRoot) {
148
231
  async function copyWorkflowFiles(projectDir, config, infraSrcRoot) {
149
232
  const workflowsDir = path.join(projectDir, '.github', 'workflows');
150
233
  await fs.ensureDir(workflowsDir);
151
- // Read template files
152
- const deployTemplatePath = path.join(infraSrcRoot, 'templates', 'ecs', 'workflows', 'build_and_deploy.yml');
153
- const testsTemplatePath = path.join(infraSrcRoot, 'templates', 'ecs', 'workflows', 'tests.yml');
154
- const deployTemplate = await fs.readFile(deployTemplatePath, 'utf8');
155
- const testsContent = await fs.readFile(testsTemplatePath, 'utf8');
156
- // Copy tests.yml as-is
234
+ const templateDir = path.join(infraSrcRoot, 'templates', config.deployment, 'workflows');
235
+ const testsContent = await fs.readFile(path.join(templateDir, 'tests.yml'), 'utf8');
157
236
  await fs.writeFile(path.join(workflowsDir, 'tests.yml'), testsContent, 'utf8');
158
- // Helper: apply substitutions for a given service entry
159
- function applySubstitutions(template, name, dockerfile, buildEnv, branch, secretName) {
160
- const buildArgLines = buildEnv && Object.keys(buildEnv).length > 0
161
- ? Object.entries(buildEnv).map(([k, v]) => `${k}=${v}`)
162
- : [];
163
- const buildArgsIndent = template.match(/^(\s*)BUILDARGS$/m)?.[1] ?? '';
164
- const buildArgs = buildArgLines.join(`\n${buildArgsIndent}`);
165
- const appDir = dockerfile.split('/').slice(0, -1).join('/');
166
- const pathsIndent = template.match(/^(\s*- )PATHSREPLACE$/m)?.[1] ?? ' - ';
167
- const pathsList = [
168
- ...(appDir ? [`'${appDir}/**'`] : []),
169
- `'packages/**'`,
170
- `'infra/**'`,
171
- `'yarn.lock'`,
172
- `'turbo.json'`,
173
- `'.github/workflows/${name}.yaml'`
174
- ];
175
- const pathsValue = pathsList.join(`\n${pathsIndent}`);
176
- return template
177
- .replaceAll('REPLACEME', name)
178
- .replaceAll('DOCKERFILE', dockerfile)
179
- .replaceAll('BUILDARGS', buildArgs)
180
- .replaceAll('BRANCHREPLACE', branch)
181
- .replaceAll('PATHSREPLACE', pathsValue)
182
- .replaceAll('SECRETNAME', secretName);
237
+ if (config.deployment === 'azure') {
238
+ await copyAzureWorkflows(workflowsDir, config, templateDir);
239
+ return;
183
240
  }
241
+ const deployTemplate = await fs.readFile(path.join(templateDir, 'build_and_deploy.yml'), 'utf8');
184
242
  // Write a workflow file per app
185
243
  for (const app of config.apps) {
186
244
  const content = applySubstitutions(deployTemplate, app.name, app.dockerfile ?? 'Dockerfile', app.build_env, app.branch ?? 'main', `${app.name}-secrets`);
@@ -205,14 +263,14 @@ async function generateInfra(targetRoot, config, credentials, infraSourcePath) {
205
263
  process.env.FUEL_INFRA_PATH ??
206
264
  path.resolve(__dirname, '..', '..', '..', 'infra');
207
265
  const infraRoot = path.join(targetRoot, 'infra');
208
- const templateSrc = path.join(infraSourceRoot, 'templates', 'ecs');
266
+ const templateSrc = path.join(infraSourceRoot, 'templates', config.deployment);
209
267
  const modulesSrc = path.join(infraSourceRoot, 'modules');
210
268
  if (!(await fs.pathExists(templateSrc))) {
211
269
  throw new Error(`Template source not found: ${templateSrc}. ` +
212
270
  `Set FUEL_INFRA_PATH env var or ensure packages/infra exists in the monorepo.`);
213
271
  }
214
272
  console.log(chalk_1.default.cyan(' Generating infra folder...'));
215
- // Step 1: Copy all ECS template files into <project>/infra/ (excluding workflows/ — handled in step 7)
273
+ // Step 1: Copy all template files into <project>/infra/ (excluding workflows/ — handled in step 7)
216
274
  await fs.copy(templateSrc, infraRoot, {
217
275
  filter: (src) => !src.includes(`${path.sep}workflows`)
218
276
  });
@@ -220,11 +278,21 @@ async function generateInfra(targetRoot, config, credentials, infraSourcePath) {
220
278
  await fs.copy(modulesSrc, path.join(infraRoot, 'modules'));
221
279
  // Step 3: Patch main.tf — replace ../../modules with ./modules
222
280
  await patchMainTf(infraRoot);
223
- // Step 4: Patch backend.tf — replace {project_name}, {aws_region}, and {unique_suffix}
224
281
  const suffix = (0, s3_state_bucket_1.deriveSuffix)(config.name);
225
- await patchBackendTf(infraRoot, config.name, credentials.AWS_REGION, suffix);
226
- // Step 5: Patch default.tfvarsfill ssl, project_name, aws_region, db_password
227
- await patchDefaultTfvars(infraRoot, config, credentials);
282
+ if (config.deployment === 'azure') {
283
+ // Step 4 (azure): Patch backend.tfreplace {resource_group_name}, {storage_account_name}, {container_name}
284
+ const resourceGroupName = (0, azure_state_storage_1.buildResourceGroupName)(config.name);
285
+ const storageAccountName = (0, azure_state_storage_1.buildStateStorageAccountName)(config.name, suffix);
286
+ await patchAzureBackendTf(infraRoot, resourceGroupName, storageAccountName, azure_state_storage_1.STATE_CONTAINER_NAME);
287
+ // Step 5 (azure): Patch default.tfvars — fill project_name, location, github_repo_name
288
+ await patchAzureDefaultTfvars(infraRoot, config);
289
+ }
290
+ else {
291
+ // Step 4: Patch backend.tf — replace {project_name}, {aws_region}, and {unique_suffix}
292
+ await patchBackendTf(infraRoot, config.name, credentials.AWS_REGION, suffix);
293
+ // Step 5: Patch default.tfvars — fill ssl, project_name, aws_region, db_password
294
+ await patchDefaultTfvars(infraRoot, config, credentials);
295
+ }
228
296
  // Step 6: Prune modules not referenced in patched main.tf
229
297
  await pruneUnusedModules(infraRoot);
230
298
  // Step 7: Copy GitHub Actions workflow files into <project>/.github/workflows/
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Credentials } from './types';
1
+ import { Credentials, Deployment } from './types';
2
2
  export interface TofuRunResult {
3
3
  success: boolean;
4
4
  outputs: Record<string, {
@@ -16,8 +16,9 @@ export declare class TofuApplyError extends Error {
16
16
  }
17
17
  export interface TofuSequenceOptions {
18
18
  planOnly?: boolean;
19
+ deployment?: Deployment;
19
20
  }
20
- export declare function buildDestroyArgs(credentials: Credentials, tofuVars: TofuVars): string[];
21
- export declare function runTofuDestroy(infraDir: string, credentials: Credentials, tofuVars: TofuVars): Promise<void>;
21
+ export declare function buildDestroyArgs(credentials: Credentials, tofuVars: TofuVars, deployment?: Deployment): string[];
22
+ export declare function runTofuDestroy(infraDir: string, credentials: Credentials, tofuVars: TofuVars, deployment?: Deployment): Promise<void>;
22
23
  export declare function runTofuApply(infraDir: string, credentials: Credentials, tofuVars?: TofuVars, options?: TofuSequenceOptions): Promise<TofuRunResult>;
23
24
  //# sourceMappingURL=tofu-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tofu-runner.d.ts","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwGD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,MAAM,EAAE,CAMV;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA8CxB"}
1
+ {"version":3,"file":"tofu-runner.d.ts","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGjD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAiCD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAuHD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,UAAU,GAAE,UAAkB,GAC7B,MAAM,EAAE,CAMV;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,UAAU,GAAE,UAAkB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA+CxB"}
@@ -29,37 +29,45 @@ const TRANSIENT_PATTERNS = [
29
29
  function isTransient(output) {
30
30
  return TRANSIENT_PATTERNS.some((pattern) => pattern.test(output));
31
31
  }
32
- function buildAwsEnv(credentials) {
32
+ function buildProviderEnv(deployment, credentials) {
33
+ if (deployment === 'azure') {
34
+ return {
35
+ ARM_SUBSCRIPTION_ID: credentials.AZURE_SUBSCRIPTION_ID,
36
+ ARM_TENANT_ID: credentials.AZURE_TENANT_ID,
37
+ ARM_CLIENT_ID: credentials.AZURE_CLIENT_ID,
38
+ ARM_CLIENT_SECRET: credentials.AZURE_CLIENT_SECRET,
39
+ };
40
+ }
33
41
  return {
34
42
  AWS_ACCESS_KEY_ID: credentials.AWS_ACCESS_KEY_ID,
35
43
  AWS_SECRET_ACCESS_KEY: credentials.AWS_SECRET_ACCESS_KEY,
36
44
  AWS_REGION: credentials.AWS_REGION,
37
45
  };
38
46
  }
39
- function buildVarArgs(credentials, tofuVars) {
40
- const args = [
41
- '-var-file=default.tfvars',
42
- `-var=aws_access_key_id=${credentials.AWS_ACCESS_KEY_ID}`,
43
- `-var=aws_secret_access_key=${credentials.AWS_SECRET_ACCESS_KEY}`,
44
- `-var=aws_region=${credentials.AWS_REGION}`,
45
- `-var=github_organization=${credentials.GITHUB_ORGANIZATION}`,
46
- ];
47
+ function buildVarArgs(deployment, credentials, tofuVars) {
48
+ const args = ['-var-file=default.tfvars'];
49
+ if (deployment === 'azure') {
50
+ args.push(`-var=azure_subscription_id=${credentials.AZURE_SUBSCRIPTION_ID}`, `-var=azure_tenant_id=${credentials.AZURE_TENANT_ID}`, `-var=azure_client_id=${credentials.AZURE_CLIENT_ID}`, `-var=azure_client_secret=${credentials.AZURE_CLIENT_SECRET}`, `-var=github_organization=${credentials.GITHUB_ORGANIZATION}`);
51
+ }
52
+ else {
53
+ args.push(`-var=aws_access_key_id=${credentials.AWS_ACCESS_KEY_ID}`, `-var=aws_secret_access_key=${credentials.AWS_SECRET_ACCESS_KEY}`, `-var=aws_region=${credentials.AWS_REGION}`, `-var=github_organization=${credentials.GITHUB_ORGANIZATION}`);
54
+ }
47
55
  if (tofuVars) {
48
56
  args.push(`-var=db_username=${tofuVars.db_username}`, `-var=db_name=${tofuVars.db_name}`, `-var=github_repo_name=${tofuVars.github_repo_name}`);
49
57
  }
50
58
  return args;
51
59
  }
52
- function buildApplyArgs(credentials, tofuVars) {
60
+ function buildApplyArgs(deployment, credentials, tofuVars) {
53
61
  return [
54
62
  'apply',
55
63
  '-auto-approve',
56
- ...buildVarArgs(credentials, tofuVars),
64
+ ...buildVarArgs(deployment, credentials, tofuVars),
57
65
  ];
58
66
  }
59
- function buildPlanArgs(credentials, tofuVars) {
67
+ function buildPlanArgs(deployment, credentials, tofuVars) {
60
68
  return [
61
69
  'plan',
62
- ...buildVarArgs(credentials, tofuVars),
70
+ ...buildVarArgs(deployment, credentials, tofuVars),
63
71
  ];
64
72
  }
65
73
  async function runApplyWithRetry(args, cwd, env) {
@@ -103,18 +111,18 @@ async function collectOutputs(infraDir, env) {
103
111
  });
104
112
  });
105
113
  }
106
- function buildDestroyArgs(credentials, tofuVars) {
114
+ function buildDestroyArgs(credentials, tofuVars, deployment = 'ecs') {
107
115
  return [
108
116
  'destroy',
109
117
  '-auto-approve',
110
- ...buildVarArgs(credentials, tofuVars),
118
+ ...buildVarArgs(deployment, credentials, tofuVars),
111
119
  ];
112
120
  }
113
- async function runTofuDestroy(infraDir, credentials, tofuVars) {
114
- const awsEnv = buildAwsEnv(credentials);
121
+ async function runTofuDestroy(infraDir, credentials, tofuVars, deployment = 'ecs') {
122
+ const providerEnv = buildProviderEnv(deployment, credentials);
115
123
  // Initialize OpenTofu
116
124
  console.log(chalk_1.default.cyan('--- Initializing OpenTofu ---'));
117
- const { code: initCode } = await (0, subprocess_1.spawnStreaming)(['init'], infraDir, awsEnv);
125
+ const { code: initCode } = await (0, subprocess_1.spawnStreaming)(['init'], infraDir, providerEnv);
118
126
  if (initCode !== 0) {
119
127
  console.error(chalk_1.default.red('✗ OpenTofu init failed'));
120
128
  process.exit(1);
@@ -122,18 +130,19 @@ async function runTofuDestroy(infraDir, credentials, tofuVars) {
122
130
  console.log(chalk_1.default.green('✓ OpenTofu initialized'));
123
131
  // Run destroy
124
132
  console.log(chalk_1.default.cyan('--- Destroying infrastructure ---'));
125
- const args = buildDestroyArgs(credentials, tofuVars);
126
- const { code } = await (0, subprocess_1.spawnStreaming)(args, infraDir, awsEnv);
133
+ const args = buildDestroyArgs(credentials, tofuVars, deployment);
134
+ const { code } = await (0, subprocess_1.spawnStreaming)(args, infraDir, providerEnv);
127
135
  if (code !== 0) {
128
136
  throw new Error('OpenTofu destroy failed. Check the output above for details.');
129
137
  }
130
138
  console.log(chalk_1.default.green('✓ Infrastructure destroyed'));
131
139
  }
132
140
  async function runTofuApply(infraDir, credentials, tofuVars, options) {
133
- const awsEnv = buildAwsEnv(credentials);
141
+ const deployment = options?.deployment ?? 'ecs';
142
+ const providerEnv = buildProviderEnv(deployment, credentials);
134
143
  // Initialize OpenTofu
135
144
  console.log(chalk_1.default.cyan('--- Initializing OpenTofu ---'));
136
- const { code: initCode } = await (0, subprocess_1.spawnStreaming)(['init'], infraDir, awsEnv);
145
+ const { code: initCode } = await (0, subprocess_1.spawnStreaming)(['init'], infraDir, providerEnv);
137
146
  if (initCode !== 0) {
138
147
  console.error(chalk_1.default.red('✗ OpenTofu init failed'));
139
148
  process.exit(1);
@@ -143,16 +152,16 @@ async function runTofuApply(infraDir, credentials, tofuVars, options) {
143
152
  console.log(chalk_1.default.cyan(`--- ${planOnly ? 'Planning' : 'Applying'} infrastructure ---`));
144
153
  try {
145
154
  const args = planOnly
146
- ? buildPlanArgs(credentials, tofuVars)
147
- : buildApplyArgs(credentials, tofuVars);
155
+ ? buildPlanArgs(deployment, credentials, tofuVars)
156
+ : buildApplyArgs(deployment, credentials, tofuVars);
148
157
  if (planOnly) {
149
- const { code } = await (0, subprocess_1.spawnStreaming)(args, infraDir, awsEnv);
158
+ const { code } = await (0, subprocess_1.spawnStreaming)(args, infraDir, providerEnv);
150
159
  if (code !== 0) {
151
160
  throw new Error('Plan failed');
152
161
  }
153
162
  }
154
163
  else {
155
- await runApplyWithRetry(args, infraDir, awsEnv);
164
+ await runApplyWithRetry(args, infraDir, providerEnv);
156
165
  }
157
166
  console.log(chalk_1.default.green(`✓ ${planOnly ? 'Plan' : 'Apply'} complete`));
158
167
  }
@@ -165,7 +174,7 @@ async function runTofuApply(infraDir, credentials, tofuVars, options) {
165
174
  outputs: null,
166
175
  };
167
176
  if (!planOnly) {
168
- result.outputs = await collectOutputs(infraDir, awsEnv);
177
+ result.outputs = await collectOutputs(infraDir, providerEnv);
169
178
  }
170
179
  return result;
171
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tofu-runner.js","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tofu-runner.js","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"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"}