runlify 0.0.702 → 0.0.703
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/projectsGeneration/args.js +1 -1
- package/build/projectsGeneration/builders/TelegramBotBuilder.js +33 -3
- package/build/projectsGeneration/fileCleaners/back/cleanBack.js +50 -0
- package/build/projectsGeneration/fileCleaners/back/graphServices/cleanGraphServices.js +73 -0
- package/build/projectsGeneration/fileCleaners/back/services/cleanServices.js +81 -0
- package/build/projectsGeneration/fileCleaners/cleanFiles.js +52 -0
- package/build/projectsGeneration/fileCleaners/ui/cleanUi.js +53 -0
- package/build/projectsGeneration/fileCleaners/ui/pages/cleanPages.js +73 -0
- package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgets.js +54 -0
- package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgetsByType.js +75 -0
- package/build/projectsGeneration/genGraphSchemesByLocalGenerator.js +1 -1
- package/build/projectsGeneration/generateProject.js +11 -4
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/values.js +3 -6
- package/build/projectsGeneration/generators/fileTemplates/back/environment/gitlabCi.js +6 -15
- package/build/projectsGeneration/generators/fileTemplates/ui/ResourcesPage.js +2 -3
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/values.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/gitlabCi.js +3 -6
- package/build/projectsGeneration/generators/fileTemplates/ui/getDefaultMenu.js +2 -3
- package/build/projectsGeneration/generators/fileTemplates/ui/widgets/list/ListWidget.js +3 -3
- package/build/projectsGeneration/types.js +1 -3
- package/build/types/projectsGeneration/args.d.ts +3 -3
- package/build/types/projectsGeneration/builders/TelegramBotBuilder.d.ts +7 -1
- package/build/types/projectsGeneration/builders/buildedTypes.d.ts +1 -1
- package/build/types/projectsGeneration/fileCleaners/back/cleanBack.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/back/graphServices/cleanGraphServices.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/back/services/cleanServices.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/cleanFiles.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/ui/cleanUi.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/ui/pages/cleanPages.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/ui/widgets/cleanWidgets.d.ts +3 -0
- package/build/types/projectsGeneration/fileCleaners/ui/widgets/cleanWidgetsByType.d.ts +3 -0
- package/build/types/projectsGeneration/genGraphSchemesByLocalGenerator.d.ts +2 -2
- package/build/types/projectsGeneration/generateProject.d.ts +81 -2
- package/build/types/projectsGeneration/generators/fileTemplates/back/elastic/jobs.d.ts +0 -4
- package/build/types/projectsGeneration/types.d.ts +4 -2
- package/package.json +1 -1
|
@@ -119,6 +119,7 @@ var backDocSpec_1 = __importDefault(require("./generators/fileTemplates/back/env
|
|
|
119
119
|
var generateAdditionalService_1 = require("./generateAdditionalService");
|
|
120
120
|
var IntegrationClients_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients"));
|
|
121
121
|
var integrationClientConstrictors_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors"));
|
|
122
|
+
var cleanFiles_1 = __importDefault(require("./fileCleaners/cleanFiles"));
|
|
122
123
|
// Бек (generateBack)
|
|
123
124
|
// Исходники бека (generateBackSrc)
|
|
124
125
|
// Исходники бека (generateBackSrcEntity)
|
|
@@ -570,11 +571,15 @@ exports.generateFront = generateFront;
|
|
|
570
571
|
var generateProject = function (system, initialOpts) {
|
|
571
572
|
if (initialOpts === void 0) { initialOpts = types_1.defaultBootstrapEntityOptions; }
|
|
572
573
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
573
|
-
var opts, args, entities, prjBackSrcPrefixedDir, prjDetachedBackSrcDir, graphMetaServiceDir, servicesDir, graphDir, generatedAdditionalServices, restRouter, prjUiSrcPrefixedDir, prjDetachedUiSrcDir, _a, resources, resourcesChunk0, resourcesChunk1, generatedResources, generatedUiMetaPage, generatedResources, generatedSubMenu, generatedAdditionalMenu, generatedResources, generatedUiAdditionalRoutesTmpl, generatedResources, uiFunctionsDir, generatedResources;
|
|
574
|
+
var dir, detachedBackProject, detachedUiProject, opts, args, entities, prjBackSrcPrefixedDir, prjDetachedBackSrcDir, graphMetaServiceDir, servicesDir, graphDir, generatedAdditionalServices, restRouter, prjUiSrcPrefixedDir, prjDetachedUiSrcDir, _a, resources, resourcesChunk0, resourcesChunk1, generatedResources, generatedUiMetaPage, generatedResources, generatedSubMenu, generatedAdditionalMenu, generatedResources, generatedUiAdditionalRoutesTmpl, generatedResources, uiFunctionsDir, generatedResources;
|
|
574
575
|
return __generator(this, function (_b) {
|
|
575
576
|
switch (_b.label) {
|
|
576
577
|
case 0:
|
|
577
|
-
|
|
578
|
+
dir = (0, fs_jetpack_1.cwd)('..').cwd();
|
|
579
|
+
detachedBackProject = (0, path_1.join)(dir, "".concat(initialOpts.projectPrefix, "-back"));
|
|
580
|
+
detachedUiProject = (0, path_1.join)(dir, "".concat(initialOpts.projectPrefix, "-ui"));
|
|
581
|
+
;
|
|
582
|
+
opts = __assign(__assign(__assign({}, types_1.defaultBootstrapEntityOptions), initialOpts), { detachedBackProject: detachedBackProject, detachedUiProject: detachedUiProject });
|
|
578
583
|
args = (0, args_1.prepareProjectWideGenerationArgs)(system, opts);
|
|
579
584
|
return [4 /*yield*/, (0, exports.generateBack)(args)];
|
|
580
585
|
case 1:
|
|
@@ -591,7 +596,9 @@ var generateProject = function (system, initialOpts) {
|
|
|
591
596
|
// prjBackSrcPrefixedDir = join(__dirname, '..', '..', prefix);
|
|
592
597
|
// }
|
|
593
598
|
// Pre grapgql types compose generation
|
|
594
|
-
return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([
|
|
599
|
+
return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([
|
|
600
|
+
(0, cleanFiles_1.default)(args)
|
|
601
|
+
], entities.map(function (entity) {
|
|
595
602
|
return (0, generateEntity_1.generateEntity)((0, args_1.prepareEntityWideGenerationArgs)(__assign(__assign({}, args), { options: __assign(__assign({}, opts), { typesOnly: true }) }), entity));
|
|
596
603
|
}), true), system.additionalServices.map(function (service) {
|
|
597
604
|
return (0, generateAdditionalService_1.generateAdditionalService)((0, args_1.prepareAdditionalServiceWideGenerationArgs)(__assign(__assign({}, args), { options: __assign(__assign({}, opts), { typesOnly: true }) }), service));
|
|
@@ -745,4 +752,4 @@ var generateProject = function (system, initialOpts) {
|
|
|
745
752
|
});
|
|
746
753
|
};
|
|
747
754
|
exports.default = generateProject;
|
|
748
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBMkI7QUFDM0IscUVBQXlFO0FBQ3pFLDZFQUFpRjtBQUNqRixtR0FBd0c7QUFDeEcsZ0dBQStFO0FBQy9FLDZFQUFpRjtBQUNqRixzRkFBcUU7QUFDckUsK0VBQW1GO0FBQ25GLCtFQUFtRjtBQUNuRiw2REFBMkQ7QUFDM0QsNkVBQW9GO0FBQ3BGLHFGQUFtRjtBQUNuRixpQ0FBK0U7QUFDL0UsbURBQWlEO0FBQ2pELDhFQUFnRjtBQUNoRixpQ0FBOEM7QUFDOUMsbUZBQXVGO0FBQ3ZGLHFGQUF5RjtBQUN6RixtRUFBdUU7QUFDdkUsZ0ZBQXdGO0FBQ3hGLGtGQUE2RjtBQUM3RixrR0FBb0c7QUFFcEcseUZBQW1HO0FBQ25HLHlDQUFrQztBQUNsQywrRkFBeUc7QUFDekcsaUVBQTJFO0FBQzNFLHdDQUF1RDtBQUN2RCxpR0FBMkc7QUFDM0csNkdBQXVIO0FBQ3ZILDJHQUFxSDtBQUNySCwrQkFNZTtBQUNmLHFGQUF1RjtBQUN2RixpSUFBMEc7QUFDMUcsc0hBQW9IO0FBQ3BILHFIQUE4RjtBQUM5RixtSEFBNEY7QUFDNUYsdUNBQTRDO0FBQzVDLDJHQUF3RjtBQUN4RixpSEFBOEY7QUFDOUYsdUdBQXlGO0FBQ3pGLHlHQUFzRjtBQUN0Rix5SEFBc0c7QUFDdEcsNkRBQStEO0FBQy9ELG1FQUFxRTtBQUNyRSx5RUFBK0U7QUFDL0UsbUVBQXlFO0FBQ3pFLHFIQUF1RztBQUN2RyxxRUFBbUU7QUFDbkUsNkVBQTJFO0FBQzNFLCtGQUFtRztBQUNuRywyRUFBNkY7QUFDN0YseUlBQWtIO0FBQ2xILDJJQUE0SDtBQUM1SCwyQ0FB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
|
|
755
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBMkI7QUFDM0IscUVBQXlFO0FBQ3pFLDZFQUFpRjtBQUNqRixtR0FBd0c7QUFDeEcsZ0dBQStFO0FBQy9FLDZFQUFpRjtBQUNqRixzRkFBcUU7QUFDckUsK0VBQW1GO0FBQ25GLCtFQUFtRjtBQUNuRiw2REFBMkQ7QUFDM0QsNkVBQW9GO0FBQ3BGLHFGQUFtRjtBQUNuRixpQ0FBb0Y7QUFDcEYsbURBQWlEO0FBQ2pELDhFQUFnRjtBQUNoRixpQ0FBOEM7QUFDOUMsbUZBQXVGO0FBQ3ZGLHFGQUF5RjtBQUN6RixtRUFBdUU7QUFDdkUsZ0ZBQXdGO0FBQ3hGLGtGQUE2RjtBQUM3RixrR0FBb0c7QUFFcEcseUZBQW1HO0FBQ25HLHlDQUF1QztBQUN2QywrRkFBeUc7QUFDekcsaUVBQTJFO0FBQzNFLHdDQUF1RDtBQUN2RCxpR0FBMkc7QUFDM0csNkdBQXVIO0FBQ3ZILDJHQUFxSDtBQUNySCwrQkFNZTtBQUNmLHFGQUF1RjtBQUN2RixpSUFBMEc7QUFDMUcsc0hBQW9IO0FBQ3BILHFIQUE4RjtBQUM5RixtSEFBNEY7QUFDNUYsdUNBQTRDO0FBQzVDLDJHQUF3RjtBQUN4RixpSEFBOEY7QUFDOUYsdUdBQXlGO0FBQ3pGLHlHQUFzRjtBQUN0Rix5SEFBc0c7QUFDdEcsNkRBQStEO0FBQy9ELG1FQUFxRTtBQUNyRSx5RUFBK0U7QUFDL0UsbUVBQXlFO0FBQ3pFLHFIQUF1RztBQUN2RyxxRUFBbUU7QUFDbkUsNkVBQTJFO0FBQzNFLCtGQUFtRztBQUNuRywyRUFBNkY7QUFDN0YseUlBQWtIO0FBQ2xILDJJQUE0SDtBQUM1SCwyQ0FB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
|
package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.js
CHANGED
|
@@ -7,10 +7,10 @@ var chartBackTmpl = function (_a) {
|
|
|
7
7
|
var prefix = _a.system.prefix, system = _a.system, options = _a.options;
|
|
8
8
|
return "".concat(options.skipWarningThisIsGenerated
|
|
9
9
|
? ''
|
|
10
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n\n{{- if .Values.back.enabled }}\n"), "apiVersion: v1\nkind: Service\nmetadata:\n name:
|
|
10
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n\n{{- if .Values.back.enabled }}\n"), "apiVersion: v1\nkind: Service\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n projectName: {{ $.Values.global.projectName }}\n clusterName: {{ $.Values.global.clusterName }}\n env: {{ $.Values.global.env }}\n deployKind: {{ $.Values.global.deployKind }}\n prometheus: enable\nspec:\n ports:\n - name: http\n port: 3000\n protocol: TCP\n targetPort: 3000\n selector:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\nspec:\n replicas: {{ $.Values.back.replicas }}\n strategy:\n type: RollingUpdate\n rollingUpdate:\n maxSurge: 3\n selector:\n matchLabels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n template:\n metadata:\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n projectName: {{ $.Values.global.projectName }}\n clusterName: {{ $.Values.global.clusterName }}\n env: {{ $.Values.global.env }}\n deployKind: {{ $.Values.global.deployKind }}\n spec:\n imagePullSecrets:\n - name: {{ $.Release.Name }}-pullsecret\n containers:\n - name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n image: {{ $.Values.dockerRegistry.domain }}/{{ $.Values.global.projectGroup }}/{{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}{{ $.Values.app.tag }}\n ports:\n - name: main-port\n containerPort: 3000\n imagePullPolicy: Always\n livenessProbe:\n httpGet:\n path: /health?type=liveness\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n periodSeconds: 5\n readinessProbe:\n httpGet:\n path: /health?type=readiness\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n periodSeconds: 5\n startupProbe:\n httpGet:\n path: /health?type=startup\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n failureThreshold: 10\n periodSeconds: 10\n resources:\n requests:\n memory: {{ $.Values.back.requests.memory }}\n cpu: {{ $.Values.back.requests.cpu }}\n limits:\n memory: {{ $.Values.back.limits.memory }}\n cpu: {{ $.Values.back.limits.cpu }}\n securityContext:\n runAsNonRoot: true\n # readOnlyRootFilesystem: true\n runAsUser: 1000\n env:\n - name: NODE_ENV\n value: production\n - name: RANDOM\n value: {{ $.Values.random | quote }}\n - name: ENV\n value: '{{ $.Values.global.env }}'\n - name: APOLLO_KEY\n value: {{ $.Values.apollo.key | quote }}").concat(system.configVars
|
|
11
11
|
.filter(function (v) { return v.scopes.includes('back'); })
|
|
12
12
|
.map(function (v) { return "\n - name: ".concat((0, change_case_1.constantCase)(v.name), "\n value: {{ $.Values.").concat(v.name, " | quote }}"); })
|
|
13
13
|
.join(''), "\n\n - name: K8S_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: K8S_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: K8S_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n---\n{{- end }}\n");
|
|
14
14
|
};
|
|
15
15
|
exports.chartBackTmpl = chartBackTmpl;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svZW52aXJvbm1lbnQvY2hhcnQvdGVtcGxhdGVzL2JhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTBDO0FBRTFDLGlEQUEwRDtBQUVuRCxJQUFNLGFBQWEsR0FBRyxVQUFDLEVBSUY7UUFIaEIsTUFBTSxtQkFBQSxFQUNoQixNQUFNLFlBQUEsRUFDTixPQUFPLGFBQUE7SUFDd0IsT0FBQSxVQUMvQixPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGNBQ0Ysd0JBQWdCLHlDQUduQiw2aUdBNkZtRCxNQUFNLENBQUMsVUFBVTtTQUN4RCxNQUFNLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBekIsQ0FBeUIsQ0FBQztTQUN4QyxHQUFHLENBQ0YsVUFBQyxDQUFDLElBQUssT0FBQSw0QkFBcUIsSUFBQSwwQkFBWSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNENBQy9CLENBQUMsQ0FBQyxJQUFJLGdCQUFhLEVBRDdCLENBQzZCLENBQ3JDO1NBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQyw4WEFnQnBCO0FBMUhnQyxDQTBIaEMsQ0FBQTtBQTlIWSxRQUFBLGFBQWEsaUJBOEh6QiJ9
|
|
@@ -6,7 +6,7 @@ var chartIngressTmpl = function (_a) {
|
|
|
6
6
|
var prefix = _a.system.prefix, options = _a.options;
|
|
7
7
|
return "".concat(options.skipWarningThisIsGenerated
|
|
8
8
|
? ''
|
|
9
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\n{{- if .Values.ingress.enabled }}\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n name:
|
|
9
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\n{{- if .Values.ingress.enabled }}\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n chart: \"{{ .Chart.Name }}-{{ .Chart.Version | replace \"+\" \"_\" }}\"\n release: \"{{ .Release.Name }}\"\n heritage: \"{{ .Release.Service }}\"\n annotations:\n {{- range $key, $value := .Values.ingress.annotations }}\n {{ $key }}: {{ $value | quote }}\n {{- end }}\n {{ if .Values.ingress.letsencryptCert }}\n cert-manager.io/cluster-issuer: \"letsencrypt-prod\"\n {{ end }}\nspec:\n rules:\n {{ if .Values.ingress.rootEnabled }}\n - host: {{ $.Values.ingress.domain }}.apps.{{ $.Values.ingress.host }}\n http:\n paths:\n - pathType: Prefix\n path: \"/\"\n backend:\n service:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n port:\n number: 3000\n {{ end }}\n - host: {{ $.Values.ingress.domain }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}\n http:\n paths:\n - pathType: Prefix\n path: \"/\"\n backend:\n service:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n port:\n number: 3000\n tls:\n - hosts:\n - {{ $.Values.ingress.domain }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}\n secretName: {{ $.Values.ingress.domain }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}-tls\n{{- end }}\n");
|
|
10
10
|
};
|
|
11
11
|
exports.chartIngressTmpl = chartIngressTmpl;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ncmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svZW52aXJvbm1lbnQvY2hhcnQvdGVtcGxhdGVzL2luZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaURBQTBEO0FBRW5ELElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxFQUdMO1FBRmhCLE1BQU0sbUJBQUEsRUFDaEIsT0FBTyxhQUFBO0lBQ3dCLE9BQUEsVUFDL0IsT0FBTyxDQUFDLDBCQUEwQjtRQUNoQyxDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyxjQUNGLHdCQUFnQixPQUNuQixneERBZ0RBO0FBckRnQyxDQXFEaEMsQ0FBQTtBQXhEWSxRQUFBLGdCQUFnQixvQkF3RDVCIn0=
|
|
@@ -7,14 +7,11 @@ var chartValuesTmpl = function (_a) {
|
|
|
7
7
|
var prefix = _a.system.prefix, system = _a.system, options = _a.options;
|
|
8
8
|
return "".concat(options.skipWarningThisIsGenerated
|
|
9
9
|
? ''
|
|
10
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nglobal:\n env: noName\n clusterName: noName\n deployKind: noName\n imagePullPolicy: Always\n\ndev: false\n\ndocker:\n registry: ").concat(options.ciDockerRegistry, "\n\napp:\n tag: :master\n replicas: 1\n\nimage:\n repository: nginx\n tag: stable\n pullPolicy: IfNotPresent\n\nimagePullSecrets:\n - name: ").concat(options.k8sImagePullSecrets, "\n\nnameOverride: \"\"\nfullnameOverride: \"\"\n\nservice:\n type: ClusterIP\n port: \"80\"\n\ndeployment:\n annotations:\n prometheus.io/path: '/metrics'\n prometheus.io/scrape: true\n prometheus.io/port: 2100\n\nback:\n enabled: true\n replicas: ").concat(system.back.replicas, "\n requests:\n memory: \"").concat(system.back.requests.memory, "\"\n cpu: \"").concat(system.back.requests.cpu, "\"\n limits:\n memory: \"").concat(system.back.limits.memory, "\"\n cpu: \"").concat(system.back.limits.cpu, "\"\n\nmetrics:\n enabled: false\n\nmountebank:\n enabled: false\n\nworker:\n enabled: false\n replicas: 1\n requests:\n memory: \"64Mi\"\n cpu: \"0.15\"\n maxOldSpaceSize: \"58\"\n limits:\n memory: \"64Mi\"\n cpu: \"0.15\"\n maxOldSpaceSize: \"58\"\n\nworkers:").concat(system.workers
|
|
10
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nglobal:\n env: noName\n clusterName: noName\n projectName: ").concat(options.k8sChartName || prefix, "\n projectGroup: ").concat(options.projectsGroup, "\n deployKind: noName\n imagePullPolicy: Always\n\ndev: false\n\ndocker:\n registry: ").concat(options.ciDockerRegistry, "\n\napp:\n tag: :master\n replicas: 1\n\nimage:\n repository: nginx\n tag: stable\n pullPolicy: IfNotPresent\n\nimagePullSecrets:\n - name: ").concat(options.k8sImagePullSecrets, "\n\nnameOverride: \"\"\nfullnameOverride: \"\"\n\nservice:\n type: ClusterIP\n port: \"80\"\n\ndeployment:\n annotations:\n prometheus.io/path: '/metrics'\n prometheus.io/scrape: true\n prometheus.io/port: 2100\n\nback:\n enabled: true\n replicas: ").concat(system.back.replicas, "\n requests:\n memory: \"").concat(system.back.requests.memory, "\"\n cpu: \"").concat(system.back.requests.cpu, "\"\n limits:\n memory: \"").concat(system.back.limits.memory, "\"\n cpu: \"").concat(system.back.limits.cpu, "\"\n\nmetrics:\n enabled: false\n\nmountebank:\n enabled: false\n\nworker:\n enabled: false\n replicas: 1\n requests:\n memory: \"64Mi\"\n cpu: \"0.15\"\n maxOldSpaceSize: \"58\"\n limits:\n memory: \"64Mi\"\n cpu: \"0.15\"\n maxOldSpaceSize: \"58\"\n\nworkers:").concat(system.workers
|
|
11
11
|
.map(function (worker) { return "\n - name: ".concat((0, change_case_1.paramCase)(worker.name), "\n file: dist/workers/").concat(worker.name, "/").concat(worker.name, "Worker.js\n requests:\n memory: \"").concat(worker.requests.memory, "\"\n cpu: \"").concat(worker.requests.cpu, "\"\n maxOldSpaceSize: \"").concat(worker.requests.maxOldSpaceSize, "\"\n limits:\n memory: \"").concat(worker.limits.memory, "\"\n cpu: \"").concat(worker.limits.cpu, "\"\n maxOldSpaceSize: \"").concat(worker.limits.maxOldSpaceSize, "\""); })
|
|
12
12
|
.join(''), "\n\nbot:\n enabled: false\n replicas: 1\n requests:\n memory: \"128Mi\"\n cpu: \"0.5\"\n limits:\n memory: \"256Mi\"\n cpu: \"1\"\n\nbots:").concat(system.telegramBots
|
|
13
|
-
.map(function (
|
|
14
|
-
var name = _a.name;
|
|
15
|
-
return "\n - name: ".concat((0, change_case_1.paramCase)(name), "\n file: dist/bots/").concat(name, "Bot/").concat(name, "Bot.js");
|
|
16
|
-
})
|
|
13
|
+
.map(function (bot) { return "\n - name: ".concat((0, change_case_1.paramCase)(bot.name), "\n file: dist/bots/").concat(bot.name, "Bot/").concat(bot.name, "Bot.js\n requests:\n memory: \"").concat(bot.requests.memory, "\"\n cpu: \"").concat(bot.requests.cpu, "\"\n maxOldSpaceSize: \"").concat(bot.requests.maxOldSpaceSize, "\"\n limits:\n memory: \"").concat(bot.limits.memory, "\"\n cpu: \"").concat(bot.limits.cpu, "\"\n maxOldSpaceSize: \"").concat(bot.limits.maxOldSpaceSize, "\""); })
|
|
17
14
|
.join(''), "\n\napollo:\n key: ''\n\ndatabase:\n uri: ''\n\ningress:\n enabled: true\n annotations:\n nginx.ingress.kubernetes.io/limit-connections: \"100\"\n nginx.ingress.kubernetes.io/limit-rps: \"300\"\n nginx.ingress.kubernetes.io/limit-rpm: \"5000\"\n nginx.ingress.kubernetes.io/affinity: \"cookie\"\n nginx.ingress.kubernetes.io/proxy-body-size: \"").concat(options.ingressAnnotationBodySize, "\"\n nginx.ingress.kubernetes.io/proxy-read-timeout: \"7200\"\n nginx.ingress.kubernetes.io/proxy-send-timeout: \"7200\"\n host: \"").concat(options.k8sAppsDomain, "\"\n letsencryptCert: true\n domain: \"").concat(options.k8sSubdomainPrefix || prefix, "-ep\"\n\nresources:\n {}\n # We usually recommend not to specify default resources and to leave this as a conscious\n # choice for the user. This also increases chances charts run on environments with little\n # resources, such as Minikube. If you do want to specify resources, uncomment the following\n # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\n # limits:\n # cpu: 100m\n # memory: 128Mi\n # requests:\n # cpu: 100m\n # memory: 128Mi\n\nnodeSelector: {}\n\ntolerations: []\n\naffinity: {}\n");
|
|
18
15
|
};
|
|
19
16
|
exports.chartValuesTmpl = chartValuesTmpl;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9jaGFydC92YWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBRXZDLDhDQUF1RDtBQUVoRCxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBSUo7UUFIaEIsTUFBTSxtQkFBQSxFQUNoQixNQUFNLFlBQUEsRUFDTixPQUFPLGFBQUE7SUFDd0IsT0FBQSxVQUMvQixPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGNBQ0Ysd0JBQWdCLE9BQ25CLDZFQUtnQixPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sK0JBQzdCLE9BQU8sQ0FBQyxhQUFhLHFHQU96QixPQUFPLENBQUMsZ0JBQWdCLCtKQVkxQixPQUFPLENBQUMsbUJBQW1CLG1SQWlCekIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLDBDQUVuQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLDRCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLDBDQUVyQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLDRCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLDBTQW9CeEIsTUFBTSxDQUFDLE9BQU87U0FDckIsR0FBRyxDQUNGLFVBQUMsTUFBTSxJQUFLLE9BQUEsc0JBQWUsSUFBQSx1QkFBUyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQzVCLE1BQU0sQ0FBQyxJQUFJLGNBQUksTUFBTSxDQUFDLElBQUksdURBRWxDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSw4QkFDekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLDBDQUNQLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSw4Q0FFeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLDhCQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsMENBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLE9BQUcsRUFUMUMsQ0FTMEMsQ0FDdkQ7U0FDQSxJQUFJLENBQUMsRUFBRSxDQUFDLHVLQVlKLE1BQU0sQ0FBQyxZQUFZO1NBQ3ZCLEdBQUcsQ0FDRixVQUFDLEdBQUcsSUFBSyxPQUFBLHNCQUFlLElBQUEsdUJBQVMsRUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUN6QixHQUFHLENBQUMsSUFBSSxpQkFBTyxHQUFHLENBQUMsSUFBSSxvREFFNUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLDhCQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsMENBQ0osR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLDhDQUVyQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sOEJBQ3BCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRywwQ0FDRixHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsT0FBRyxFQVQxQyxDQVMwQyxDQUNwRDtTQUNBLElBQUksQ0FBQyxFQUFFLENBQUMsd1hBZXlDLE9BQU8sQ0FBQyx5QkFBeUIsdUpBRzFFLE9BQU8sQ0FBQyxhQUFhLHNEQUVuQixPQUFPLENBQUMsa0JBQWtCLElBQUksTUFBTSw2aUJBb0JoRDtBQXZKZ0MsQ0F1SmhDLENBQUE7QUEzSlksUUFBQSxlQUFlLG1CQTJKM0IifQ==
|
|
@@ -6,9 +6,9 @@ var change_case_1 = require("change-case");
|
|
|
6
6
|
var utils_1 = require("../../../../utils");
|
|
7
7
|
var gitlabCiTmpl = function (_a) {
|
|
8
8
|
var prefix = _a.system.prefix, system = _a.system, options = _a.options;
|
|
9
|
-
return "image: node:
|
|
9
|
+
return "image: node:20\n".concat(options.skipWarningThisIsGenerated
|
|
10
10
|
? ''
|
|
11
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nstages:\n - check\n - previous-image\n - build\n - latest-image\n - deploy\n
|
|
11
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nstages:\n - check\n - previous-image\n - build\n - latest-image\n - deploy\n\ncache:\n paths:\n - .cache\n - .cache_images\n # - node_modules\n\nvariables:\n REPO_NAME: $CI_PROJECT_NAME\n VERBOSE: 'true'\n RELEASE: $CI_COMMIT_SHORT_SHA\n KUBECONFIG: /etc/deploy/config\n PROJECT_NAME: ").concat(system.name, "\n\ncheck:\n stage: check\n image: registry.gitlab.com/making.ventures/images/node-with-tools\n before_script:\n - yarn install --frozen-lockfile\n script:\n - ./check.sh\n").concat(options.genBackCiNotify
|
|
12
12
|
? " after_script:\n - chmod +x ci-notify.sh\n - >\n if [ $CI_JOB_STATUS != 'success' ]; then\n sh ci-notify.sh \"\uD83C\uDD98 $CI_JOB_NAME failed\"\n else\n sh ci-notify.sh \"\u2705 $CI_JOB_NAME success\"\n fi"
|
|
13
13
|
: '', "\n variables:\n DATABASE_MAIN_WRITE_URI: $TEST_DATABASE_MAIN_WRITE_URI\n\ntag-previous-with-sha:\n extends: .tag-image\n stage: previous-image\n only:").concat(system.deployEnvironments
|
|
14
14
|
.map(function (e) { return "\n - ".concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/"); }).join(''), "\n allow_failure: true # First run won't be able to create previous image\n variables:\n TAG_ORIGIN: :${CI_COMMIT_REF_SLUG}\n TAG_DESTINATION: :${CI_COMMIT_REF_SLUG}-previous-for-${CI_COMMIT_SHA}\n\nbuild:\n stage: build\n image:\n name: gcr.io/kaniko-project/executor:debug\n entrypoint: ['']\n before_script:\n - mkdir -p /kaniko/.docker\n - echo \"{\\\"auths\\\":{\\\"$CI_REGISTRY\\\":{\\\"username\\\":\\\"$CI_REGISTRY_USER\\\",\\\"password\\\":\\\"$CI_REGISTRY_PASSWORD\\\"}}}\" > /kaniko/.docker/config.json\n # - /kaniko/warmer --cache-dir=$CI_PROJECT_DIR/.cache_images --image=browserless/chrome\n - echo TAG1 \"${CI_COMMIT_REF_SLUG}\"\n - echo TAG2 \"${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n script:\n - /kaniko/executor\n --cache-dir=$CI_PROJECT_DIR/.cache_images\n --context ${CI_PROJECT_DIR}\n --dockerfile ${CI_PROJECT_DIR}/Dockerfile\n --build-arg GIT_COMMIT=${CI_COMMIT_SHA}\n --destination ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}\n --destination ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\n --single-snapshot\n only:").concat(system.deployEnvironments
|
|
@@ -21,25 +21,16 @@ var gitlabCiTmpl = function (_a) {
|
|
|
21
21
|
? '\n\n' +
|
|
22
22
|
system.deployEnvironments
|
|
23
23
|
.map(function (e) {
|
|
24
|
-
return "deploy-".concat(e.name, "-workers:\n extends: .deploy-").concat(e.name, "-workers\n stage: deploy\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"workers-").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
24
|
+
return "deploy-".concat(e.name, "-workers:\n extends: .deploy-").concat(e.name, "-workers\n stage: deploy\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"workers-").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/\n\ndeploy-").concat(e.name, "-bots:\n extends: .deploy-").concat(e.name, "-bots\n stage: deploy\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
25
25
|
})
|
|
26
26
|
.join('\n\n')
|
|
27
27
|
.trim()
|
|
28
28
|
: '', "\n\n").concat(system.deployEnvironments
|
|
29
|
-
.map(function (e) {
|
|
30
|
-
return "deploy-".concat(e.name, "-back-previous:\n extends: .deploy-").concat(e.name, "-back\n stage: deploy-previous\n when: manual\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-previous-for-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
31
|
-
}).join('\n\n')).concat(system.workers.length > 0
|
|
32
|
-
? '\n\n' +
|
|
33
|
-
system.deployEnvironments
|
|
34
|
-
.map(function (e) {
|
|
35
|
-
return "deploy-".concat(e.name, "-workers-previous:\n extends: .deploy-").concat(e.name, "-workers\n stage: deploy-previous\n when: manual\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"workers-").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-previous-for-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
36
|
-
}).join('\n\n')
|
|
37
|
-
: '', "\n").concat(system.deployEnvironments
|
|
38
|
-
.map(function (e) { return ".deploy-".concat(e.name, "-back:\n extends:\n - .deploy-").concat(e.name, "\n - .deploy-back\n variables:\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n BACK_ENABLED: \"true\"\n INGRESS_ENABLED: \"true\"\n METRICS_ENABLED: \"").concat(e.metricsEnabled.toString(), "\"\n WORKER_ENABLED: \"false\"\n BOT_ENABLED: \"false\"\n ROOT_ENABLED: \"").concat(e.main, "\"\n\n.deploy-").concat(e.name, "-workers:\n extends:\n - .deploy-").concat(e.name, "\n - .deploy-worker\n variables:\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n BACK_ENABLED: \"false\"\n INGRESS_ENABLED: \"false\"\n METRICS_ENABLED: \"false\"\n WORKER_ENABLED: \"true\"\n BOT_ENABLED: \"false\"\n ROOT_ENABLED: \"false\""); }).join('\n\n'), "\n\n").concat(system.deployEnvironments
|
|
29
|
+
.map(function (e) { return ".deploy-".concat(e.name, "-back:\n extends:\n - .deploy-").concat(e.name, "\n - .deploy-back\n variables:\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n BACK_ENABLED: \"true\"\n INGRESS_ENABLED: \"true\"\n METRICS_ENABLED: \"").concat(e.metricsEnabled.toString(), "\"\n WORKER_ENABLED: \"false\"\n BOT_ENABLED: \"false\"\n ROOT_ENABLED: \"").concat(e.main, "\"\n\n.deploy-").concat(e.name, "-workers:\n extends:\n - .deploy-").concat(e.name, "\n - .deploy-worker\n variables:\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n BACK_ENABLED: \"false\"\n INGRESS_ENABLED: \"false\"\n METRICS_ENABLED: \"false\"\n WORKER_ENABLED: \"true\"\n BOT_ENABLED: \"false\"\n ROOT_ENABLED: \"false\"\n\n.deploy-").concat(e.name, "-bots:\n extends:\n - .deploy-").concat(e.name, "\n - .deploy-bot\n variables:\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n BACK_ENABLED: \"false\"\n INGRESS_ENABLED: \"false\"\n METRICS_ENABLED: \"false\"\n WORKER_ENABLED: \"false\"\n BOT_ENABLED: \"true\"\n ROOT_ENABLED: \"false\""); }).join('\n\n'), "\n\n").concat(system.deployEnvironments
|
|
39
30
|
.map(function (e) { return ".deploy-".concat(e.name, ":\n extends: .deploy\n stage: deploy\n when: ").concat(e.manualDeploy ? 'manual' : 'on_success', "\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/\n tags:\n - ").concat(e.runnerTag, "\n variables:\n ENV: \"").concat(e.name, "\"\n DEV: \"false\"\n HOST: \"").concat(e.host, "\"\n ROOT_ENABLED: \"").concat(e.main, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"").concat(system.configVars
|
|
40
31
|
.filter(function (v) { return v.scopes.includes('back') || v.scopes.includes('ci'); })
|
|
41
32
|
.map(function (v) { return "\n ".concat((0, change_case_1.constantCase)(v.name), ": ${").concat(e.gitlabEnvPrefix.toUpperCase(), "_").concat((0, change_case_1.constantCase)(v.name), "}"); })
|
|
42
|
-
.join('')); }).join('\n\n'), "\n\n.deploy-back:\n variables:\n DEPLOY_KIND: \"back\"\n FLUENTD_ENABLED: \"true\"\n PROMETHEUS_RULES_ENABLED: \"true\"\n HELM_ENV: \"\"\n\n.deploy-worker:\n variables:\n DEPLOY_KIND: \"worker\"\n FLUENTD_ENABLED: \"false\"\n PROMETHEUS_RULES_ENABLED: \"false\"\n HELM_ENV: \"--set mountebank.enabled=").concat(options.mountebankEnabled, " --set exportHtml.enabled=").concat(options.exportHtmlEnabled, "\"\n\n.deploy-
|
|
33
|
+
.join('')); }).join('\n\n'), "\n\n.deploy-back:\n variables:\n DEPLOY_KIND: \"back\"\n FLUENTD_ENABLED: \"true\"\n PROMETHEUS_RULES_ENABLED: \"true\"\n HELM_ENV: \"\"\n\n.deploy-worker:\n variables:\n DEPLOY_KIND: \"worker\"\n FLUENTD_ENABLED: \"false\"\n PROMETHEUS_RULES_ENABLED: \"false\"\n HELM_ENV: \"--set mountebank.enabled=").concat(options.mountebankEnabled, " --set exportHtml.enabled=").concat(options.exportHtmlEnabled, "\"\n\n.deploy-bot:\n variables:\n DEPLOY_KIND: \"bot\"\n FLUENTD_ENABLED: \"false\"\n PROMETHEUS_RULES_ENABLED: \"false\"\n HELM_ENV: \"\"\n\n.deploy:\n image:\n name: alpine/helm:3.13.1\n entrypoint: [\"\"]\n before_script:\n - mkdir -p /etc/deploy\n - cp $KUBE_CONFIG $KUBECONFIG\n script:\n - NAMESPACE=${NAMESPACE:-\"").concat(options.k8sNamespacePrefix || prefix, "-${ENV}\"}\n - echo TAG ${TAG}\n - echo NAMESPACE ${NAMESPACE}\n - echo chart ${NAMESPACE}-${DEPLOY_KIND}\n\n - helm upgrade\n --install\n --wait ${NAMESPACE}-${DEPLOY_KIND} chart\n --timeout 3600s\n -f chart/values_${ENV}.yaml\n ${HELM_ENV}\n --namespace ${NAMESPACE}\n --create-namespace\n --set \"global.projectName=${PROJECT_NAME}\"\n --set \"global.clusterName=${CLUSTER_NAME}\"\n --set \"global.env=${ENV}\"\n --set \"global.deployKind=${DEPLOY_KIND}\"\n --set \"app.tag=${TAG}\"\n --set \"ingress.host=${HOST}\"\n --set \"style=${STYLE}\"\n --set \"back.enabled=${BACK_ENABLED}\"\n --set \"ingress.enabled=${INGRESS_ENABLED}\"\n --set \"metrics.enabled=${METRICS_ENABLED}\"\n --set \"worker.enabled=${WORKER_ENABLED}\"\n --set \"bot.enabled=${BOT_ENABLED}\"\n --set \"fluentd.enabled=${FLUENTD_ENABLED}\"\n --set \"prometheus.rules.enabled=${PROMETHEUS_RULES_ENABLED}\"\n --set \"ingress.rootEnabled=${ROOT_ENABLED}\"").concat(system.configVars
|
|
43
34
|
.filter(function (v) { return v.scopes.includes('back') || v.scopes.includes('ci'); })
|
|
44
35
|
.map(function (v) { return "\n --set \"".concat(v.name, "=${").concat((0, change_case_1.constantCase)(v.name), "}\""); })
|
|
45
36
|
.join(''), "\n").concat(options.genBackCiNotify
|
|
@@ -47,4 +38,4 @@ var gitlabCiTmpl = function (_a) {
|
|
|
47
38
|
: '', "\n");
|
|
48
39
|
};
|
|
49
40
|
exports.gitlabCiTmpl = gitlabCiTmpl;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiQ2kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL2Vudmlyb25tZW50L2dpdGxhYkNpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRCQUE0QjtBQUM1QiwyQ0FBMEM7QUFFMUMsMkNBQW9EO0FBRTdDLElBQU0sWUFBWSxHQUFHLFVBQUMsRUFJRDtRQUhoQixNQUFNLG1CQUFBLEVBQ2hCLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQTtJQUN3QixPQUFBLDBCQUUvQixPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGNBQ0Ysd0JBQWdCLE9BQ25CLGdVQW9CaUIsTUFBTSxDQUFDLElBQUksbU1BVTNCLE9BQU8sQ0FBQyxlQUFlO1FBQ3pCLENBQUMsQ0FBQyxvUEFPTztRQUNULENBQUMsQ0FBQyxFQUFFLDBLQVFLLE1BQU0sQ0FBQyxrQkFBa0I7U0FDN0IsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsa0JBQVcsQ0FBQyxDQUFDLFVBQVUsdUJBQWEsQ0FBQyxDQUFDLFVBQVUsVUFBTyxFQUF2RCxDQUF1RCxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtbkNBMEJ4RSxNQUFNLENBQUMsa0JBQWtCO1NBQzNCLEdBQUcsQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLGtCQUFXLENBQUMsQ0FBQyxVQUFVLHVCQUFhLENBQUMsQ0FBQyxVQUFVLFVBQU8sRUFBdkQsQ0FBdUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd2hCQXNCakYsTUFBTSxDQUFDLGtCQUFrQjtTQUN4QixHQUFHLENBQUMsVUFBQyxDQUFDO1FBQ0wsT0FBQSxpQkFBVSxDQUFDLENBQUMsSUFBSSx3Q0FDQyxDQUFDLENBQUMsSUFBSSw4REFHZixDQUFDLENBQUMsSUFB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
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uiResourcesPageTmpl = void 0;
|
|
4
|
-
var types_1 = require("../../../types");
|
|
5
4
|
var cases_1 = require("../../../../utils/cases");
|
|
6
5
|
var utils_1 = require("../../../utils");
|
|
7
6
|
var pluralize_1 = require("pluralize");
|
|
8
7
|
var uiResourcesPageTmpl = function (_a) {
|
|
9
|
-
var entities = _a.entities,
|
|
8
|
+
var entities = _a.entities, options = _a.options;
|
|
10
9
|
return "import React, {\n FC,\n} from 'react';\nimport NumberWidget from '../widgets/NumberWidget';\nimport {\n gql,\n} from '@apollo/client';\nimport {Title, useTranslate} from 'react-admin';\nimport Grid from '@mui/material/Grid';\n".concat(options.skipWarningThisIsGenerated
|
|
11
10
|
? ''
|
|
12
11
|
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nconst ResourcesPage: FC = () => {\n const translate = useTranslate();\n\n return (\n <Grid container>\n <Title title='app.resources' />\n").concat(entities.map(function (entity) {
|
|
@@ -14,4 +13,4 @@ var uiResourcesPageTmpl = function (_a) {
|
|
|
14
13
|
}).join("\n"), "\n </Grid>\n );\n};\n\nexport default ResourcesPage;\n");
|
|
15
14
|
};
|
|
16
15
|
exports.uiResourcesPageTmpl = uiResourcesPageTmpl;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VzUGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL3VpL1Jlc291cmNlc1BhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXNEO0FBRXRELHdDQUFpRDtBQUNqRCx1Q0FBa0M7QUFFM0IsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLEVBR1I7UUFGMUIsUUFBUSxjQUFBLEVBQ1IsT0FBTyxhQUFBO0lBRVAsT0FBTyw4T0FVUCxPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGVBQ0Qsd0JBQWdCLE9BQ3BCLGtLQVFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO1FBQ3BCLE9BQU8seUZBR1MsSUFBQSxvQkFBWSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0hBS0ksSUFBQSxvQkFBWSxFQUNqRCxNQUFNLENBQUMsSUFBSSxDQUNaLHFEQUNtQixJQUFBLGtCQUFNLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFJLE1BQU0sQ0FBQyxJQUFJLDRDQUMvQyxNQUFNLENBQUMsSUFBSSxnQkFDakIsQ0FBQTtJQUNULENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUNQLENBQUMsK0RBTUQsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQWpEWSxRQUFBLG1CQUFtQix1QkFpRC9CIn0=
|
package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.js
CHANGED
|
@@ -8,10 +8,10 @@ var uiChartFrontTmpl = function (_a) {
|
|
|
8
8
|
var system = _a.system, prefix = _a.system.prefix, options = _a.options;
|
|
9
9
|
return "".concat(options.skipWarningThisIsGenerated
|
|
10
10
|
? ''
|
|
11
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "apiVersion: v1\nkind: Service\nmetadata:\n name:
|
|
11
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "apiVersion: v1\nkind: Service\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n projectName: {{ $.Values.global.projectName }}\n clusterName: {{ $.Values.global.clusterName }}\n env: {{ $.Values.global.env }}\n deployKind: {{ $.Values.global.deployKind }}\nspec:\n ports:\n - name: http\n port: 80\n protocol: TCP\n targetPort: 80\n selector:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\nspec:\n replicas: {{ $.Values.app.replicas }}\n strategy:\n type: RollingUpdate\n rollingUpdate:\n maxSurge: 3\n selector:\n matchLabels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n template:\n metadata:\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n projectName: {{ $.Values.global.projectName }}\n clusterName: {{ $.Values.global.clusterName }}\n env: {{ $.Values.global.env }}\n deployKind: {{ $.Values.global.deployKind }}\n spec:\n imagePullSecrets:\n - name: {{ $.Release.Name }}-pullsecret\n containers:\n - name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n image: {{ $.Values.dockerRegistry.domain }}/{{ $.Values.global.projectGroup }}/{{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}{{ $.Values.app.tag }}\n ports:\n - name: main-port\n containerPort: 80\n imagePullPolicy: Always\n livenessProbe:\n httpGet:\n path: /\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n periodSeconds: 5\n readinessProbe:\n httpGet:\n path: /\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n periodSeconds: 5\n startupProbe:\n httpGet:\n path: /\n port: main-port\n initialDelaySeconds: 60\n timeoutSeconds: 15\n failureThreshold: 10\n periodSeconds: 10\n resources:\n requests:\n memory: \"256Mi\"\n cpu: \"0.15\"\n limits:\n memory: \"512Mi\"\n cpu: \"1\"\n env:\n - name: NODE_ENV\n value: production\n - name: RANDOM\n value: {{ $.Values.random | quote }}\n - name: ENV\n value: '{{ $.Values.global.env }}'").concat(system.configVars
|
|
12
12
|
.filter(function (v) { return v.scopes.includes('admin-app'); })
|
|
13
13
|
.map(function (v) { return "\n - name: ".concat((0, change_case_1.constantCase)(v.name), "\n value: {{ $.Values.").concat(v.name, " | quote }}"); })
|
|
14
14
|
.join(''), "\n\n - name: K8S_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: K8S_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: K8S_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n---\n");
|
|
15
15
|
};
|
|
16
16
|
exports.uiChartFrontTmpl = uiChartFrontTmpl;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy91aS9lbnZpcm9ubWVudC9jaGFydC90ZW1wbGF0ZXMvZnJvbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTRCO0FBQzVCLDJDQUEwQztBQUUxQyxpREFBMEQ7QUFFbkQsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLEVBSUw7UUFIMUIsTUFBTSxZQUFBLEVBQ0ksTUFBTSxtQkFBQSxFQUNoQixPQUFPLGFBQUE7SUFDd0IsT0FBQSxVQUMvQixPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGNBQ0Ysd0JBQWdCLE9BQ25CLGtxRkFzRjZDLE1BQU0sQ0FBQyxVQUFVO1NBQ2xELE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUE5QixDQUE4QixDQUFDO1NBQzdDLEdBQUcsQ0FDRixVQUFDLENBQUMsSUFBSyxPQUFBLDRCQUFxQixJQUFBLDBCQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw0Q0FDL0IsQ0FBQyxDQUFDLElBQUksZ0JBQWEsRUFEN0IsQ0FDNkIsQ0FDckM7U0FDQSxJQUFJLENBQUMsRUFBRSxDQUFDLGtYQWVwQjtBQWhIZ0MsQ0FnSGhDLENBQUE7QUFwSFksUUFBQSxnQkFBZ0Isb0JBb0g1QiJ9
|
package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.js
CHANGED
|
@@ -6,7 +6,7 @@ var uiChartIngressTmpl = function (_a) {
|
|
|
6
6
|
var prefix = _a.system.prefix, options = _a.options;
|
|
7
7
|
return "".concat(options.skipWarningThisIsGenerated
|
|
8
8
|
? ''
|
|
9
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n name:
|
|
9
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n labels:\n app: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n chart: \"{{ .Chart.Name }}-{{ .Chart.Version | replace \"+\" \"_\" }}\"\n release: \"{{ .Release.Name }}\"\n heritage: \"{{ .Release.Service }}\"\n annotations:\n {{- range $key, $value := .Values.ingress.annotations }}\n {{ $key }}: {{ $value | quote }}\n {{- end }}\n {{ if .Values.ingress.letsencryptCert }}\n cert-manager.io/cluster-issuer: \"letsencrypt-prod\"\n {{ end }}\nspec:\n rules:\n {{ if .Values.ingress.rootEnabled }}\n - host: {{ $.Values.ingress.domains.app }}.apps.{{ $.Values.ingress.host }}\n http:\n paths:\n - pathType: Prefix\n path: \"/\"\n backend:\n service:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n port:\n number: 80\n {{ end }}\n - host: {{ $.Values.ingress.domains.app }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}\n http:\n paths:\n - pathType: Prefix\n path: \"/\"\n backend:\n service:\n name: {{ $.Values.global.projectName }}-{{ $.Values.global.deployKind }}\n port:\n number: 80\n tls:\n - hosts:\n - {{ $.Values.ingress.domains.app }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}\n secretName: {{ $.Values.ingress.domains.app }}.{{ $.Values.global.env }}.apps.{{ $.Values.global.clusterName }}.{{ $.Values.ingress.host }}-tls\n");
|
|
10
10
|
};
|
|
11
11
|
exports.uiChartIngressTmpl = uiChartIngressTmpl;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ncmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL3VpL2Vudmlyb25tZW50L2NoYXJ0L3RlbXBsYXRlcy9pbmdyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlEQUEwRDtBQUVuRCxJQUFNLGtCQUFrQixHQUFHLFVBQUMsRUFHUDtRQUZoQixNQUFNLG1CQUFBLEVBQ2hCLE9BQU8sYUFBQTtJQUN3QixPQUFBLFVBQy9CLE9BQU8sQ0FBQywwQkFBMEI7UUFDaEMsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUMsY0FDRix3QkFBZ0IsT0FDbkIsK3VEQTZDQTtBQWxEZ0MsQ0FrRGhDLENBQUE7QUFyRFksUUFBQSxrQkFBa0Isc0JBcUQ5QiJ9
|
|
@@ -6,7 +6,7 @@ var uiChartValuesTmpl = function (_a) {
|
|
|
6
6
|
var prefix = _a.system.prefix, options = _a.options;
|
|
7
7
|
return "".concat(options.skipWarningThisIsGenerated
|
|
8
8
|
? ''
|
|
9
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nglobal:\n env: noName\n clusterName: noName\n deployKind: noName\n imagePullPolicy: Always\n\ndev: false\n\ndocker:\n registry: ").concat(options.ciDockerRegistry, "\n\napp:\n tag: :master\n replicas: 1\n\nimage:\n repository: nginx\n tag: stable\n pullPolicy: IfNotPresent\n\nimagePullSecrets:\n - name: ").concat(options.k8sImagePullSecrets, "\n\nnameOverride: \"\"\nfullnameOverride: \"\"\n\nservice:\n type: ClusterIP\n port: \"80\"\n\ndeployment:\n annotations:\n prometheus.io/path: '/metrics'\n prometheus.io/scrape: true\n prometheus.io/port: 2100\n\ningress:\n annotations:\n nginx.ingress.kubernetes.io/limit-connections: \"100\"\n nginx.ingress.kubernetes.io/limit-rps: \"300\"\n nginx.ingress.kubernetes.io/limit-rpm: \"5000\"\n nginx.ingress.kubernetes.io/affinity: \"cookie\"\n nginx.ingress.kubernetes.io/proxy-body-size: \"").concat(options.ingressAnnotationBodySize, "\"\n nginx.ingress.kubernetes.io/proxy-read-timeout: \"7200\"\n nginx.ingress.kubernetes.io/proxy-send-timeout: \"7200\"\n host: \"").concat(options.k8sAppsDomain, "\"\n letsencryptCert: true\n domains:\n app: \"").concat(options.k8sSubdomainPrefix || prefix, "\"\n endpoint: \"").concat(options.k8sSubdomainPrefix || prefix, "-ep\"\n\nresources:\n {}\n # We usually recommend not to specify default resources and to leave this as a conscious\n # choice for the user. This also increases chances charts run on environments with little\n # resources, such as Minikube. If you do want to specify resources, uncomment the following\n # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\n # limits:\n # cpu: 100m\n # memory: 128Mi\n # requests:\n # cpu: 100m\n # memory: 128Mi\n\nnodeSelector: {}\n\ntolerations: []\n\naffinity: {}\n");
|
|
9
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nglobal:\n env: noName\n clusterName: noName\n projectName: ").concat(options.k8sChartName || prefix, "\n projectGroup: ").concat(options.projectsGroup, "\n deployKind: noName\n imagePullPolicy: Always\n\ndev: false\n\ndocker:\n registry: ").concat(options.ciDockerRegistry, "\n\napp:\n tag: :master\n replicas: 1\n\nimage:\n repository: nginx\n tag: stable\n pullPolicy: IfNotPresent\n\nimagePullSecrets:\n - name: ").concat(options.k8sImagePullSecrets, "\n\nnameOverride: \"\"\nfullnameOverride: \"\"\n\nservice:\n type: ClusterIP\n port: \"80\"\n\ndeployment:\n annotations:\n prometheus.io/path: '/metrics'\n prometheus.io/scrape: true\n prometheus.io/port: 2100\n\ningress:\n annotations:\n nginx.ingress.kubernetes.io/limit-connections: \"100\"\n nginx.ingress.kubernetes.io/limit-rps: \"300\"\n nginx.ingress.kubernetes.io/limit-rpm: \"5000\"\n nginx.ingress.kubernetes.io/affinity: \"cookie\"\n nginx.ingress.kubernetes.io/proxy-body-size: \"").concat(options.ingressAnnotationBodySize, "\"\n nginx.ingress.kubernetes.io/proxy-read-timeout: \"7200\"\n nginx.ingress.kubernetes.io/proxy-send-timeout: \"7200\"\n host: \"").concat(options.k8sAppsDomain, "\"\n letsencryptCert: true\n domains:\n app: \"").concat(options.k8sSubdomainPrefix || prefix, "\"\n endpoint: \"").concat(options.k8sSubdomainPrefix || prefix, "-ep\"\n\nresources:\n {}\n # We usually recommend not to specify default resources and to leave this as a conscious\n # choice for the user. This also increases chances charts run on environments with little\n # resources, such as Minikube. If you do want to specify resources, uncomment the following\n # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\n # limits:\n # cpu: 100m\n # memory: 128Mi\n # requests:\n # cpu: 100m\n # memory: 128Mi\n\nnodeSelector: {}\n\ntolerations: []\n\naffinity: {}\n");
|
|
10
10
|
};
|
|
11
11
|
exports.uiChartValuesTmpl = uiChartValuesTmpl;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvdWkvZW52aXJvbm1lbnQvY2hhcnQvdmFsdWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhDQUF1RDtBQUVoRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsRUFHTjtRQUZoQixNQUFNLG1CQUFBLEVBQ2hCLE9BQU8sYUFBQTtJQUN3QixPQUFBLFVBQy9CLE9BQU8sQ0FBQywwQkFBMEI7UUFDaEMsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUMsY0FDRix3QkFBZ0IsT0FDbkIsNkVBS2dCLE9BQU8sQ0FBQyxZQUFZLElBQUksTUFBTSwrQkFDN0IsT0FBTyxDQUFDLGFBQWEscUdBT3pCLE9BQU8sQ0FBQyxnQkFBZ0IsK0pBWTFCLE9BQU8sQ0FBQyxtQkFBbUIsdWhCQXFCYSxPQUFPLENBQUMseUJBQXlCLHVKQUcxRSxPQUFPLENBQUMsYUFBYSxpRUFHcEIsT0FBTyxDQUFDLGtCQUFrQixJQUFJLE1BQU0saUNBQy9CLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLDZpQkFvQnBEO0FBOUVnQyxDQThFaEMsQ0FBQTtBQWpGWSxRQUFBLGlCQUFpQixxQkFpRjdCIn0=
|
|
@@ -6,18 +6,15 @@ var change_case_1 = require("change-case");
|
|
|
6
6
|
var utils_1 = require("../../../../utils");
|
|
7
7
|
var uiGitlabCiTmpl = function (_a) {
|
|
8
8
|
var prefix = _a.system.prefix, system = _a.system, options = _a.options;
|
|
9
|
-
return "image: node:
|
|
9
|
+
return "image: node:20\n".concat(options.skipWarningThisIsGenerated
|
|
10
10
|
? ''
|
|
11
|
-
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nstages:\n - check\n - previous-image\n - build\n - latest-image\n - deploy\n
|
|
11
|
+
: "\n# ".concat(utils_1.generatedWarning, "\n"), "\nstages:\n - check\n - previous-image\n - build\n - latest-image\n - deploy\n\ncache:\n paths:\n - .cache\n - .cache_images\n # - node_modules\n\nvariables:\n REPO_NAME: $CI_PROJECT_NAME\n VERBOSE: 'true'\n RELEASE: $CI_COMMIT_SHORT_SHA\n KUBECONFIG: /etc/deploy/config\n PROJECT_NAME: ").concat(system.name, "\n\ncheck:\n stage: check\n image: registry.gitlab.com/making.ventures/images/node-with-tools\n before_script:\n - yarn install --frozen-lockfile\n script:\n - ./check.sh\n").concat(options.genBackCiNotify
|
|
12
12
|
? " after_script:\n - chmod +x ci-notify.sh\n - >\n if [ $CI_JOB_STATUS != 'success' ]; then\n sh ci-notify.sh \"\uD83C\uDD98 $CI_JOB_NAME failed\"\n else\n sh ci-notify.sh \"\u2705 $CI_JOB_NAME success\"\n fi\n"
|
|
13
13
|
: '', "\ntag-previous-with-sha:\n extends: .tag-image\n stage: previous-image\n only:").concat(system.deployEnvironments
|
|
14
14
|
.map(function (e) { return "\n - ".concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/"); }).join(''), "\n allow_failure: true # First run won't be able to create previous image\n variables:\n TAG_ORIGIN: :${CI_COMMIT_REF_SLUG}\n TAG_DESTINATION: :${CI_COMMIT_REF_SLUG}-previous-for-${CI_COMMIT_SHA}\n\nbuild:\n stage: build\n image:\n name: gcr.io/kaniko-project/executor:debug\n entrypoint: ['']\n before_script:\n - mkdir -p /kaniko/.docker\n - echo \"{\\\"auths\\\":{\\\"$CI_REGISTRY\\\":{\\\"username\\\":\\\"$CI_REGISTRY_USER\\\",\\\"password\\\":\\\"$CI_REGISTRY_PASSWORD\\\"}}}\" > /kaniko/.docker/config.json\n # - /kaniko/warmer --cache-dir=$CI_PROJECT_DIR/.cache_images --image=browserless/chrome\n - echo TAG1 \"${CI_COMMIT_REF_SLUG}\"\n - echo TAG2 \"${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n script:\n - /kaniko/executor\n --cache-dir=$CI_PROJECT_DIR/.cache_images\n --context ${CI_PROJECT_DIR}\n --dockerfile ${CI_PROJECT_DIR}/Dockerfile\n --build-arg GIT_COMMIT=${CI_COMMIT_SHA}\n --destination ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}\n --destination ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\n --single-snapshot\n only:").concat(system.deployEnvironments
|
|
15
15
|
.map(function (e) { return "\n - ".concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/"); }).join(''), "\n\ntag-latest:\n extends: .tag-image\n stage: latest-image\n only:\n - master\n variables:\n TAG_ORIGIN: master\n TAG_DESTINATION: latest\n\n.tag-image:\n image:\n name: gcr.io/go-containerregistry/crane:debug\n entrypoint: ['']\n script:\n - echo TAG_DESTINATION ${TAG_DESTINATION}\n - crane auth login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n - crane cp ${CI_REGISTRY_IMAGE}:${TAG_ORIGIN} ${CI_REGISTRY_IMAGE}:${TAG_DESTINATION}\n variables:\n GIT_STRATEGY: none\n\n").concat(system.deployEnvironments
|
|
16
16
|
.map(function (e) {
|
|
17
17
|
return "deploy-".concat(e.name, ":\n extends: .deploy-").concat(e.name, "\n stage: deploy\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
18
|
-
}).join('\n\n'), "\n\n").concat(system.deployEnvironments
|
|
19
|
-
.map(function (e) {
|
|
20
|
-
return "deploy-".concat(e.name, "-previous:\n extends: .deploy-").concat(e.name, "\n stage: deploy-previous\n when: manual\n variables:\n ENV: \"").concat(e.name, "\"\n CLUSTER_NAME: \"").concat(e.clusterName, "\"\n TAG: \":${CI_COMMIT_REF_SLUG}-previous-for-${CI_COMMIT_SHA}\"\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/");
|
|
21
18
|
}).join('\n\n'), "\n\n").concat(system.deployEnvironments
|
|
22
19
|
.map(function (e) { return ".deploy-".concat(e.name, ":\n extends: .deploy-ui\n stage: deploy\n when: ").concat(e.manualDeploy ? 'manual' : 'on_success', "\n only:\n - ").concat(e.branchName, "\n - /^").concat(e.branchName, "-.*$/\n tags:\n - ").concat(e.runnerTag, "\n variables:\n ENV: \"").concat(e.name, "\"\n DEV: \"false\"\n HOST: \"").concat(e.host, "\"\n ROOT_ENABLED: \"").concat(e.main, "\"\n KUBE_CONFIG: ${KUBE_").concat(e.clusterName.toUpperCase(), "_CONFIG}\n TAG: \":${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHA}\"").concat(system.configVars
|
|
23
20
|
.filter(function (v) { return v.scopes.includes('admin-app') || v.scopes.includes('ci'); })
|
|
@@ -30,4 +27,4 @@ var uiGitlabCiTmpl = function (_a) {
|
|
|
30
27
|
: '', "\n");
|
|
31
28
|
};
|
|
32
29
|
exports.uiGitlabCiTmpl = uiGitlabCiTmpl;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiQ2kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy91aS9lbnZpcm9ubWVudC9naXRsYWJDaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0QkFBNEI7QUFDNUIsMkNBQTBDO0FBRTFDLDJDQUFvRDtBQUU3QyxJQUFNLGNBQWMsR0FBRyxVQUFDLEVBSUg7UUFIaEIsTUFBTSxtQkFBQSxFQUNoQixNQUFNLFlBQUEsRUFDTixPQUFPLGFBQUE7SUFDd0IsT0FBQSwwQkFFL0IsT0FBTyxDQUFDLDBCQUEwQjtRQUNoQyxDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyxjQUNGLHdCQUFnQixPQUNuQixnVUFvQmlCLE1BQU0sQ0FBQyxJQUFJLG1NQVUzQixPQUFPLENBQUMsZUFBZTtRQUN6QixDQUFDLENBQUMsc1BBUUQ7UUFDRCxDQUFDLENBQUMsRUFBRSw4RkFLSyxNQUFNLENBQUMsa0JBQWtCO1NBQzdCLEdBQUcsQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLGtCQUFXLENBQUMsQ0FBQyxVQUFVLHVCQUFhLENBQUMsQ0FBQyxVQUFVLFVBQU8sRUFBdkQsQ0FBdUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsbW5DQTBCeEUsTUFBTSxDQUFDLGtCQUFrQjtTQUM3QixHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxrQkFBVyxDQUFDLENBQUMsVUFBVSx1QkFBYSxDQUFDLENBQUMsVUFBVSxVQUFPLEVBQXZELENBQXVELENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHdoQkFzQi9FLE1BQU0sQ0FBQyxrQkFBa0I7U0FDeEIsR0FBRyxDQUFDLFVBQUMsQ0FBQztRQUNMLE9BQUEsaUJBQVUsQ0FBQyxDQUFDLElBQUksbUNBQ0MsQ0FBQyxDQUFDLElBQUkseURBR2YsQ0FBQyxDQUFDLElBQUkscUNBQ0csQ0FBQyxDQUFDLFdBQVcsc0ZBRzFCLENBQUMsQ0FBQyxVQUFVLHVCQUNWLENBQUMsQ0FBQyxVQUFVLFVBQU87SUFUekIsQ0FTeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBRXpDLE1BQU0sQ0FBQyxrQkFBa0I7U0FDeEIsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFJLE9BQUEsa0JBQVcsQ0FBQyxDQUFDLElBQUksZ0VBR3BCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSw4QkFFMUMsQ0FBQyxDQUFDLFVBQVUsdUJBQ1YsQ0FBQyxDQUFDLFVBQVUsbUNBRWQsQ0FBQyxDQUFDLFNBQVMsd0NBRVAsQ0FBQyxDQUFDLElBQUksaURBRUwsQ0FBQyxDQUFDLElBQUkscUNBQ0UsQ0FBQyxDQUFDLElBQUkseUNBQ0EsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsMkVBQ0EsTUFBTSxDQUFDLFVBQVU7U0FDaEUsTUFBTSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQXpELENBQXlELENBQUM7U0FDeEUsR0FBRyxDQUNGLFVBQUMsQ0FBQyxJQUFLLE9BQUEsZ0JBQVMsSUFBQSwwQkFBWSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsY0FBSSxJQUFBLDBCQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFHLEVBQS9GLENBQStGLENBQ3ZHO1NBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFFLEVBcEJKLENBb0JJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdTQWVFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLGtxQkFtQmpCLE1BQU0sQ0FBQyxVQUFVO1NBQzVELE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUF6RCxDQUF5RCxDQUFDO1NBQ3hFLEdBQUcsQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLDBCQUFrQixDQUFDLENBQUMsSUFBSSxnQkFBTyxJQUFBLDBCQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFJLEVBQXZELENBQXVELENBQUM7U0FDbkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUVmLE9BQU8sQ0FBQyxlQUFlO1FBQ3pCLENBQUMsQ0FBQyx1TkFNTztRQUNULENBQUMsQ0FBQyxFQUFFLE9BRUg7QUF4TGdDLENBd0xoQyxDQUFBO0FBNUxZLFFBQUEsY0FBYyxrQkE0TDFCIn0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uiGetDefaultMenuTmpl = void 0;
|
|
4
|
-
var types_1 = require("../../../types");
|
|
5
4
|
var buildedTypes_1 = require("../../../builders/buildedTypes");
|
|
6
5
|
var utils_1 = require("../../../utils");
|
|
7
6
|
var pluralize_1 = require("pluralize");
|
|
@@ -28,7 +27,7 @@ var menuItemTmpl = function (item) {
|
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
var uiGetDefaultMenuTmpl = function (_a) {
|
|
31
|
-
var system = _a.system, entities = _a.entities,
|
|
30
|
+
var system = _a.system, entities = _a.entities, options = _a.options;
|
|
32
31
|
var entitiesToShow = entities.sort(function (a, b) {
|
|
33
32
|
return a.title['ru'].plural.localeCompare(b.title['ru'].plural, 'en');
|
|
34
33
|
});
|
|
@@ -43,4 +42,4 @@ var uiGetDefaultMenuTmpl = function (_a) {
|
|
|
43
42
|
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nconst getDefaultMenu = () => {\n const menuData: MenuElement[] = [\n").concat(system.menuItems.map(function (i) { return "".concat(menuItemTmpl(i), ","); }).map(utils_1.pad2).join('\n'), "\n {\n label: 'app.menu.functions',\n link: '/functions',\n icon: 'DetailsOutlined',\n debugOnly: true,\n },\n {\n label: 'app.menu.resources',\n link: '/resources',\n icon: 'DetailsOutlined',\n debugOnly: true,\n },\n {\n label: 'app.menu.meta',\n link: '/meta',\n icon: 'DetailsOutlined',\n debugOnly: true,\n },\n ];\n\n const infoRegistriesMenuData: MenuElement[] = [\n").concat(infoRegistries.map(function (entity) { return renderEntity(entity); }).join('\n'), "\n ];\n\n if (infoRegistriesMenuData.length) {\n menuData.push({\n label: 'app.infoRegistries',\n icon: 'DetailsOutlined',\n debugOnly: true,\n children: infoRegistriesMenuData,\n });\n }\n\n const sumRegistriesMenuData: MenuElement[] = [\n").concat(sumRegistries.map(function (entity) { return renderEntity(entity); }).join('\n'), "\n ];\n\n if (sumRegistriesMenuData.length) {\n menuData.push({\n label: 'app.sumRegistries',\n icon: 'DetailsOutlined',\n debugOnly: true,\n children: sumRegistriesMenuData,\n });\n }\n\n const documentsMenuData: MenuElement[] = [\n").concat(documents.map(function (entity) { return renderEntity(entity); }).join('\n'), "\n ];\n\n if (documentsMenuData.length) {\n menuData.push({\n label: 'app.documents',\n icon: 'DetailsOutlined',\n debugOnly: true,\n children: documentsMenuData,\n });\n }\n\n const catalogsMenuData: MenuElement[] = [\n").concat(catalogs.map(function (entity) { return renderEntity(entity); }).join('\n'), "\n ];\n\n if (catalogsMenuData.length) {\n menuData.push({\n label: 'app.catalogs',\n icon: 'DetailsOutlined',\n debugOnly: true,\n children: catalogsMenuData,\n });\n }\n\n return menuData;\n};\n\nexport default getDefaultMenu;\n");
|
|
44
43
|
};
|
|
45
44
|
exports.uiGetDefaultMenuTmpl = uiGetDefaultMenuTmpl;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RGVmYXVsdE1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy91aS9nZXREZWZhdWx0TWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNkU7QUFFN0Usd0NBQXFEO0FBQ3JELHVDQUFnQztBQUVoQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsSUFBYztJQUN6QyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDckIsS0FBSywyQkFBWSxDQUFDLFdBQVc7WUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2xCLEtBQUssMkJBQVksQ0FBQyxLQUFLO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5QztZQUNFLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsSUFBTSxZQUFZLEdBQUcsVUFBQyxJQUFjO0lBQ2xDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNyQixLQUFLLDJCQUFZLENBQUMsS0FBSztZQUNyQixPQUFPLHVCQUNELElBQUksQ0FBQyxLQUFLLDBCQUNYLElBQUksQ0FBQyxjQUFjLDhCQUNmLElBQUksQ0FBQyxTQUFTLCtCQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLFdBQUksQ0FBQyxPQUFJLEVBQVQsQ0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFDdkQsQ0FBQyxDQUFDLENBQUMsSUFBSSw0QkFDRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFDaEMsSUFBSSxD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
|