@firestartr/cli 0.1.28 → 0.1.29
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/build/index.js +95898 -97519
- package/build/provisioner/dist-cdktf/client.js +6 -4
- package/build/provisioner/dist-cdktf/index.js +55232 -57691
- package/build/provisioner/dist-cdktf/index.js.map +1 -1
- package/build/provisioner/dist-cdktf/src/cdktf.js +14 -12
- package/build/provisioner/dist-cdktf/src/config/config.js +3 -3
- package/build/provisioner/dist-cdktf/src/entities/base/Entity.d.ts +2 -2
- package/build/provisioner/dist-cdktf/src/entities/base/Entity.js +4 -5
- package/build/provisioner/dist-cdktf/src/entities/base/auxiliars/ConfigAux.js +4 -4
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubgroup/auxiliars/TeamConfigAux.js +2 -2
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubgroup/helpers/TeamMembersHelper.js +2 -2
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubgroup/helpers/TeamsHelper.js +3 -1
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubmembership/helpers/MembershipAllGroupHelper.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubmembership/helpers/MembershipAllGroupHelper.js +1 -1
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubmembership/helpers/MembershipHelper.d.ts +2 -2
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/FirestartrGithubRepository.js +1 -1
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/auxiliars/RepositoryConfigAux.js +2 -2
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/helpers/ActionsHelper.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/helpers/ActionsHelper.js +2 -2
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/helpers/CodeownersHelper.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/helpers/DefaultBranchHelper.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/entities/firestartrgithubrepository/helpers/RepositoryTeamsHelper.js +5 -5
- package/build/provisioner/dist-cdktf/src/entities/firestartrterraformmodule/auxiliars/terraformModuleHelper.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/entities/firestartrterraformmodule/auxiliars/terraformModuleHelper.js +1 -1
- package/build/provisioner/dist-cdktf/src/entities/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/entities/system/SystemEntity.d.ts +2 -2
- package/build/provisioner/dist-cdktf/src/entities/system/SystemEntity.js +1 -1
- package/build/provisioner/dist-cdktf/src/features/index.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/features/installer.js +6 -5
- package/build/provisioner/dist-cdktf/src/features/preparer.js +8 -8
- package/build/provisioner/dist-cdktf/src/features/provisioner.js +4 -2
- package/build/provisioner/dist-cdktf/src/features/uninstaller.js +8 -6
- package/build/provisioner/dist-cdktf/src/handlers/index.js +2 -2
- package/build/provisioner/dist-cdktf/src/index.d.ts +4 -4
- package/build/provisioner/dist-cdktf/src/index.js +1 -1
- package/build/provisioner/dist-cdktf/src/providers/backend.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/providers/backend.js +5 -5
- package/build/provisioner/dist-cdktf/src/providers/provider.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/providers/provider.js +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_feature/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_feature/index.js +11 -9
- package/build/provisioner/dist-cdktf/src/resources/github_feature/preprocessor.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_feature/preprocessor.js +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_group/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_group/index.js +11 -11
- package/build/provisioner/dist-cdktf/src/resources/github_membership/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_membership/index.js +11 -11
- package/build/provisioner/dist-cdktf/src/resources/github_repository/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/github_repository/index.js +11 -11
- package/build/provisioner/dist-cdktf/src/resources/resource.js +8 -12
- package/build/provisioner/dist-cdktf/src/resources/terraform_module/index.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/resources/terraform_module/index.js +5 -5
- package/build/provisioner/dist-cdktf/src/stacks/GithubStack.js +2 -2
- package/build/provisioner/dist-cdktf/src/stacks/TerraformModuleStack.d.ts +3 -3
- package/build/provisioner/dist-cdktf/src/stacks/TerraformModuleStack.js +2 -2
- package/build/provisioner/dist-cdktf/src/stacks/base.d.ts +1 -1
- package/build/provisioner/dist-cdktf/src/stacks/base.js +5 -5
- package/build/provisioner/dist-cdktf/src/stacks/index.d.ts +2 -2
- package/build/provisioner/dist-cdktf/src/terraform.js +16 -14
- package/build/provisioner/dist-cdktf/tsconfig.cdktf.tsbuildinfo +1 -1
- package/package.json +6 -2
|
@@ -16,15 +16,15 @@ class FirestartrGithubRepositoryFeature extends resource_1.Resource {
|
|
|
16
16
|
}
|
|
17
17
|
async preprocess() {
|
|
18
18
|
switch (this.get('operation')) {
|
|
19
|
-
case
|
|
20
|
-
log(
|
|
19
|
+
case 'CREATE':
|
|
20
|
+
log('CREATED');
|
|
21
21
|
await this._updateManagedFiles();
|
|
22
22
|
break;
|
|
23
|
-
case
|
|
24
|
-
log(
|
|
23
|
+
case 'UPDATE':
|
|
24
|
+
log('UPDATED');
|
|
25
25
|
break;
|
|
26
|
-
case
|
|
27
|
-
log(
|
|
26
|
+
case 'DELETE':
|
|
27
|
+
log('DELETE');
|
|
28
28
|
await (0, features_1.untrackManagedFiles)(this.get('main_artifact'), this.get('deps'));
|
|
29
29
|
break;
|
|
30
30
|
default:
|
|
@@ -32,13 +32,13 @@ class FirestartrGithubRepositoryFeature extends resource_1.Resource {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
async _updateManagedFiles() {
|
|
35
|
-
const main = this.get(
|
|
35
|
+
const main = this.get('main_artifact');
|
|
36
36
|
const repoInfo = main.spec.repositoryTarget;
|
|
37
37
|
for (const file of main.spec.files) {
|
|
38
38
|
if (file.userManaged) {
|
|
39
39
|
try {
|
|
40
40
|
const content = await this.__getFileContentFromProvider(main.spec.org, `/${main.spec.org}/${this.getRepoExternalName(repoInfo.ref)}/${repoInfo.branch}/${file.path}`);
|
|
41
|
-
const newContent = Buffer.from(content,
|
|
41
|
+
const newContent = Buffer.from(content, 'binary').toString('base64');
|
|
42
42
|
file.content = newContent;
|
|
43
43
|
}
|
|
44
44
|
catch (e) {
|
|
@@ -54,7 +54,9 @@ class FirestartrGithubRepositoryFeature extends resource_1.Resource {
|
|
|
54
54
|
}
|
|
55
55
|
async __getFileContentFromProvider(org, url) {
|
|
56
56
|
const octokit = await github_1.default.getOctokitForOrg(org);
|
|
57
|
-
const response = await octokit.request(`GET ${url}`, {
|
|
57
|
+
const response = await octokit.request(`GET ${url}`, {
|
|
58
|
+
baseUrl: 'https://raw.githubusercontent.com',
|
|
59
|
+
});
|
|
58
60
|
return response.data;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FirestartrGithubRepositoryFeature } from
|
|
1
|
+
import { FirestartrGithubRepositoryFeature } from './index';
|
|
2
2
|
export declare function create(resource: FirestartrGithubRepositoryFeature): Promise<void>;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.create = void 0;
|
|
4
4
|
async function create(resource) {
|
|
5
5
|
// it has files?
|
|
6
|
-
for (const file of resource.get(
|
|
6
|
+
for (const file of resource.get('main_artifact').spec.files) {
|
|
7
7
|
await onFileCreation(resource, file);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -13,23 +13,23 @@ class FirestartrGithubGroup extends resource_1.Resource {
|
|
|
13
13
|
}
|
|
14
14
|
async preprocess() {
|
|
15
15
|
switch (this.get('operation')) {
|
|
16
|
-
case
|
|
17
|
-
log(
|
|
16
|
+
case 'CREATE':
|
|
17
|
+
log('CREATE');
|
|
18
18
|
break;
|
|
19
|
-
case
|
|
20
|
-
log(
|
|
19
|
+
case 'UPDATE':
|
|
20
|
+
log('UPDATED');
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
23
|
-
log(
|
|
22
|
+
case 'DELETE':
|
|
23
|
+
log('DELETED');
|
|
24
24
|
break;
|
|
25
|
-
case
|
|
26
|
-
log(
|
|
25
|
+
case 'IMPORT':
|
|
26
|
+
log('IMPORT');
|
|
27
27
|
break;
|
|
28
|
-
case
|
|
29
|
-
log(
|
|
28
|
+
case 'IMPORT_SKIP_PLAN':
|
|
29
|
+
log('IMPORT_SKIP_PLAN');
|
|
30
30
|
break;
|
|
31
31
|
default:
|
|
32
|
-
log(
|
|
32
|
+
log('UNKNOWN');
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -13,23 +13,23 @@ class FirestartrGithubMembership extends resource_1.Resource {
|
|
|
13
13
|
}
|
|
14
14
|
async preprocess() {
|
|
15
15
|
switch (this.get('operation')) {
|
|
16
|
-
case
|
|
17
|
-
log(
|
|
16
|
+
case 'CREATE':
|
|
17
|
+
log('CREATE');
|
|
18
18
|
break;
|
|
19
|
-
case
|
|
20
|
-
log(
|
|
19
|
+
case 'UPDATE':
|
|
20
|
+
log('UPDATED');
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
23
|
-
log(
|
|
22
|
+
case 'DELETE':
|
|
23
|
+
log('DELETED');
|
|
24
24
|
break;
|
|
25
|
-
case
|
|
26
|
-
log(
|
|
25
|
+
case 'IMPORT':
|
|
26
|
+
log('IMPORT');
|
|
27
27
|
break;
|
|
28
|
-
case
|
|
29
|
-
log(
|
|
28
|
+
case 'IMPORT_SKIP_PLAN':
|
|
29
|
+
log('IMPORT_SKIP_PLAN');
|
|
30
30
|
break;
|
|
31
31
|
default:
|
|
32
|
-
log(
|
|
32
|
+
log('UNKNOWN');
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -13,23 +13,23 @@ class FirestartrGithubRepository extends resource_1.Resource {
|
|
|
13
13
|
}
|
|
14
14
|
async preprocess() {
|
|
15
15
|
switch (this.get('operation')) {
|
|
16
|
-
case
|
|
17
|
-
log(
|
|
16
|
+
case 'CREATE':
|
|
17
|
+
log('CREATE');
|
|
18
18
|
break;
|
|
19
|
-
case
|
|
20
|
-
log(
|
|
19
|
+
case 'UPDATE':
|
|
20
|
+
log('UPDATED');
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
23
|
-
log(
|
|
22
|
+
case 'DELETE':
|
|
23
|
+
log('DELETED');
|
|
24
24
|
break;
|
|
25
|
-
case
|
|
26
|
-
log(
|
|
25
|
+
case 'IMPORT':
|
|
26
|
+
log('IMPORT');
|
|
27
27
|
break;
|
|
28
|
-
case
|
|
29
|
-
log(
|
|
28
|
+
case 'IMPORT_SKIP_PLAN':
|
|
29
|
+
log('IMPORT_SKIP_PLAN');
|
|
30
30
|
break;
|
|
31
31
|
default:
|
|
32
|
-
log(
|
|
32
|
+
log('UNKNOWN');
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -44,14 +44,9 @@ class Resource {
|
|
|
44
44
|
this.set('deps', deps);
|
|
45
45
|
}
|
|
46
46
|
async run() {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
await this.runTerraform();
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
throw err;
|
|
54
|
-
}
|
|
47
|
+
await this.preprocess();
|
|
48
|
+
await this.synth();
|
|
49
|
+
await this.runTerraform();
|
|
55
50
|
}
|
|
56
51
|
artifact() {
|
|
57
52
|
return this.get('main_artifact');
|
|
@@ -59,9 +54,9 @@ class Resource {
|
|
|
59
54
|
async synth() {
|
|
60
55
|
const randomFilenameArtifact = `${catalog_common_1.default.generic.randomString(20)}.yaml`;
|
|
61
56
|
const randomFilenameDeps = `${catalog_common_1.default.generic.randomString(20)}_deps.yaml`;
|
|
62
|
-
catalog_common_1.default.io.writeYamlFile(randomFilenameArtifact, this.get('main_artifact'),
|
|
63
|
-
catalog_common_1.default.io.writeYamlFile(randomFilenameDeps, this.get('deps'),
|
|
64
|
-
await (0, cdktf_1.runCDKTF)(path.join(
|
|
57
|
+
catalog_common_1.default.io.writeYamlFile(randomFilenameArtifact, this.get('main_artifact'), '/tmp');
|
|
58
|
+
catalog_common_1.default.io.writeYamlFile(randomFilenameDeps, this.get('deps'), '/tmp');
|
|
59
|
+
await (0, cdktf_1.runCDKTF)(path.join('/tmp', randomFilenameArtifact), 'synth', path.join('/tmp', randomFilenameDeps));
|
|
65
60
|
}
|
|
66
61
|
log(msg) {
|
|
67
62
|
this.logFn(msg);
|
|
@@ -70,7 +65,8 @@ class Resource {
|
|
|
70
65
|
let output = '';
|
|
71
66
|
output += await (0, terraform_1.terraformInit)(this.get('main_artifact'));
|
|
72
67
|
output += await (0, terraform_1.terraformPlan)(this.get('main_artifact'));
|
|
73
|
-
if (this.get('operation') === 'CREATE' ||
|
|
68
|
+
if (this.get('operation') === 'CREATE' ||
|
|
69
|
+
this.get('operation') === 'UPDATE') {
|
|
74
70
|
output += await (0, terraform_1.terraformApply)(this.get('main_artifact'), false, true);
|
|
75
71
|
}
|
|
76
72
|
else if (this.get('operation') === 'DELETE') {
|
|
@@ -15,15 +15,15 @@ class FirestartrTerraformModule extends resource_1.Resource {
|
|
|
15
15
|
const operation = this.get('operation');
|
|
16
16
|
log(operation);
|
|
17
17
|
switch (operation) {
|
|
18
|
-
case
|
|
18
|
+
case 'CREATE':
|
|
19
19
|
break;
|
|
20
|
-
case
|
|
20
|
+
case 'UPDATE':
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
22
|
+
case 'DELETE':
|
|
23
23
|
break;
|
|
24
|
-
case
|
|
24
|
+
case 'IMPORT':
|
|
25
25
|
break;
|
|
26
|
-
case
|
|
26
|
+
case 'IMPORT_SKIP_PLAN':
|
|
27
27
|
break;
|
|
28
28
|
default:
|
|
29
29
|
break;
|
|
@@ -23,12 +23,12 @@ class GithubStack extends base_1.BaseStack {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
catch (err) {
|
|
26
|
-
messageLog(
|
|
26
|
+
messageLog('Error: provisionEntity: %s', err);
|
|
27
27
|
throw err;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
initProviders(scope, tfStatePath, backendConfig, providerConfig, deps) {
|
|
31
|
-
if (providerConfig.spec.type
|
|
31
|
+
if (providerConfig.spec.type !== providers_1.FirestartrTerraformProvider.GITHUB)
|
|
32
32
|
throw `Provider type ${providerConfig.spec.type} is not supported`;
|
|
33
33
|
const backendSecrets = this.getRefContextFromCr(backendConfig, deps);
|
|
34
34
|
const providerSecrets = this.getRefContextFromCr(providerConfig, deps);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FirestartrTerraformModuleEntity } from
|
|
2
|
-
import { BaseStack } from
|
|
3
|
-
import { TerraformProvider } from
|
|
1
|
+
import { FirestartrTerraformModuleEntity } from '../entities/firestartrterraformmodule/FirestartrTerraformModule';
|
|
2
|
+
import { BaseStack } from './base';
|
|
3
|
+
import { TerraformProvider } from 'cdktf';
|
|
4
4
|
export declare class TerraformModuleStack extends BaseStack {
|
|
5
5
|
provisionEntity(isImport: boolean, entity: FirestartrTerraformModuleEntity, deps: any, tfStatePath: string, orgConfig: any): Promise<void>;
|
|
6
6
|
initProviders(scope: BaseStack, name: string, tfStatePath: string, backendConfig: any, providerConfig: any, deps: any): TerraformProvider;
|
|
@@ -8,7 +8,7 @@ const debug_1 = __importDefault(require("debug"));
|
|
|
8
8
|
const FirestartrTerraformModule_1 = require("../entities/firestartrterraformmodule/FirestartrTerraformModule");
|
|
9
9
|
const base_1 = require("./base");
|
|
10
10
|
const providers_1 = require("../providers");
|
|
11
|
-
const messageLog = (0, debug_1.default)(
|
|
11
|
+
const messageLog = (0, debug_1.default)('firestartr:provisioner:stacks:terraformmodulestack');
|
|
12
12
|
class TerraformModuleStack extends base_1.BaseStack {
|
|
13
13
|
async provisionEntity(isImport, entity, deps, tfStatePath, orgConfig) {
|
|
14
14
|
try {
|
|
@@ -21,7 +21,7 @@ class TerraformModuleStack extends base_1.BaseStack {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
catch (err) {
|
|
24
|
-
messageLog(
|
|
24
|
+
messageLog('Error: provisionEntity: %s', err);
|
|
25
25
|
throw err;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -5,14 +5,14 @@ const cdktf_1 = require("cdktf");
|
|
|
5
5
|
class SecretNotFound extends Error {
|
|
6
6
|
constructor(secretName) {
|
|
7
7
|
super(`Secret ${secretName} not found`);
|
|
8
|
-
this.name =
|
|
8
|
+
this.name = 'SecretNotFound';
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
exports.SecretNotFound = SecretNotFound;
|
|
12
12
|
class SecretKeyNotFound extends Error {
|
|
13
13
|
constructor(secretName, keyName) {
|
|
14
14
|
super(`Secret ${secretName} does not have key ${keyName}`);
|
|
15
|
-
this.name =
|
|
15
|
+
this.name = 'SecretKeyNotFound';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
exports.SecretKeyNotFound = SecretKeyNotFound;
|
|
@@ -28,7 +28,7 @@ class BaseStack extends cdktf_1.TerraformStack {
|
|
|
28
28
|
const providerConfig = deps[`${providerRef.kind}-${providerRef.name}`].cr;
|
|
29
29
|
return {
|
|
30
30
|
backendConfig,
|
|
31
|
-
providerConfig
|
|
31
|
+
providerConfig,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
getRefContextFromCr(cr, deps) {
|
|
@@ -48,7 +48,7 @@ class BaseStack extends cdktf_1.TerraformStack {
|
|
|
48
48
|
return secrets;
|
|
49
49
|
}
|
|
50
50
|
replaceConfigSecrets(config, secrets) {
|
|
51
|
-
for (
|
|
51
|
+
for (const key in config) {
|
|
52
52
|
if (typeof config[key] === 'object' && config[key] !== null) {
|
|
53
53
|
// If the property is an object, call this function recursively
|
|
54
54
|
this.replaceConfigSecrets(config[key], secrets);
|
|
@@ -56,7 +56,7 @@ class BaseStack extends cdktf_1.TerraformStack {
|
|
|
56
56
|
else if (typeof config[key] === 'string') {
|
|
57
57
|
// If the property is a string and its value is equal to secrets.something,
|
|
58
58
|
// replace the value with the value of the 'something' key in the secrets object
|
|
59
|
-
config[key] = config[key].replace(/\$\{\{ secrets\.(.*?) \}\}/g,
|
|
59
|
+
config[key] = config[key].replace(/\$\{\{ secrets\.(.*?) \}\}/g, (_, group1) => {
|
|
60
60
|
if (!secrets[group1]) {
|
|
61
61
|
throw new SecretNotFound(group1);
|
|
62
62
|
}
|
|
@@ -32,16 +32,18 @@ const child_process_1 = require("child_process");
|
|
|
32
32
|
const path = __importStar(require("path"));
|
|
33
33
|
const debug_1 = __importDefault(require("debug"));
|
|
34
34
|
const node_readline_1 = require("node:readline");
|
|
35
|
-
const messageLog = (0, debug_1.default)(
|
|
35
|
+
const messageLog = (0, debug_1.default)('firestartr:provisioner:terraform');
|
|
36
36
|
async function runTerraform(entity, command) {
|
|
37
37
|
// ! If we are into a compiled environmet, the folder must be set to current dir plus /provisioner because everything is on the same file at projects root
|
|
38
38
|
// ? Is there a better way to check compiled env than look for packages directory in path ?
|
|
39
|
-
let workDir = __dirname.split(path.sep).includes('packages')
|
|
40
|
-
|
|
39
|
+
let workDir = __dirname.split(path.sep).includes('packages')
|
|
40
|
+
? path.join(__dirname, '..')
|
|
41
|
+
: path.join(__dirname, 'provisioner');
|
|
42
|
+
workDir = workDir.split('/dist')[0];
|
|
41
43
|
workDir = path.join(workDir, 'cdktf.out', 'stacks', `${entity.kind.toLowerCase()}--${entity['spec']['firestartr']['tfStateKey']}`);
|
|
42
44
|
messageLog(`Running terraform with command ${command} in ${workDir}`);
|
|
43
45
|
return new Promise((ok, ko) => {
|
|
44
|
-
const terraformProcess = (0, child_process_1.spawn)(
|
|
46
|
+
const terraformProcess = (0, child_process_1.spawn)('terraform', [...command], {
|
|
45
47
|
cwd: workDir,
|
|
46
48
|
env: {
|
|
47
49
|
PATH: process.env.PATH,
|
|
@@ -52,21 +54,21 @@ async function runTerraform(entity, command) {
|
|
|
52
54
|
TOKEN: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.token),
|
|
53
55
|
KUBERNETES_SERVICE_HOST: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.kubernetesServiceHost),
|
|
54
56
|
KUBERNETES_SERVICE_PORT: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.kubernetesServicePort),
|
|
55
|
-
CDKTF_LOG_LEVEL:
|
|
56
|
-
}
|
|
57
|
+
CDKTF_LOG_LEVEL: 'DEBUG',
|
|
58
|
+
},
|
|
57
59
|
});
|
|
58
60
|
let output = '';
|
|
59
|
-
terraformProcess.stdout.on(
|
|
61
|
+
terraformProcess.stdout.on('data', (log) => {
|
|
60
62
|
const line = catalog_common_1.default.io.stripAnsi(log.toString());
|
|
61
63
|
output += line;
|
|
62
64
|
console.log(line);
|
|
63
65
|
});
|
|
64
|
-
terraformProcess.stderr.on(
|
|
66
|
+
terraformProcess.stderr.on('data', (log) => {
|
|
65
67
|
const line = catalog_common_1.default.io.stripAnsi(log.toString());
|
|
66
68
|
output += line;
|
|
67
69
|
console.log(line);
|
|
68
70
|
});
|
|
69
|
-
terraformProcess.on(
|
|
71
|
+
terraformProcess.on('exit', async (code) => {
|
|
70
72
|
console.log(`child process exited with code ${code}`);
|
|
71
73
|
if (code !== 0) {
|
|
72
74
|
console.log(output);
|
|
@@ -80,11 +82,11 @@ async function runTerraform(entity, command) {
|
|
|
80
82
|
}
|
|
81
83
|
exports.runTerraform = runTerraform;
|
|
82
84
|
function terraformInit(entity) {
|
|
83
|
-
return runTerraform(entity, [
|
|
85
|
+
return runTerraform(entity, ['init', '-no-color']);
|
|
84
86
|
}
|
|
85
87
|
exports.terraformInit = terraformInit;
|
|
86
88
|
function terraformPlan(entity) {
|
|
87
|
-
return runTerraform(entity, [
|
|
89
|
+
return runTerraform(entity, ['plan', '-no-color']);
|
|
88
90
|
}
|
|
89
91
|
exports.terraformPlan = terraformPlan;
|
|
90
92
|
async function terraformApply(entity, isImport = false, skipPlan = false) {
|
|
@@ -106,15 +108,15 @@ Type 'yes' to continue:`);
|
|
|
106
108
|
});
|
|
107
109
|
}
|
|
108
110
|
if (line === 'yes' || skipPlan) {
|
|
109
|
-
return runTerraform(entity, [
|
|
111
|
+
return runTerraform(entity, ['apply', '-no-color', '-auto-approve']);
|
|
110
112
|
}
|
|
111
113
|
else {
|
|
112
114
|
console.log(`🚀 Skipping apply for entity ${entity.kind} ${entity.metadata.name}`);
|
|
113
|
-
return Promise.resolve(
|
|
115
|
+
return Promise.resolve('');
|
|
114
116
|
}
|
|
115
117
|
}
|
|
116
118
|
exports.terraformApply = terraformApply;
|
|
117
119
|
function terraformDestroy(entity) {
|
|
118
|
-
return runTerraform(entity, [
|
|
120
|
+
return runTerraform(entity, ['destroy', '-no-color', '-auto-approve']);
|
|
119
121
|
}
|
|
120
122
|
exports.terraformDestroy = terraformDestroy;
|