@goldstack/utils-terraform-aws 0.4.17 → 0.4.18
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/dist/src/tfState.d.ts.map +1 -1
- package/dist/src/tfState.js +31 -33
- package/dist/src/tfState.js.map +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tfState.d.ts","sourceRoot":"","sources":["../../src/tfState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tfState.d.ts","sourceRoot":"","sources":["../../src/tfState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAyEvD,eAAO,MAAM,WAAW,WAAkB;IACxC,WAAW,EAAE,qBAAqB,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,KAAG,QAAQ,IAAI,CAWf,CAAC"}
|
package/dist/src/tfState.js
CHANGED
|
@@ -1,36 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.createState = void 0;
|
|
7
|
-
const
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
8
6
|
const assertDynamoDBTable = async (params) => {
|
|
9
7
|
// defining a table as required by Terraform https://www.terraform.io/docs/language/settings/backends/s3.html#dynamodb_table
|
|
10
|
-
const tableDef = {
|
|
11
|
-
AttributeDefinitions: [
|
|
12
|
-
{
|
|
13
|
-
AttributeName: 'LockID',
|
|
14
|
-
AttributeType: 'S',
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
KeySchema: [
|
|
18
|
-
{
|
|
19
|
-
AttributeName: 'LockID',
|
|
20
|
-
KeyType: 'HASH',
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
TableName: params.tableName,
|
|
24
|
-
BillingMode: 'PAY_PER_REQUEST',
|
|
25
|
-
};
|
|
26
8
|
try {
|
|
27
|
-
await params.dynamoDB.
|
|
9
|
+
await params.dynamoDB.send(new client_dynamodb_1.CreateTableCommand({
|
|
10
|
+
AttributeDefinitions: [
|
|
11
|
+
{
|
|
12
|
+
AttributeName: 'LockID',
|
|
13
|
+
AttributeType: 'S',
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
KeySchema: [
|
|
17
|
+
{
|
|
18
|
+
AttributeName: 'LockID',
|
|
19
|
+
KeyType: 'HASH',
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
TableName: params.tableName,
|
|
23
|
+
BillingMode: 'PAY_PER_REQUEST',
|
|
24
|
+
}));
|
|
28
25
|
}
|
|
29
26
|
catch (e) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (error && error.code !== 'ResourceInUseException') {
|
|
33
|
-
throw new Error(error.message);
|
|
27
|
+
if (!(e instanceof client_dynamodb_1.ResourceInUseException)) {
|
|
28
|
+
throw new Error(e.message);
|
|
34
29
|
}
|
|
35
30
|
}
|
|
36
31
|
};
|
|
@@ -40,23 +35,26 @@ const assertS3Bucket = async (params) => {
|
|
|
40
35
|
};
|
|
41
36
|
try {
|
|
42
37
|
console.log('Accessing/creating bucket for Terraform state', bucketParams.Bucket);
|
|
43
|
-
await params.s3.
|
|
38
|
+
await params.s3.send(new client_s3_1.CreateBucketCommand(bucketParams));
|
|
44
39
|
}
|
|
45
|
-
catch (
|
|
40
|
+
catch (e) {
|
|
46
41
|
// if bucket already exists, ignore error
|
|
47
|
-
if (
|
|
48
|
-
console.error('Cannot create bucket ', params.bucketName, ' error code',
|
|
49
|
-
throw new Error('Cannot create S3 state bucket: ' +
|
|
42
|
+
if (!(e instanceof client_s3_1.BucketAlreadyOwnedByYou)) {
|
|
43
|
+
console.error('Cannot create bucket ', params.bucketName, ' error code', e.code);
|
|
44
|
+
throw new Error('Cannot create S3 state bucket: ' + e.message);
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
47
|
};
|
|
53
48
|
const createState = async (params) => {
|
|
54
|
-
const dynamoDB = new
|
|
55
|
-
apiVersion: '2012-08-10',
|
|
49
|
+
const dynamoDB = new client_dynamodb_1.DynamoDBClient({
|
|
56
50
|
region: params.awsRegion,
|
|
51
|
+
credentials: params.credentials,
|
|
57
52
|
});
|
|
58
53
|
await assertDynamoDBTable({ dynamoDB, tableName: params.dynamoDBTableName });
|
|
59
|
-
const s3 = new
|
|
54
|
+
const s3 = new client_s3_1.S3Client({
|
|
55
|
+
region: params.awsRegion,
|
|
56
|
+
credentials: params.credentials,
|
|
57
|
+
});
|
|
60
58
|
await assertS3Bucket({ s3, bucketName: params.bucketName });
|
|
61
59
|
};
|
|
62
60
|
exports.createState = createState;
|
package/dist/src/tfState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tfState.js","sourceRoot":"","sources":["../../src/tfState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tfState.js","sourceRoot":"","sources":["../../src/tfState.ts"],"names":[],"mappings":";;;AAEA,kDAI4B;AAE5B,8DAIkC;AAElC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAGlC,EAAE,EAAE;IACH,4HAA4H;IAC5H,IAAI;QACF,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAI,oCAAkB,CAAC;YACrB,oBAAoB,EAAE;gBACpB;oBACE,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,GAAG;iBACnB;aACF;YACD,SAAS,EAAE;gBACT;oBACE,aAAa,EAAE,QAAQ;oBACvB,OAAO,EAAE,MAAM;iBAChB;aACF;YACD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,iBAAiB;SAC/B,CAAC,CACH,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,CAAC,YAAY,wCAAsB,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC5B;KACF;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAAE,MAG7B,EAAiB,EAAE;IAClB,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,MAAM,CAAC,UAAU;KAC1B,CAAC;IACF,IAAI;QACF,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,YAAY,CAAC,MAAM,CACpB,CAAC;QAEF,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;KAC7D;IAAC,OAAO,CAAC,EAAE;QACV,yCAAyC;QACzC,IAAI,CAAC,CAAC,CAAC,YAAY,mCAAuB,CAAC,EAAE;YAC3C,OAAO,CAAC,KAAK,CACX,uBAAuB,EACvB,MAAM,CAAC,UAAU,EACjB,aAAa,EACb,CAAC,CAAC,IAAI,CACP,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;SAChE;KACF;AACH,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,KAAK,EAAE,MAKjC,EAAiB,EAAE;IAClB,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,GAAG,IAAI,oBAAQ,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AAhBW,QAAA,WAAW,eAgBtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/utils-terraform-aws",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.18",
|
|
4
4
|
"description": "Easily deploy Terraform IaC with npm package scripts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
"version:apply:force": "yarn version $@ && yarn version apply"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
+
"@aws-sdk/client-dynamodb": "3.485.0",
|
|
40
|
+
"@aws-sdk/client-s3": "3.485.0",
|
|
39
41
|
"@aws-sdk/types": "^3.485.0",
|
|
40
42
|
"@goldstack/infra-aws": "0.4.15",
|
|
41
43
|
"@goldstack/utils-config": "0.4.9",
|
|
42
44
|
"@goldstack/utils-log": "0.3.9",
|
|
43
45
|
"@goldstack/utils-package": "0.4.9",
|
|
44
46
|
"@goldstack/utils-sh": "0.5.9",
|
|
45
|
-
"@goldstack/utils-terraform": "0.4.16"
|
|
46
|
-
"aws-sdk": "2.1525.0"
|
|
47
|
+
"@goldstack/utils-terraform": "0.4.16"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@goldstack/utils-git": "0.2.9",
|