nx-terraform 0.2.0 → 0.3.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/generators.json +5 -0
- package/package.json +1 -1
- package/src/generators/init/init.d.ts +3 -0
- package/src/generators/init/init.js +29 -0
- package/src/generators/init/init.js.map +1 -0
- package/src/generators/init/schema.d.ts +1 -0
- package/src/generators/init/schema.json +8 -0
- package/src/generators/preset/generator.js +3 -0
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/terraform-backend/files/local-backend/backend.tf +1 -1
- package/src/generators/terraform-backend/files/local-backend/locals.tf +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +4 -0
- package/src/index.js.map +1 -1
- package/src/inferedTasks.d.ts +3 -0
- package/src/inferedTasks.js +58 -0
- package/src/inferedTasks.js.map +1 -0
- package/src/targets/default.d.ts +9 -0
- package/src/targets/default.js +87 -0
- package/src/targets/default.js.map +1 -0
- package/src/targets/index.d.ts +5 -0
- package/src/targets/index.js +38 -0
- package/src/targets/index.js.map +1 -0
- package/src/targets/inputs.d.ts +7 -0
- package/src/targets/inputs.js +25 -0
- package/src/targets/inputs.js.map +1 -0
- package/src/targets/type.d.ts +11 -0
- package/src/targets/type.js +3 -0
- package/src/targets/type.js.map +1 -0
package/generators.json
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"factory": "./src/generators/terraform-backend/terraform-backend",
|
|
11
11
|
"schema": "./src/generators/terraform-backend/schema.json",
|
|
12
12
|
"description": "terraform-backend generator"
|
|
13
|
+
},
|
|
14
|
+
"init": {
|
|
15
|
+
"factory": "./src/generators/init/init",
|
|
16
|
+
"schema": "./src/generators/init/schema.json",
|
|
17
|
+
"description": "init generator"
|
|
13
18
|
}
|
|
14
19
|
}
|
|
15
20
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initGenerator = initGenerator;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const PLUGIN_NAME = 'nx-terraform';
|
|
7
|
+
function initGenerator(tree) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
var _a;
|
|
10
|
+
const nxJson = (0, devkit_1.readNxJson)(tree) || {};
|
|
11
|
+
const hasPlugin = (_a = nxJson.plugins) === null || _a === void 0 ? void 0 : _a.some((p) => typeof p === 'string' ? p === PLUGIN_NAME : p.plugin === PLUGIN_NAME);
|
|
12
|
+
if (!hasPlugin) {
|
|
13
|
+
if (!nxJson.plugins) {
|
|
14
|
+
nxJson.plugins = [];
|
|
15
|
+
}
|
|
16
|
+
nxJson.plugins = [
|
|
17
|
+
...nxJson.plugins,
|
|
18
|
+
{
|
|
19
|
+
plugin: PLUGIN_NAME,
|
|
20
|
+
options: {},
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
25
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.default = initGenerator;
|
|
29
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/nx-terraform/src/generators/init/init.ts"],"names":[],"mappings":";;AAIA,sCAwBC;;AA5BD,uCAAyE;AAEzE,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,SAAsB,aAAa,CAAC,IAAU;;;QAC5C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEtC,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CACrE,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACtB,CAAC;YAED,MAAM,CAAC,OAAO,GAAG;gBACf,GAAG,MAAM,CAAC,OAAO;gBACjB;oBACE,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,EAAE;iBACZ;aACF,CAAC;QACJ,CAAC;QAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type InitGeneratorSchema = unknown;
|
|
@@ -4,9 +4,12 @@ exports.presetGenerator = presetGenerator;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const terraform_backend_1 = require("../terraform-backend/terraform-backend");
|
|
7
|
+
const init_1 = require("../init/init");
|
|
7
8
|
function presetGenerator(tree, options) {
|
|
8
9
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
10
|
const tasks = [];
|
|
11
|
+
// Add nx-terraform plugin to the workspace
|
|
12
|
+
yield (0, init_1.default)(tree);
|
|
10
13
|
// Scaffold terraform backend project
|
|
11
14
|
yield (0, terraform_backend_1.terraformBackendGenerator)(tree, {
|
|
12
15
|
name: 'terraform-setup',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-terraform/src/generators/preset/generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-terraform/src/generators/preset/generator.ts"],"names":[],"mappings":";;AAMA,0CAkBC;;AAxBD,uCAAiE;AAGjE,8EAAmF;AACnF,uCAAyC;AAEzC,SAAsB,eAAe,CACnC,IAAU,EACV,OAA8B;;QAE9B,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,2CAA2C;QAC3C,MAAM,IAAA,cAAa,EAAC,IAAI,CAAC,CAAC;QAE1B,qCAAqC;QACrC,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE;YACpC,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,IAAA,yBAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;CAAA;AAED,kBAAe,eAAe,CAAC"}
|
package/src/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './inferedTasks';
|
package/src/index.js
CHANGED
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nx-terraform/src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nx-terraform/src/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNodesV2 = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const targets_1 = require("./targets");
|
|
9
|
+
// File glob to find all the configuration files for this plugin
|
|
10
|
+
const terraformConfigGlob = '**/main.tf';
|
|
11
|
+
// Entry function that Nx calls to modify the graph
|
|
12
|
+
exports.createNodesV2 = [
|
|
13
|
+
terraformConfigGlob,
|
|
14
|
+
(configFiles, options, context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
return yield (0, devkit_1.createNodesFromFiles)((configFile, options, context) => createNodesInternal(configFile, options, context), configFiles, options, context);
|
|
16
|
+
}),
|
|
17
|
+
];
|
|
18
|
+
function createNodesInternal(configFilePath, options, context) {
|
|
19
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
var _a;
|
|
21
|
+
const projectRoot = (0, path_1.dirname)(configFilePath);
|
|
22
|
+
// Do not create a project if package.json or project.json isn't there.
|
|
23
|
+
const siblingFiles = (0, fs_1.readdirSync)((0, path_1.join)(context.workspaceRoot, projectRoot));
|
|
24
|
+
if (!siblingFiles.includes('project.json')) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
const projectJsonContent = JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(context.workspaceRoot, projectRoot, 'project.json')).toString());
|
|
28
|
+
const targetConfigurationParams = {
|
|
29
|
+
backendProject: ((_a = projectJsonContent.metadata) === null || _a === void 0 ? void 0 : _a.backendProject) || null,
|
|
30
|
+
// check if projectRoot/varfiles/dev.tfvars and projectRoot/varfiles/prod.tfvars exist
|
|
31
|
+
varFiles: {
|
|
32
|
+
dev: siblingFiles.includes('tfvars/dev.tfvars'),
|
|
33
|
+
prod: siblingFiles.includes('tfvars/prod.tfvars'),
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
let projectTargets = {};
|
|
37
|
+
if (projectJsonContent.projectType === 'application') {
|
|
38
|
+
if (targetConfigurationParams.backendProject) {
|
|
39
|
+
projectTargets = (0, targets_1.getStatefulProjectTargets)(targetConfigurationParams);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
projectTargets = (0, targets_1.getBackendProjectTargets)(targetConfigurationParams);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
projectTargets = (0, targets_1.getModuleProjectTargets)(targetConfigurationParams);
|
|
47
|
+
}
|
|
48
|
+
// Project configuration to be merged into the rest of the Nx configuration
|
|
49
|
+
return {
|
|
50
|
+
projects: {
|
|
51
|
+
[projectRoot]: {
|
|
52
|
+
targets: projectTargets,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=inferedTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inferedTasks.js","sourceRoot":"","sources":["../../../../packages/nx-terraform/src/inferedTasks.ts"],"names":[],"mappings":";;;;AAAA,uCAKoB;AACpB,2BAA+C;AAC/C,+BAA8C;AAC9C,uCAImB;AAMnB,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEzC,mDAAmD;AACtC,QAAA,aAAa,GAA4C;IACpE,mBAAmB;IACnB,CAAO,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACtC,OAAO,MAAM,IAAA,6BAAoB,EAC/B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC/B,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EACnD,WAAW,EACX,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC;AAEF,SAAe,mBAAmB,CAChC,cAAsB,EACtB,OAAiC,EACjC,OAA6B;;;QAE7B,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,cAAc,CAAC,CAAC;QAE5C,uEAAuE;QACvE,MAAM,YAAY,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,kBAAkB,GAAyB,IAAI,CAAC,KAAK,CACzD,IAAA,iBAAY,EACV,IAAA,cAAO,EAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC,CAC5D,CAAC,QAAQ,EAAE,CACb,CAAC;QAEF,MAAM,yBAAyB,GAA+B;YAC5D,cAAc,EAAE,CAAA,MAAA,kBAAkB,CAAC,QAAQ,0CAAE,cAAc,KAAI,IAAI;YACnE,sFAAsF;YACtF,QAAQ,EAAE;gBACR,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC/C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;aAClD;SACF,CAAC;QAEF,IAAI,cAAc,GAAoC,EAAE,CAAC;QAEzD,IAAI,kBAAkB,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACrD,IAAI,yBAAyB,CAAC,cAAc,EAAE,CAAC;gBAC7C,cAAc,GAAG,IAAA,mCAAyB,EAAC,yBAAyB,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,IAAA,kCAAwB,EAAC,yBAAyB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,IAAA,iCAAuB,EAAC,yBAAyB,CAAC,CAAC;QACtE,CAAC;QAED,2EAA2E;QAC3E,OAAO;YACL,QAAQ,EAAE;gBACR,CAAC,WAAW,CAAC,EAAE;oBACb,OAAO,EAAE,cAAc;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TargetConfiguration } from '@nx/devkit';
|
|
2
|
+
import { TargetsConfigurationParams } from './type';
|
|
3
|
+
export declare const getTerraformInitTarget: (params: TargetsConfigurationParams) => TargetConfiguration;
|
|
4
|
+
export declare const getTerraformPlanTarget: (params: TargetsConfigurationParams) => TargetConfiguration;
|
|
5
|
+
export declare const TERRAFORM_APPLY_TARGET: TargetConfiguration;
|
|
6
|
+
export declare const getTerraformDestroyTarget: (params: TargetsConfigurationParams) => TargetConfiguration;
|
|
7
|
+
export declare const TERRAFORM_FMT_TARGET: TargetConfiguration;
|
|
8
|
+
export declare const TERRAFORM_VALIDATE_TARGET: TargetConfiguration;
|
|
9
|
+
export declare const TERRAFORM_OUTPUT_TARGET: TargetConfiguration;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TERRAFORM_OUTPUT_TARGET = exports.TERRAFORM_VALIDATE_TARGET = exports.TERRAFORM_FMT_TARGET = exports.getTerraformDestroyTarget = exports.TERRAFORM_APPLY_TARGET = exports.getTerraformPlanTarget = exports.getTerraformInitTarget = void 0;
|
|
4
|
+
const inputs_1 = require("./inputs");
|
|
5
|
+
const getConfigurations = (varFiles, additionalArgs) => ({
|
|
6
|
+
defaultConfiguration: 'dev',
|
|
7
|
+
configurations: {
|
|
8
|
+
dev: {
|
|
9
|
+
args: [
|
|
10
|
+
...additionalArgs,
|
|
11
|
+
varFiles.dev ? '-var-file=./tfvars/dev.tfvars' : '',
|
|
12
|
+
],
|
|
13
|
+
},
|
|
14
|
+
prod: {
|
|
15
|
+
args: [
|
|
16
|
+
...additionalArgs,
|
|
17
|
+
varFiles.prod ? '-var-file=./tfvars/prod.tfvars' : '',
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
const getTerraformInitTarget = (params) => {
|
|
23
|
+
const args = [];
|
|
24
|
+
if (params.backendProject) {
|
|
25
|
+
args.push(`-backend-config=../${params.backendProject}/backend.config`, '-reconfigure');
|
|
26
|
+
}
|
|
27
|
+
return Object.assign({
|
|
28
|
+
// cache only for backend projects
|
|
29
|
+
cache: false, executor: 'nx:run-commands', dependsOn: ['^terraform-apply'], options: {
|
|
30
|
+
cwd: '{projectRoot}',
|
|
31
|
+
command: 'terraform init',
|
|
32
|
+
}, inputs: [
|
|
33
|
+
'{projectRoot}/provider.tf',
|
|
34
|
+
'{projectRoot}/backend.tf',
|
|
35
|
+
...inputs_1.TERRAFORM_ENV_VARIABLES_INPUTS,
|
|
36
|
+
], outputs: ['{projectRoot}/.terraform', '{projectRoot}/.terraform.lock.hcl'] }, getConfigurations({ dev: false, prod: false }, args));
|
|
37
|
+
};
|
|
38
|
+
exports.getTerraformInitTarget = getTerraformInitTarget;
|
|
39
|
+
const getTerraformPlanTarget = (params) => (Object.assign({ cache: false, executor: 'nx:run-commands', dependsOn: ['terraform-init'], options: {
|
|
40
|
+
cwd: '{projectRoot}',
|
|
41
|
+
command: 'terraform plan',
|
|
42
|
+
}, inputs: [...inputs_1.TERRAFORM_ALL_INPUTS], outputs: ['{projectRoot}/tfplan'] }, getConfigurations(params.varFiles, ['-out=tfplan'])));
|
|
43
|
+
exports.getTerraformPlanTarget = getTerraformPlanTarget;
|
|
44
|
+
exports.TERRAFORM_APPLY_TARGET = {
|
|
45
|
+
cache: false,
|
|
46
|
+
executor: 'nx:run-commands',
|
|
47
|
+
dependsOn: ['terraform-plan'],
|
|
48
|
+
options: {
|
|
49
|
+
cwd: '{projectRoot}',
|
|
50
|
+
command: 'terraform apply -auto-approve tfplan',
|
|
51
|
+
},
|
|
52
|
+
inputs: [...inputs_1.TERRAFORM_ALL_INPUTS, '{projectRoot}/tfplan'],
|
|
53
|
+
};
|
|
54
|
+
const getTerraformDestroyTarget = (params) => (Object.assign({ cache: false, executor: 'nx:run-commands', dependsOn: ['terraform-init'], options: {
|
|
55
|
+
cwd: '{projectRoot}',
|
|
56
|
+
command: 'terraform destroy',
|
|
57
|
+
} }, getConfigurations(params.varFiles, ['-auto-approve'])));
|
|
58
|
+
exports.getTerraformDestroyTarget = getTerraformDestroyTarget;
|
|
59
|
+
exports.TERRAFORM_FMT_TARGET = {
|
|
60
|
+
cache: true,
|
|
61
|
+
executor: 'nx:run-commands',
|
|
62
|
+
options: {
|
|
63
|
+
cwd: '{projectRoot}',
|
|
64
|
+
command: 'terraform fmt -write=true',
|
|
65
|
+
},
|
|
66
|
+
inputs: [...inputs_1.TERRAFORM_FILES_INPUTS],
|
|
67
|
+
};
|
|
68
|
+
exports.TERRAFORM_VALIDATE_TARGET = {
|
|
69
|
+
cache: true,
|
|
70
|
+
executor: 'nx:run-commands',
|
|
71
|
+
dependsOn: ['terraform-init'],
|
|
72
|
+
options: {
|
|
73
|
+
cwd: '{projectRoot}',
|
|
74
|
+
command: 'terraform validate',
|
|
75
|
+
},
|
|
76
|
+
inputs: [...inputs_1.TERRAFORM_ALL_INPUTS],
|
|
77
|
+
};
|
|
78
|
+
exports.TERRAFORM_OUTPUT_TARGET = {
|
|
79
|
+
executor: 'nx:run-commands',
|
|
80
|
+
dependsOn: ['terraform-init'],
|
|
81
|
+
outputs: ['{projectRoot}/terraform-outputs.env'],
|
|
82
|
+
options: {
|
|
83
|
+
command: 'terraform output -json | jq -r "to_entries[] | \\"\\(.key)=\\(.value.value)\\"" > terraform-outputs.env',
|
|
84
|
+
cwd: '{projectRoot}',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../../packages/nx-terraform/src/targets/default.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TargetsConfigurationParams, TerraformProjectTargets } from './type';
|
|
2
|
+
export { type TargetsConfigurationParams } from './type';
|
|
3
|
+
export declare const getBackendProjectTargets: (params: TargetsConfigurationParams) => TerraformProjectTargets;
|
|
4
|
+
export declare const getStatefulProjectTargets: (params: TargetsConfigurationParams) => TerraformProjectTargets;
|
|
5
|
+
export declare const getModuleProjectTargets: (params: TargetsConfigurationParams) => TerraformProjectTargets;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getModuleProjectTargets = exports.getStatefulProjectTargets = exports.getBackendProjectTargets = void 0;
|
|
4
|
+
const default_1 = require("./default");
|
|
5
|
+
const getBackendProjectTargets = (params) => ({
|
|
6
|
+
'terraform-init': Object.assign(Object.assign({}, (0, default_1.getTerraformInitTarget)(params)), { cache: true }),
|
|
7
|
+
'terraform-plan': Object.assign(Object.assign({}, (0, default_1.getTerraformPlanTarget)(params)), { cache: true }),
|
|
8
|
+
'terraform-apply': Object.assign(Object.assign({}, default_1.TERRAFORM_APPLY_TARGET), { cache: true }),
|
|
9
|
+
'terraform-destroy': (0, default_1.getTerraformDestroyTarget)(params),
|
|
10
|
+
'terraform-fmt': default_1.TERRAFORM_FMT_TARGET,
|
|
11
|
+
'terraform-validate': default_1.TERRAFORM_VALIDATE_TARGET,
|
|
12
|
+
'terraform-output': default_1.TERRAFORM_OUTPUT_TARGET,
|
|
13
|
+
});
|
|
14
|
+
exports.getBackendProjectTargets = getBackendProjectTargets;
|
|
15
|
+
const getStatefulProjectTargets = (params) => ({
|
|
16
|
+
'terraform-init': (0, default_1.getTerraformInitTarget)(params),
|
|
17
|
+
'terraform-plan': (0, default_1.getTerraformPlanTarget)(params),
|
|
18
|
+
'terraform-apply': default_1.TERRAFORM_APPLY_TARGET,
|
|
19
|
+
'terraform-destroy': (0, default_1.getTerraformDestroyTarget)(params),
|
|
20
|
+
'terraform-fmt': default_1.TERRAFORM_FMT_TARGET,
|
|
21
|
+
'terraform-validate': default_1.TERRAFORM_VALIDATE_TARGET,
|
|
22
|
+
'terraform-output': default_1.TERRAFORM_OUTPUT_TARGET,
|
|
23
|
+
});
|
|
24
|
+
exports.getStatefulProjectTargets = getStatefulProjectTargets;
|
|
25
|
+
const getModuleProjectTargets = (params) => {
|
|
26
|
+
const getStubTarget = (originalTarget) => (Object.assign(Object.assign({}, originalTarget), { cache: true, options: Object.assign(Object.assign({}, originalTarget.options), { command: 'echo "Operation is not applicable in module projects."' }) }));
|
|
27
|
+
return {
|
|
28
|
+
'terraform-init': getStubTarget((0, default_1.getTerraformInitTarget)(params)),
|
|
29
|
+
'terraform-plan': getStubTarget((0, default_1.getTerraformPlanTarget)(params)),
|
|
30
|
+
'terraform-apply': default_1.TERRAFORM_APPLY_TARGET,
|
|
31
|
+
'terraform-destroy': getStubTarget((0, default_1.getTerraformDestroyTarget)(params)),
|
|
32
|
+
'terraform-fmt': default_1.TERRAFORM_FMT_TARGET,
|
|
33
|
+
'terraform-validate': default_1.TERRAFORM_VALIDATE_TARGET,
|
|
34
|
+
'terraform-output': getStubTarget(default_1.TERRAFORM_OUTPUT_TARGET),
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.getModuleProjectTargets = getModuleProjectTargets;
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nx-terraform/src/targets/index.ts"],"names":[],"mappings":";;;AACA,uCAQmB;AAKZ,MAAM,wBAAwB,GAAG,CACtC,MAAkC,EACT,EAAE,CAAC,CAAC;IAC7B,gBAAgB,kCACX,IAAA,gCAAsB,EAAC,MAAM,CAAC,KACjC,KAAK,EAAE,IAAI,GACZ;IACD,gBAAgB,kCAAO,IAAA,gCAAsB,EAAC,MAAM,CAAC,KAAE,KAAK,EAAE,IAAI,GAAE;IACpE,iBAAiB,kCAAO,gCAAsB,KAAE,KAAK,EAAE,IAAI,GAAE;IAC7D,mBAAmB,EAAE,IAAA,mCAAyB,EAAC,MAAM,CAAC;IACtD,eAAe,EAAE,8BAAoB;IACrC,oBAAoB,EAAE,mCAAyB;IAC/C,kBAAkB,EAAE,iCAAuB;CAC5C,CAAC,CAAC;AAbU,QAAA,wBAAwB,4BAalC;AAEI,MAAM,yBAAyB,GAAG,CACvC,MAAkC,EACT,EAAE,CAAC,CAAC;IAC7B,gBAAgB,EAAE,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAChD,gBAAgB,EAAE,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAChD,iBAAiB,EAAE,gCAAsB;IACzC,mBAAmB,EAAE,IAAA,mCAAyB,EAAC,MAAM,CAAC;IACtD,eAAe,EAAE,8BAAoB;IACrC,oBAAoB,EAAE,mCAAyB;IAC/C,kBAAkB,EAAE,iCAAuB;CAC5C,CAAC,CAAC;AAVU,QAAA,yBAAyB,6BAUnC;AAEI,MAAM,uBAAuB,GAAG,CACrC,MAAkC,EACT,EAAE;IAC3B,MAAM,aAAa,GAAG,CAAC,cAAmC,EAAE,EAAE,CAAC,iCAC1D,cAAc,KACjB,KAAK,EAAE,IAAI,EACX,OAAO,kCACF,cAAc,CAAC,OAAO,KACzB,OAAO,EAAE,wDAAwD,OAEnE,CAAC;IAEH,OAAO;QACL,gBAAgB,EAAE,aAAa,CAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC,CAAC;QAC/D,gBAAgB,EAAE,aAAa,CAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC,CAAC;QAC/D,iBAAiB,EAAE,gCAAsB;QACzC,mBAAmB,EAAE,aAAa,CAAC,IAAA,mCAAyB,EAAC,MAAM,CAAC,CAAC;QACrE,eAAe,EAAE,8BAAoB;QACrC,oBAAoB,EAAE,mCAAyB;QAC/C,kBAAkB,EAAE,aAAa,CAAC,iCAAuB,CAAC;KAC3D,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,uBAAuB,2BAqBlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TERRAFORM_ALL_INPUTS = exports.TERRAFORM_ENV_VARIABLES_INPUTS = exports.TERRAFORM_FILES_INPUTS = void 0;
|
|
4
|
+
exports.TERRAFORM_FILES_INPUTS = [
|
|
5
|
+
'{projectRoot}/*.tf',
|
|
6
|
+
'{projectRoot}/**/*.tf',
|
|
7
|
+
'{projectRoot}/templates/*',
|
|
8
|
+
'{projectRoot}/tfvars/*',
|
|
9
|
+
];
|
|
10
|
+
exports.TERRAFORM_ENV_VARIABLES_INPUTS = [
|
|
11
|
+
{
|
|
12
|
+
env: 'TF_VAR_region',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
env: 'TF_VAR_account_id',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
env: 'TF_WORKSPACE',
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
exports.TERRAFORM_ALL_INPUTS = [
|
|
22
|
+
...exports.TERRAFORM_FILES_INPUTS,
|
|
23
|
+
...exports.TERRAFORM_ENV_VARIABLES_INPUTS,
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../packages/nx-terraform/src/targets/inputs.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,uBAAuB;IACvB,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC;AAEW,QAAA,8BAA8B,GAAG;IAC5C;QACE,GAAG,EAAE,eAAe;KACrB;IACD;QACE,GAAG,EAAE,mBAAmB;KACzB;IACD;QACE,GAAG,EAAE,cAAc;KACpB;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,GAAG,8BAAsB;IACzB,GAAG,sCAA8B;CAClC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TargetConfiguration } from '@nx/devkit';
|
|
2
|
+
export type TerraformTarget = 'terraform-plan' | 'terraform-apply' | 'terraform-destroy' | 'terraform-validate' | 'terraform-fmt' | 'terraform-init' | 'terraform-output';
|
|
3
|
+
export type TerraformTargetDependency = `^${TerraformTarget}` | TerraformTarget;
|
|
4
|
+
export type TerraformProjectTargets = Record<TerraformTarget, TargetConfiguration>;
|
|
5
|
+
export type TargetsConfigurationParams = {
|
|
6
|
+
backendProject: string | null;
|
|
7
|
+
varFiles: {
|
|
8
|
+
dev: boolean;
|
|
9
|
+
prod: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../packages/nx-terraform/src/targets/type.ts"],"names":[],"mappings":""}
|