@hiiretail/gcp-infra-generators 1.0.0 → 1.0.1
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/generators/clan-resources/clan-project/index.js +89 -189
- package/dist/generators/common-resources/bigquery/index.js +172 -267
- package/dist/generators/common-resources/budget/index.js +67 -153
- package/dist/generators/common-resources/cloud-armor/index.js +17 -167
- package/dist/generators/common-resources/cloud-storage/index.js +96 -205
- package/dist/generators/common-resources/cloudsql/index.js +71 -177
- package/dist/generators/common-resources/cloudsql-database/index.js +40 -287
- package/dist/generators/common-resources/confluent-cluster/index.js +23 -132
- package/dist/generators/common-resources/datastore/index.js +48 -194
- package/dist/generators/common-resources/elastic-cloud/index.js +22 -132
- package/dist/generators/common-resources/elastic-index-policy/handle-yaml.js +76 -0
- package/dist/generators/common-resources/elastic-index-policy/index.js +131 -286
- package/dist/generators/common-resources/elastic-template/index.js +52 -162
- package/dist/generators/common-resources/firestore/index.js +93 -233
- package/dist/generators/common-resources/iam/index.js +35 -157
- package/dist/generators/common-resources/iam/valid-prefix.js +8 -0
- package/dist/generators/common-resources/kafka-connect/index.js +35 -144
- package/dist/generators/common-resources/kafka-topics/index.js +20 -129
- package/dist/generators/common-resources/kms/index.js +31 -141
- package/dist/generators/common-resources/memorystore/index.js +42 -328
- package/dist/generators/common-resources/monitoring/handle-yaml.js +49 -0
- package/dist/generators/common-resources/monitoring/index.js +144 -322
- package/dist/generators/common-resources/monitoring/validate.js +58 -0
- package/dist/generators/common-resources/pubsub/append.js +130 -0
- package/dist/generators/common-resources/pubsub/get-gcp-projects.js +34 -0
- package/dist/generators/common-resources/pubsub/handle-subscribers.js +68 -0
- package/dist/generators/common-resources/pubsub/index.js +194 -536
- package/dist/generators/common-resources/pubsub/validate.js +53 -0
- package/dist/generators/common-resources/scheduler/append.js +85 -0
- package/dist/generators/common-resources/scheduler/index.js +62 -249
- package/dist/generators/common-resources/spanner/append.js +31 -0
- package/dist/generators/common-resources/spanner/index.js +102 -269
- package/dist/generators/common-resources/spanner/validate.js +38 -0
- package/dist/generators/docs/rca/index.js +25 -135
- package/dist/generators/docs/runbook/index.js +16 -126
- package/dist/generators/docs/srb/index.js +33 -147
- package/dist/generators/docs/srb/run-docker.js +2 -0
- package/dist/generators/init/clan-infra/gcp-projects.js +47 -0
- package/dist/generators/init/clan-infra/index.js +95 -290
- package/dist/generators/init/clan-infra/tribe-clan-repo.js +38 -0
- package/dist/generators/init/clan-infra/validate.js +8 -0
- package/dist/generators/maintenance/manage-states/index.js +142 -219
- package/dist/generators/maintenance/update-modules/index.js +56 -155
- package/dist/generators/organization/clan-project/googlecloud.js +124 -0
- package/dist/generators/organization/clan-project/index.js +81 -303
- package/dist/node_modules/.package-lock.json +81 -23
- package/dist/package.json +45 -0
- package/dist/src/BaseGenerator.js +84 -0
- package/dist/src/SecretsGenerator.js +137 -0
- package/dist/src/cli.js +54 -255
- package/dist/src/dependency-check.js +48 -0
- package/dist/src/update-check.js +38 -0
- package/dist/src/validators.js +33 -0
- package/dist/src/yeoman.js +80 -0
- package/package.json +1 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const inquirer = require('inquirer');
|
|
4
|
+
const yeoman = require('yeoman-environment');
|
|
5
|
+
|
|
6
|
+
let env;
|
|
7
|
+
|
|
8
|
+
const lookupGenerators = (dir) => {
|
|
9
|
+
const opts = {
|
|
10
|
+
packagePaths: dir,
|
|
11
|
+
localOnly: true,
|
|
12
|
+
filePatterns: '*/index.js',
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const generators = [];
|
|
16
|
+
|
|
17
|
+
env.lookup(opts, () => {
|
|
18
|
+
Object.values(env.getGeneratorsMeta()).forEach(
|
|
19
|
+
({ resolved, namespace }) => {
|
|
20
|
+
env.register(resolved, namespace);
|
|
21
|
+
const generatorJson = path.join(
|
|
22
|
+
path.dirname(resolved),
|
|
23
|
+
'generator.json',
|
|
24
|
+
);
|
|
25
|
+
const name =
|
|
26
|
+
JSON.parse(fs.readFileSync(generatorJson, 'utf8')).name || namespace;
|
|
27
|
+
generators.push({
|
|
28
|
+
name,
|
|
29
|
+
value: namespace,
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return generators;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const runYeoman = async (dir, name, query) => {
|
|
39
|
+
if (!env) {
|
|
40
|
+
env = yeoman.createEnv();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const generators = lookupGenerators(dir);
|
|
44
|
+
if (generators.length === 1) {
|
|
45
|
+
return env.run(generators[0].value);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (name) {
|
|
49
|
+
const match = generators.find((g) => g.value.endsWith(`:${name}`));
|
|
50
|
+
if (match) {
|
|
51
|
+
return env.run(match.value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return env.adapter
|
|
56
|
+
.prompt([
|
|
57
|
+
{
|
|
58
|
+
type: 'list',
|
|
59
|
+
name: 'generator',
|
|
60
|
+
message: query,
|
|
61
|
+
choices: [...generators, new inquirer.Separator(), 'Exit'],
|
|
62
|
+
store: false,
|
|
63
|
+
},
|
|
64
|
+
])
|
|
65
|
+
.then(({ generator }) => {
|
|
66
|
+
if (generator !== 'Exit') {
|
|
67
|
+
return env.run(generator);
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const setEnvironment = (yeomanEnv) => {
|
|
74
|
+
env = yeomanEnv;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
module.exports = {
|
|
78
|
+
runYeoman,
|
|
79
|
+
setEnvironment,
|
|
80
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hiiretail/gcp-infra-generators",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Infrastructure as code generator for GCP.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "node esbuild.js && npm run build:deps",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"yeoman-generator": "^4.13.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"esbuild": "^0.25.8",
|
|
42
41
|
"mock-fs": "^5.5.0",
|
|
43
42
|
"yeoman-assert": "^3.1.1",
|
|
44
43
|
"yeoman-test": "^2.7.0"
|