@drunk-pulumi/azure 1.0.57 → 1.0.59
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/Builder/PostgreSqlBuilder.js +25 -5
- package/package.json +1 -1
|
@@ -46,6 +46,7 @@ const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
|
46
46
|
const Helper_2 = require("../VNet/Helper");
|
|
47
47
|
const pulumi_1 = require("@pulumi/pulumi");
|
|
48
48
|
const VNet_1 = require("../VNet");
|
|
49
|
+
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
49
50
|
class PostgreSqlBuilder extends types_1.Builder {
|
|
50
51
|
args;
|
|
51
52
|
_instanceName;
|
|
@@ -87,9 +88,9 @@ class PostgreSqlBuilder extends types_1.Builder {
|
|
|
87
88
|
return this;
|
|
88
89
|
}
|
|
89
90
|
buildLogin() {
|
|
91
|
+
const { name } = this.args;
|
|
90
92
|
if (!this._generateLogin)
|
|
91
93
|
return;
|
|
92
|
-
const { name, vaultInfo } = this.args;
|
|
93
94
|
const login = (0, Random_1.randomLogin)({
|
|
94
95
|
name: this._instanceName,
|
|
95
96
|
loginPrefix: name,
|
|
@@ -99,10 +100,8 @@ class PostgreSqlBuilder extends types_1.Builder {
|
|
|
99
100
|
policy: 'yearly',
|
|
100
101
|
options: { lower: true, upper: true, special: false, numeric: true },
|
|
101
102
|
},
|
|
102
|
-
vaultInfo,
|
|
103
103
|
});
|
|
104
104
|
this._loginInfo = { adminLogin: login.userName, password: login.password };
|
|
105
|
-
login.userName.apply((u) => console.log(`[${this._instanceName}]: The login is ${u}.`));
|
|
106
105
|
}
|
|
107
106
|
buildUID() {
|
|
108
107
|
const { group, vaultInfo, envRoles, dependsOn } = this.args;
|
|
@@ -180,6 +179,27 @@ class PostgreSqlBuilder extends types_1.Builder {
|
|
|
180
179
|
ignoreChanges: [...ignoreChanges, 'administratorLogin'],
|
|
181
180
|
});
|
|
182
181
|
}
|
|
182
|
+
buildSecrets() {
|
|
183
|
+
const { vaultInfo, dependsOn } = this.args;
|
|
184
|
+
//The username and password already provided.
|
|
185
|
+
//Just add them to key vault
|
|
186
|
+
if (vaultInfo) {
|
|
187
|
+
(0, CustomHelper_1.addCustomSecrets)({
|
|
188
|
+
vaultInfo, dependsOn,
|
|
189
|
+
items: [{
|
|
190
|
+
name: `${this._instanceName}-host}`,
|
|
191
|
+
value: this._sqlInstance.fullyQualifiedDomainName,
|
|
192
|
+
}, {
|
|
193
|
+
name: `${this._instanceName}-username}`,
|
|
194
|
+
value: this._loginInfo.adminLogin,
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: `${this._instanceName}-pass`,
|
|
198
|
+
value: this._loginInfo.password
|
|
199
|
+
}]
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
183
203
|
buildNetwork() {
|
|
184
204
|
const { group } = this.args;
|
|
185
205
|
if (this._network?.ipAddresses) {
|
|
@@ -223,7 +243,7 @@ class PostgreSqlBuilder extends types_1.Builder {
|
|
|
223
243
|
this.buildLogin();
|
|
224
244
|
this.buildUID();
|
|
225
245
|
this.buildPostgreSql();
|
|
226
|
-
|
|
246
|
+
this.buildSecrets();
|
|
227
247
|
this.buildNetwork();
|
|
228
248
|
this.buildDatabases();
|
|
229
249
|
return {
|
|
@@ -234,4 +254,4 @@ class PostgreSqlBuilder extends types_1.Builder {
|
|
|
234
254
|
}
|
|
235
255
|
}
|
|
236
256
|
exports.default = (props) => new PostgreSqlBuilder(props);
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZVNxbEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci9Qb3N0Z3JlU3FsQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQVNpQjtBQUVqQixzQ0FBb0Q7QUFDcEQsMkNBQTZDO0FBQzdDLGlGQUFtRTtBQUVuRSwrQ0FBbUQ7QUFDbkQsd0ZBQWdFO0FBQ2hFLHVEQUF5QztBQUN6QywyQ0FBa0Q7QUFDbEQsMkNBQXdDO0FBQ3hDLGtDQUFnRDtBQUNoRCwyREFBNEQ7QUFFNUQsTUFBTSxpQkFDSixTQUFRLGVBQXFCO0lBY1Q7SUFaSCxhQUFhLENBQVM7SUFDL0IsWUFBWSxHQUFrQyxTQUFTLENBQUM7SUFDeEQsSUFBSSxHQUNWLFNBQVMsQ0FBQztJQUVKLElBQUksR0FBeUMsU0FBUyxDQUFDO0lBQ3ZELFVBQVUsR0FBMEIsU0FBUyxDQUFDO0lBQzlDLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsUUFBUSxHQUE2QyxTQUFTLENBQUM7SUFDL0QsUUFBUSxHQUE2QyxTQUFTLENBQUM7SUFDL0QsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdkMsWUFBb0IsSUFBMkI7UUFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRE0sU0FBSSxHQUFKLElBQUksQ0FBdUI7UUFFN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxPQUFPLENBQUMsS0FBK0I7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sU0FBUyxDQUFDLEtBQWdCO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8s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
|