@nathapp/na-cli 1.0.4 → 1.0.7
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/README.md +28 -2
- package/bunfig.toml +3 -0
- package/dist/commands/list.js +26 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/k8s-deployment/.gitignore-rename +2 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/values.yaml +1 -1
- package/dist/templates/k8s-deployment/resources/charts/mysql/values.yaml +5 -1
- package/dist/templates/k8s-deployment/resources/charts/redis/values.yaml +1 -1
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/values.yaml +1 -1
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/ingressroutetcp.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/values.yaml +6 -8
- package/dist/templates/k8s-deployment/templates/_cronjob.tpl +1 -1
- package/dist/templates/k8s-deployment/templates/_deployment.tpl +2 -2
- package/dist/templates/k8s-deployment/templates/_ingressroutetcp.tpl +135 -0
- package/dist/templates/k8s-deployment/templates/_job.tpl +1 -1
- package/dist/templates/k8s-deployment/templates/_pod.tpl +2 -2
- package/dist/templates/k8s-deployment/templates/_statefulset.tpl +2 -2
- package/dist/templates/k8s-deployment/templates/root-pull-secret.yaml +4 -2
- package/dist/templates/k8s-deployment/templates/root-secret.yaml +4 -2
- package/dist/templates/k8s-deployment/test-values.yaml +10 -0
- package/dist/templates/k8s-deployment/values.yaml +1 -1
- package/dist/templates/k8s-helm-chart/templates/ingressroutetcp.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/job.yaml +1 -0
- package/dist/templates/k8s-helm-chart/values.yaml +127 -13
- package/dist/utils/template.js +19 -21
- package/dist/utils/template.js.map +1 -1
- package/nax/config.json +23 -0
- package/nax/features/enhancements/prd.json +61 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ You can provide answers directly via command-line flags. If both `--template` an
|
|
|
39
39
|
- `--k8s_chart_registry_host`: `aliyun`, `aws`, `dockerhub`, or `custom`.
|
|
40
40
|
- `--k8s_image_name`: Full image name (default: `bitnami/kafka`).
|
|
41
41
|
- `--k8s_image_version`: Version tag (default: `1.0.0`).
|
|
42
|
-
- `--k8s_chart_kind`: `Deployment`, `StatefulSet`, or `
|
|
42
|
+
- `--k8s_chart_kind`: `Deployment`, `StatefulSet`, `CronJob`, or `Job` (default: `Deployment`). A generated `Job` chart runs as a `post-install,post-upgrade` Helm hook (a plain Job's pod template is immutable, so upgrades would fail). Switching it to `pre-install,pre-upgrade` (e.g. migrations before the app rolls out) only works if everything it references is created outside the chart (`fromKeyRef` secrets/config, an existing pull secret): pre-install hooks run before the release's own objects exist.
|
|
43
43
|
- `--k8s_chart_registry_region`: (For Aliyun/AWS) default: `ap-southeast-3`.
|
|
44
44
|
- `--k8s_chart_aws_account_id`: (For AWS) default: `123456789`.
|
|
45
45
|
|
|
@@ -61,6 +61,23 @@ The CLI understands the relationship between infrastructure projects and service
|
|
|
61
61
|
|
|
62
62
|
This allows you to manage modular services within a master deployment project without manually navigating to sub-folders.
|
|
63
63
|
|
|
64
|
+
#### Deployment defaults (`k8s-deployment` / `k8s-helm-chart`)
|
|
65
|
+
|
|
66
|
+
- **Ingress**: Traefik (`className: traefik`, `web` entrypoint), no TLS in the chart. TLS is
|
|
67
|
+
expected to terminate upstream (e.g. Cloudflare Tunnel). Hosts are flat:
|
|
68
|
+
`{{SERVICE_BASE_NAME}}-<chart>.{{SERVICE_BASE_DOMAIN}}`, where `SERVICE_BASE_NAME` is the release name.
|
|
69
|
+
- **TCP routing**: set `ingressRouteTCP` in a chart's values to render a Traefik `IngressRouteTCP`.
|
|
70
|
+
- **Review apps**: merge requests run `make review`, deploying release `<project>-<branch-slug>`
|
|
71
|
+
with `test-values.yaml` into `REVIEW_KUBE_NAMESPACE` (default `<CI_KUBE_NAMESPACE>-review`,
|
|
72
|
+
never the production namespace). Names over 30 chars become `<first 24>-<5-digit cksum>`.
|
|
73
|
+
GitLab stops it via `stop-review` when the MR is merged or closed, or after one week.
|
|
74
|
+
Review apps run branch code with cluster access: scope `KUBECONFIG` per environment
|
|
75
|
+
(`production` = protected credential, `review/*` = credential limited to the review namespace).
|
|
76
|
+
- **CI image**: `HELM_CI_IMAGE` (default `alpine/helm:3.22.0`). Pin deploy jobs to a runner that
|
|
77
|
+
can reach the cluster with `default.tags`.
|
|
78
|
+
- **Lint**: `make lint` render-checks both releases with `helm template` against `values.yaml`
|
|
79
|
+
and `test-values.yaml`.
|
|
80
|
+
|
|
64
81
|
---
|
|
65
82
|
|
|
66
83
|
### 3. Environment Variable Conversion
|
|
@@ -86,9 +103,18 @@ na yml-env -i config.yaml -o .env
|
|
|
86
103
|
## Available Templates
|
|
87
104
|
The CLI currently supports the following project types:
|
|
88
105
|
- `db-schema`: Database migration and schema projects.
|
|
89
|
-
- `k8s-deployment`:
|
|
106
|
+
- `k8s-deployment`: Umbrella Helm deployment project (resources + services releases, GitLab CI with review apps).
|
|
90
107
|
- `k8s-helm-chart`: Comprehensive Helm chart bootstrapping.
|
|
91
108
|
- `mxw-base-api-express`: Express-based API boilerplate.
|
|
92
109
|
- `ts-library`: TypeScript library project.
|
|
93
110
|
- `nestjs-api`: Professional NestJS setup with platform choices.
|
|
94
111
|
- `vuexy-portal`: Frontend portal based on the Vuexy template.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Development
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
bun install
|
|
119
|
+
bun run test # builds dist/, then runs test/ (helm-dependent tests skip when helm is absent)
|
|
120
|
+
```
|
package/bunfig.toml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.listTemplates = void 0;
|
|
5
|
+
var template_1 = require("../utils/template");
|
|
6
|
+
var TEMPLATE_DESCRIPTIONS = (_a = {},
|
|
7
|
+
_a[template_1.TEMPLATE_NAME.DB_SCHEMA] = 'Database schema migration template',
|
|
8
|
+
_a[template_1.TEMPLATE_NAME.K8S_DEPLOYMENT] = 'Kubernetes deployment manifest template',
|
|
9
|
+
_a[template_1.TEMPLATE_NAME.K8S_DEPLOY_CHART] = 'Kubernetes Helm chart template',
|
|
10
|
+
_a[template_1.TEMPLATE_NAME.MXW_BASE_API] = 'MXW base API with Express template',
|
|
11
|
+
_a[template_1.TEMPLATE_NAME.TS_LIBRARY] = 'TypeScript library template',
|
|
12
|
+
_a[template_1.TEMPLATE_NAME.NESTJS_API] = 'NestJS REST API template',
|
|
13
|
+
_a[template_1.TEMPLATE_NAME.VUEXY_PORTAL] = 'Vuexy admin portal template',
|
|
14
|
+
_a);
|
|
15
|
+
function listTemplates() {
|
|
16
|
+
var entries = Object.values(template_1.TEMPLATE_NAME)
|
|
17
|
+
.sort()
|
|
18
|
+
.map(function (name) {
|
|
19
|
+
var _a;
|
|
20
|
+
var description = (_a = TEMPLATE_DESCRIPTIONS[name]) !== null && _a !== void 0 ? _a : 'No description available';
|
|
21
|
+
return "".concat(name, " \u2014 ").concat(description);
|
|
22
|
+
});
|
|
23
|
+
return entries.join('\n');
|
|
24
|
+
}
|
|
25
|
+
exports.listTemplates = listTemplates;
|
|
26
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;AAAA,8CAAkD;AAElD,IAAM,qBAAqB;IACvB,GAAC,wBAAa,CAAC,SAAS,IAAG,oCAAoC;IAC/D,GAAC,wBAAa,CAAC,cAAc,IAAG,yCAAyC;IACzE,GAAC,wBAAa,CAAC,gBAAgB,IAAG,gCAAgC;IAClE,GAAC,wBAAa,CAAC,YAAY,IAAG,oCAAoC;IAClE,GAAC,wBAAa,CAAC,UAAU,IAAG,6BAA6B;IACzD,GAAC,wBAAa,CAAC,UAAU,IAAG,0BAA0B;IACtD,GAAC,wBAAa,CAAC,YAAY,IAAG,6BAA6B;OAC9D,CAAC;AAEF,SAAgB,aAAa;IACzB,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAa,CAAC;SACvC,IAAI,EAAE;SACN,GAAG,CAAC,UAAC,IAAI;;QACN,IAAM,WAAW,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,mCAAI,0BAA0B,CAAC;QAC9E,OAAO,UAAG,IAAI,qBAAW,WAAW,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AATD,sCASC"}
|
package/dist/index.js
CHANGED
|
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
40
40
|
var path = require("path");
|
|
41
41
|
var template_1 = require("./utils/template");
|
|
42
42
|
var env_1 = require("./utils/env");
|
|
43
|
+
var list_1 = require("./commands/list");
|
|
43
44
|
var yargs = require("yargs");
|
|
44
45
|
var version = require("../package.json").version;
|
|
45
46
|
function runGenerateTemplate() {
|
|
@@ -147,6 +148,18 @@ yargs.version(version).help().alias("help", "h").showHelpOnFail(true)
|
|
|
147
148
|
console.log("converting yaml to .env");
|
|
148
149
|
return (0, env_1.writeYamlToDotEnv)(argv.input, argv.output);
|
|
149
150
|
}
|
|
151
|
+
}).command({
|
|
152
|
+
command: 'list',
|
|
153
|
+
describe: 'list all available project templates',
|
|
154
|
+
handler: function () {
|
|
155
|
+
console.log((0, list_1.listTemplates)());
|
|
156
|
+
}
|
|
157
|
+
}).command({
|
|
158
|
+
command: 'ls',
|
|
159
|
+
describe: 'list all available project templates, "list" command alias',
|
|
160
|
+
handler: function () {
|
|
161
|
+
console.log((0, list_1.listTemplates)());
|
|
162
|
+
}
|
|
150
163
|
});
|
|
151
164
|
yargs.parse();
|
|
152
165
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,16 @@ kind: StatefulSet
|
|
|
4
4
|
replicaCount: 1
|
|
5
5
|
image:
|
|
6
6
|
repository: mysql
|
|
7
|
-
tag: "
|
|
7
|
+
tag: "8.4"
|
|
8
8
|
pullPolicy: IfNotPresent
|
|
9
9
|
|
|
10
10
|
service:
|
|
11
11
|
type: ClusterIP
|
|
12
12
|
port: 3306
|
|
13
13
|
|
|
14
|
+
# MySQL 8.4 notes: the container refuses to start with an empty root password, so set it
|
|
15
|
+
# (from a CI variable, never committed); mysql_native_password is off by default, so old
|
|
16
|
+
# clients need `mysql-native-password=ON` under [mysqld] in a mounted mysql.cnf (config +
|
|
17
|
+
# volumeMounts); a 5.7 data volume cannot be opened by 8.4 directly (upgrade via 8.0).
|
|
14
18
|
secret:
|
|
15
19
|
MYSQL_ROOT_PASSWORD: ""
|
package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/ingressroutetcp.yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{- include "root.ingressroutetcp" $ }}
|
|
@@ -28,16 +28,14 @@ service:
|
|
|
28
28
|
port: 80
|
|
29
29
|
|
|
30
30
|
ingress:
|
|
31
|
+
className: "traefik"
|
|
31
32
|
annotations:
|
|
32
|
-
|
|
33
|
-
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
|
33
|
+
traefik.ingress.kubernetes.io/router.entrypoints: web
|
|
34
34
|
hosts:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
hosts:
|
|
40
|
-
- www.sample.com
|
|
35
|
+
- host: "{{SERVICE_BASE_NAME}}-sample.{{SERVICE_BASE_DOMAIN}}"
|
|
36
|
+
paths:
|
|
37
|
+
- path: "/"
|
|
38
|
+
pathType: "Prefix"
|
|
41
39
|
|
|
42
40
|
readinessProbe:
|
|
43
41
|
httpGet:
|
|
@@ -238,9 +238,9 @@ spec:
|
|
|
238
238
|
claimName: {{ include (print $.Chart.Name ".fullname") $ }}-{{ .claimName }}
|
|
239
239
|
{{- end }}
|
|
240
240
|
{{- else }}
|
|
241
|
-
|
|
241
|
+
- {{ toYaml . | nindent 10 | trim }}
|
|
242
242
|
{{- end }}
|
|
243
243
|
{{- end }}
|
|
244
244
|
{{- end }}
|
|
245
245
|
{{- end }}
|
|
246
|
-
{{- end }}
|
|
246
|
+
{{- end }}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{{- define "root.ingressroutetcp" -}}
|
|
2
|
+
{{- if and .Values.enabled .Values.ingressRouteTCP -}}
|
|
3
|
+
{{- $fullName := include (print $.Chart.Name ".fullname") . -}}
|
|
4
|
+
{{- $svcPort := .Values.service.port -}}
|
|
5
|
+
apiVersion: traefik.io/v1alpha1
|
|
6
|
+
kind: IngressRouteTCP
|
|
7
|
+
metadata:
|
|
8
|
+
name: {{ .Values.ingressRouteTCP.name | default (printf "%s-tcp" $fullName) }}
|
|
9
|
+
{{- if .Values.ingressRouteTCP.annotations }}
|
|
10
|
+
annotations:
|
|
11
|
+
{{- with .Values.ingressRouteTCP.annotations }}
|
|
12
|
+
{{- toYaml . | nindent 4 }}
|
|
13
|
+
{{- end }}
|
|
14
|
+
{{- end }}
|
|
15
|
+
labels:
|
|
16
|
+
{{- include (print $.Chart.Name ".labels") . | nindent 4 }}
|
|
17
|
+
spec:
|
|
18
|
+
{{- if .Values.ingressRouteTCP.entryPoints }}
|
|
19
|
+
entryPoints:
|
|
20
|
+
{{- range .Values.ingressRouteTCP.entryPoints }}
|
|
21
|
+
- {{ include "root.global" (list $ .) }}
|
|
22
|
+
{{- end }}
|
|
23
|
+
{{- end }}
|
|
24
|
+
routes:
|
|
25
|
+
{{- if .Values.ingressRouteTCP.routes }}
|
|
26
|
+
{{- range $routeIndex, $route := .Values.ingressRouteTCP.routes }}
|
|
27
|
+
- match: {{ include "root.global" (list $ $route.match) }}
|
|
28
|
+
{{- if $route.priority }}
|
|
29
|
+
priority: {{ $route.priority }}
|
|
30
|
+
{{- end }}
|
|
31
|
+
{{- if $route.middlewares }}
|
|
32
|
+
middlewares:
|
|
33
|
+
{{- range $route.middlewares }}
|
|
34
|
+
- name: {{ include "root.global" (list $ .name) }}
|
|
35
|
+
{{- if .namespace }}
|
|
36
|
+
namespace: {{ include "root.global" (list $ .namespace) }}
|
|
37
|
+
{{- end }}
|
|
38
|
+
{{- end }}
|
|
39
|
+
{{- end }}
|
|
40
|
+
{{- if $route.services }}
|
|
41
|
+
services:
|
|
42
|
+
{{- range $route.services }}
|
|
43
|
+
- name: {{ include "root.global" (list $ .name) | default $fullName }}
|
|
44
|
+
{{- if .namespace }}
|
|
45
|
+
namespace: {{ include "root.global" (list $ .namespace) }}
|
|
46
|
+
{{- end }}
|
|
47
|
+
{{- if .port }}
|
|
48
|
+
port: {{ .port }}
|
|
49
|
+
{{- else if $svcPort }}
|
|
50
|
+
port: {{ $svcPort }}
|
|
51
|
+
{{- end }}
|
|
52
|
+
{{- if .weight }}
|
|
53
|
+
weight: {{ .weight }}
|
|
54
|
+
{{- end }}
|
|
55
|
+
{{- if .terminationDelay }}
|
|
56
|
+
terminationDelay: {{ .terminationDelay }}
|
|
57
|
+
{{- end }}
|
|
58
|
+
{{- if .proxyProtocol }}
|
|
59
|
+
proxyProtocol:
|
|
60
|
+
version: {{ .proxyProtocol.version }}
|
|
61
|
+
{{- end }}
|
|
62
|
+
{{- if .serversTransport }}
|
|
63
|
+
serversTransport: {{ include "root.global" (list $ .serversTransport) }}
|
|
64
|
+
nativeLB: {{ .nativeLB | default false }}
|
|
65
|
+
nodePortLB: {{ .nodePortLB | default false }}
|
|
66
|
+
{{- end }}
|
|
67
|
+
{{- end }}
|
|
68
|
+
{{- end }}
|
|
69
|
+
{{- end }}
|
|
70
|
+
{{- end }}
|
|
71
|
+
{{- if .Values.ingressRouteTCP.host }}
|
|
72
|
+
- match: HostSNI(`{{ include "root.global" (list . .Values.ingressRouteTCP.host) }}`)
|
|
73
|
+
{{- if .Values.ingressRouteTCP.middlewares }}
|
|
74
|
+
middlewares:
|
|
75
|
+
{{- range .Values.ingressRouteTCP.middlewares }}
|
|
76
|
+
- name: {{ include "root.global" (list $ .name) }}
|
|
77
|
+
{{- if .namespace }}
|
|
78
|
+
namespace: {{ include "root.global" (list $ .namespace) }}
|
|
79
|
+
{{- end }}
|
|
80
|
+
{{- end }}
|
|
81
|
+
{{- end }}
|
|
82
|
+
services:
|
|
83
|
+
- name: {{ $fullName }}
|
|
84
|
+
port: {{ $svcPort }}
|
|
85
|
+
{{- if .Values.ingressRouteTCP.terminationDelay }}
|
|
86
|
+
terminationDelay: {{ .Values.ingressRouteTCP.terminationDelay }}
|
|
87
|
+
{{- end }}
|
|
88
|
+
{{- if .Values.ingressRouteTCP.proxyProtocol }}
|
|
89
|
+
proxyProtocol:
|
|
90
|
+
version: {{ .Values.ingressRouteTCP.proxyProtocol.version }}
|
|
91
|
+
{{- end }}
|
|
92
|
+
{{- if .Values.ingressRouteTCP.serversTransport }}
|
|
93
|
+
serversTransport: {{ include "root.global" (list . .Values.ingressRouteTCP.serversTransport) }}
|
|
94
|
+
{{- end }}
|
|
95
|
+
nativeLB: {{ .Values.ingressRouteTCP.nativeLB | default false }}
|
|
96
|
+
nodePortLB: {{ .Values.ingressRouteTCP.nodePortLB | default false }}
|
|
97
|
+
{{- end }}
|
|
98
|
+
{{- if .Values.ingressRouteTCP.tls }}
|
|
99
|
+
tls:
|
|
100
|
+
{{- with .Values.ingressRouteTCP.tls }}
|
|
101
|
+
{{- if .secretName }}
|
|
102
|
+
secretName: {{ include "root.global" (list $ .secretName) }}
|
|
103
|
+
{{- end }}
|
|
104
|
+
{{- if .options }}
|
|
105
|
+
options:
|
|
106
|
+
name: {{ include "root.global" (list $ .options.name) }}
|
|
107
|
+
{{- if .options.namespace }}
|
|
108
|
+
namespace: {{ include "root.global" (list $ .options.namespace) }}
|
|
109
|
+
{{- end }}
|
|
110
|
+
{{- end }}
|
|
111
|
+
{{- if .certResolver }}
|
|
112
|
+
certResolver: {{ include "root.global" (list $ .certResolver) }}
|
|
113
|
+
{{- end }}
|
|
114
|
+
{{- if .domains }}
|
|
115
|
+
domains:
|
|
116
|
+
{{- range .domains }}
|
|
117
|
+
- main: {{ include "root.global" (list $ .main) }}
|
|
118
|
+
{{- if .sans }}
|
|
119
|
+
sans:
|
|
120
|
+
{{- range .sans }}
|
|
121
|
+
- {{ include "root.global" (list $ .) }}
|
|
122
|
+
{{- end }}
|
|
123
|
+
{{- end }}
|
|
124
|
+
{{- end }}
|
|
125
|
+
{{- end }}
|
|
126
|
+
{{- if .store }}
|
|
127
|
+
store: {{ include "root.global" (list $ .store) }}
|
|
128
|
+
{{- end }}
|
|
129
|
+
{{- if .passthrough }}
|
|
130
|
+
passthrough: {{ .passthrough }}
|
|
131
|
+
{{- end }}
|
|
132
|
+
{{- end }}
|
|
133
|
+
{{- end }}
|
|
134
|
+
{{- end }}
|
|
135
|
+
{{- end }}
|
|
@@ -206,9 +206,9 @@ spec:
|
|
|
206
206
|
claimName: {{ include (print $.Chart.Name ".fullname") $ }}-{{ .claimName }}
|
|
207
207
|
{{- end }}
|
|
208
208
|
{{- else }}
|
|
209
|
-
|
|
209
|
+
- {{ toYaml . | nindent 6 | trim }}
|
|
210
210
|
{{- end }}
|
|
211
211
|
{{- end }}
|
|
212
212
|
{{- end }}
|
|
213
213
|
{{- end }}
|
|
214
|
-
{{- end }}
|
|
214
|
+
{{- end }}
|
|
@@ -236,9 +236,9 @@ spec:
|
|
|
236
236
|
claimName: {{ include (print $.Chart.Name ".fullname") $ }}-{{ .claimName }}
|
|
237
237
|
{{- end }}
|
|
238
238
|
{{- else }}
|
|
239
|
-
|
|
239
|
+
- {{ toYaml . | nindent 10 | trim }}
|
|
240
240
|
{{- end }}
|
|
241
241
|
{{- end }}
|
|
242
242
|
{{- end }}
|
|
243
243
|
{{- end }}
|
|
244
|
-
{{- end }}
|
|
244
|
+
{{- end }}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
{{-
|
|
1
|
+
{{- /* global.secret may be absent, null or "" */ -}}
|
|
2
|
+
{{- $pull := ((.Values.global | default dict).secret | default dict).pull }}
|
|
3
|
+
{{- if $pull }}
|
|
2
4
|
apiVersion: v1
|
|
3
5
|
kind: Secret
|
|
4
6
|
metadata:
|
|
5
7
|
name: {{ print $.Release.Name "-pull" }}
|
|
6
8
|
type: kubernetes.io/dockerconfigjson
|
|
7
9
|
data:
|
|
8
|
-
{{- with
|
|
10
|
+
{{- with $pull }}
|
|
9
11
|
.dockerconfigjson: {{ .auth | b64enc | printf "{\"auths\":{\"%s\":{\"auth\":\"%s\"}}}" .host | b64enc }}
|
|
10
12
|
{{- end }}
|
|
11
13
|
{{- end }}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
{{-
|
|
1
|
+
{{- /* global.secret may be absent, null or "" */ -}}
|
|
2
|
+
{{- $root := ((.Values.global | default dict).secret | default dict).root }}
|
|
3
|
+
{{- if $root }}
|
|
2
4
|
apiVersion: v1
|
|
3
5
|
kind: Secret
|
|
4
6
|
metadata:
|
|
5
7
|
name: {{ print $.Release.Name "-root" }}
|
|
6
8
|
type: Opaque
|
|
7
9
|
data:
|
|
8
|
-
{{- with
|
|
10
|
+
{{- with $root }}
|
|
9
11
|
{{- range $key, $value := . }}
|
|
10
12
|
{{- $key | nindent 2 }}{{- ": " -}}
|
|
11
13
|
{{- if eq (typeOf $value) "string" -}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Values for non-default-branch releases (merge request review apps).
|
|
2
|
+
# Layered on top of the chart's values.yaml by `make run-install` / `make review`.
|
|
3
|
+
#
|
|
4
|
+
# The release name is <project>-<branch-slug>, so each review app already gets its
|
|
5
|
+
# own hosts: <project>-<branch-slug>-<service>.<SERVICE_BASE_DOMAIN>
|
|
6
|
+
# Keep SERVICE_BASE_DOMAIN the Cloudflare zone itself (one label deep): the free
|
|
7
|
+
# Universal SSL wildcard does not cover *.sub.example.com.
|
|
8
|
+
global:
|
|
9
|
+
root:
|
|
10
|
+
SERVICE_BASE_DOMAIN: "example.com"
|
|
@@ -29,7 +29,7 @@ global:
|
|
|
29
29
|
root:
|
|
30
30
|
SERVICE_DOMAIN: "WKS"
|
|
31
31
|
SERVICE_BASE_SCHEMA: "https"
|
|
32
|
-
SERVICE_BASE_DOMAIN: "
|
|
32
|
+
SERVICE_BASE_DOMAIN: "example.com"
|
|
33
33
|
SERVICE_BASE_DOMAIN_CERT: "ssl-example.com"
|
|
34
34
|
MYSQL_BASE_SCHEMA: "mysql"
|
|
35
35
|
MYSQL_BASE_DATABASE: "dev"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{- include "root.ingressroutetcp" $ }}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{- include "root.job" $ }}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
enabled: true
|
|
2
2
|
kind: <%= chartKind %>
|
|
3
|
-
|
|
3
|
+
<% if (chartKind === 'Job') { %>
|
|
4
|
+
# A Job's pod template is immutable, so a plain Job fails any `helm upgrade` that changes it
|
|
5
|
+
# (e.g. a new image tag). As a Helm hook it is recreated on every install/upgrade instead.
|
|
6
|
+
# post-install/post-upgrade runs after this release's own Secret, ConfigMap, ServiceAccount
|
|
7
|
+
# and pull secret exist. pre-install/pre-upgrade (e.g. DB migrations before the new app rolls
|
|
8
|
+
# out) runs BEFORE them on the first install, so then every reference must be external:
|
|
9
|
+
# secret/config entries via fromKeyRef, an existing imagePullSecrets name, and volumes from
|
|
10
|
+
# objects created outside the chart.
|
|
11
|
+
annotations:
|
|
12
|
+
helm.sh/hook: post-install,post-upgrade
|
|
13
|
+
helm.sh/hook-weight: "0"
|
|
14
|
+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
|
15
|
+
restartPolicy: Never
|
|
16
|
+
<% } %>replicaCount: 1
|
|
4
17
|
image:
|
|
5
18
|
repository: <%= containerRegistry %>
|
|
6
19
|
tag: "<%= containerVersion %>"
|
|
@@ -8,28 +21,121 @@ image:
|
|
|
8
21
|
|
|
9
22
|
imagePullSecrets: "{{Release.Name}}-pull"
|
|
10
23
|
|
|
24
|
+
# Plain values, injected as env:
|
|
25
|
+
# env:
|
|
26
|
+
# NODE_ENV: "production"
|
|
27
|
+
# ConfigMap entries (also injected as env); a value may reference an external ConfigMap:
|
|
28
|
+
# config:
|
|
29
|
+
# LOG_LEVEL: "info"
|
|
30
|
+
# DB_NAME:
|
|
31
|
+
# fromKeyRef: "master-db-config"
|
|
32
|
+
# Secret entries (also injected as env). Never commit real values here: reference an
|
|
33
|
+
# existing Secret, or pass them from CI variables.
|
|
34
|
+
# secret:
|
|
35
|
+
# DATABASE_URL:
|
|
36
|
+
# fromKeyRef: "<%= chartName %>-db"
|
|
37
|
+
|
|
38
|
+
# Overrides the image command, wrapped in /bin/sh -c:
|
|
39
|
+
# beforeScript:
|
|
40
|
+
# - "echo starting"
|
|
41
|
+
# script:
|
|
42
|
+
# - "node dist/main.js"
|
|
43
|
+
|
|
44
|
+
# initContainers:
|
|
45
|
+
# - name: volume-permissions
|
|
46
|
+
# image: busybox:1.36
|
|
47
|
+
# command: ["sh", "-c", "chown 1000:1000 /data"]
|
|
48
|
+
# volumeMounts:
|
|
49
|
+
# - name: data-storage
|
|
50
|
+
# mountPath: /data
|
|
51
|
+
|
|
52
|
+
# securityContext:
|
|
53
|
+
# runAsUser: 1000
|
|
54
|
+
# runAsGroup: 3000
|
|
55
|
+
# fsGroup: 2000
|
|
56
|
+
|
|
57
|
+
# Set requests on anything that runs as a review app, so previews cannot starve the cluster.
|
|
58
|
+
# resources:
|
|
59
|
+
# requests:
|
|
60
|
+
# cpu: 50m
|
|
61
|
+
# memory: 128Mi
|
|
62
|
+
# limits:
|
|
63
|
+
# memory: 512Mi
|
|
64
|
+
|
|
11
65
|
service:
|
|
12
66
|
type: ClusterIP
|
|
13
67
|
port: 80
|
|
14
68
|
targetPort: 80
|
|
69
|
+
# Extra ports (e.g. SMTP next to a web UI):
|
|
70
|
+
# ports:
|
|
71
|
+
# - port: 2500
|
|
72
|
+
# name: smtp
|
|
73
|
+
# Proxy to a host outside the cluster instead of pods:
|
|
74
|
+
# type: ExternalName
|
|
75
|
+
# externalName: 10.0.0.10
|
|
15
76
|
|
|
77
|
+
# TLS terminates at the Cloudflare edge and reaches Traefik over the tunnel as plain
|
|
78
|
+
# HTTP, so no tls block by default. The host is flat (one label under the base domain)
|
|
79
|
+
# to stay inside Cloudflare's one-level Universal SSL wildcard; SERVICE_BASE_NAME is the
|
|
80
|
+
# release name, which differs per branch (at most 30 chars, so keep chart names to 32
|
|
81
|
+
# chars or less to stay under the 63-char DNS label limit).
|
|
82
|
+
# For direct exposure with cert-manager, use the websecure entrypoint and add:
|
|
83
|
+
# tls:
|
|
84
|
+
# - secretName: SERVICE_BASE_DOMAIN_CERT
|
|
85
|
+
# hosts:
|
|
86
|
+
# - "{{SERVICE_BASE_NAME}}-<%= chartName %>.{{SERVICE_BASE_DOMAIN}}"
|
|
16
87
|
ingress:
|
|
17
|
-
className: "
|
|
88
|
+
className: "traefik"
|
|
18
89
|
annotations:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
90
|
+
traefik.ingress.kubernetes.io/router.entrypoints: web
|
|
91
|
+
# Attach Traefik middlewares (<namespace>-<name>@kubernetescrd), e.g. a noindex header:
|
|
92
|
+
# traefik.ingress.kubernetes.io/router.middlewares: "default-noindex-headers@kubernetescrd"
|
|
93
|
+
# Backend speaks HTTPS:
|
|
94
|
+
# traefik.ingress.kubernetes.io/service.serversscheme: https
|
|
23
95
|
|
|
24
96
|
hosts:
|
|
25
|
-
- host:
|
|
97
|
+
- host: "{{SERVICE_BASE_NAME}}-<%= chartName %>.{{SERVICE_BASE_DOMAIN}}"
|
|
26
98
|
paths:
|
|
27
|
-
- path: "
|
|
28
|
-
pathType: "
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
99
|
+
- path: "/"
|
|
100
|
+
pathType: "Prefix"
|
|
101
|
+
|
|
102
|
+
# Traefik IngressRoute instead of Ingress (multiple routes, priorities, cross-namespace
|
|
103
|
+
# services such as an auth outpost). Disable `ingress` when using it.
|
|
104
|
+
# ingressRoute:
|
|
105
|
+
# entryPoints:
|
|
106
|
+
# - web
|
|
107
|
+
# routes:
|
|
108
|
+
# - match: Host(`{{SERVICE_BASE_NAME}}-<%= chartName %>.{{SERVICE_BASE_DOMAIN}}`)
|
|
109
|
+
# kind: Rule
|
|
110
|
+
# priority: 10
|
|
111
|
+
# services:
|
|
112
|
+
# - port: 80
|
|
113
|
+
# # scheme: https
|
|
114
|
+
# # serversTransport: "{{Release.Name}}-<%= chartName %>-transport"
|
|
115
|
+
# # middlewares:
|
|
116
|
+
# # - name: noindex-headers
|
|
117
|
+
# # namespace: default
|
|
118
|
+
|
|
119
|
+
# Backend transport for ingressRoute services (e.g. self-signed HTTPS upstream).
|
|
120
|
+
# Default name: <release>-<chart>-transport.
|
|
121
|
+
# serversTransport:
|
|
122
|
+
# insecureSkipVerify: true
|
|
123
|
+
|
|
124
|
+
# A Traefik Middleware owned by this chart. Default name: <release>-<chart>.
|
|
125
|
+
# middleware:
|
|
126
|
+
# headers:
|
|
127
|
+
# customResponseHeaders:
|
|
128
|
+
# X-Robots-Tag: "noindex, nofollow"
|
|
129
|
+
|
|
130
|
+
# Raw TCP routing through Traefik (databases, brokers), matched by SNI. SNI only exists
|
|
131
|
+
# inside TLS, so a named host needs `tls` (passthrough, or Traefik terminating); without
|
|
132
|
+
# TLS only the catch-all HostSNI(`*`) matches.
|
|
133
|
+
# ingressRouteTCP:
|
|
134
|
+
# entryPoints:
|
|
135
|
+
# - websecure
|
|
136
|
+
# host: "{{SERVICE_BASE_NAME}}-<%= chartName %>-tcp.{{SERVICE_BASE_DOMAIN}}"
|
|
137
|
+
# tls:
|
|
138
|
+
# passthrough: true
|
|
33
139
|
|
|
34
140
|
readinessProbe:
|
|
35
141
|
httpGet:
|
|
@@ -37,3 +143,11 @@ readinessProbe:
|
|
|
37
143
|
port: 80
|
|
38
144
|
initialDelaySeconds: 10
|
|
39
145
|
periodSeconds: 5
|
|
146
|
+
|
|
147
|
+
# volumeMounts:
|
|
148
|
+
# - name: data-storage
|
|
149
|
+
# mountPath: /data
|
|
150
|
+
# volumes:
|
|
151
|
+
# - name: data-storage
|
|
152
|
+
# persistentVolumeClaim:
|
|
153
|
+
# claimName: "{{Release.Name}}-<%= chartName %>"
|
package/dist/utils/template.js
CHANGED
|
@@ -47,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.generateTemplate = exports.render = exports.K8S_REGISTRY_HOST = exports.NESTJS_API_PLATFORM = exports.TEMPLATE_NAME = void 0;
|
|
50
|
+
exports.detectPackageManager = exports.generateTemplate = exports.render = exports.K8S_REGISTRY_HOST = exports.NESTJS_API_PLATFORM = exports.TEMPLATE_NAME = void 0;
|
|
51
51
|
var ejs = require("ejs");
|
|
52
52
|
var fs = require("fs");
|
|
53
53
|
var inquirer = require("inquirer");
|
|
@@ -266,7 +266,7 @@ function generateTemplate(templateDir, targetDirectory) {
|
|
|
266
266
|
name: "k8s_chart_kind",
|
|
267
267
|
type: "list",
|
|
268
268
|
message: "what is the chart kind?",
|
|
269
|
-
choices: ["Deployment", "StatefulSet", "CronJob"],
|
|
269
|
+
choices: ["Deployment", "StatefulSet", "CronJob", "Job"],
|
|
270
270
|
default: "Deployment",
|
|
271
271
|
when: function (answers) {
|
|
272
272
|
var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
|
|
@@ -376,27 +376,25 @@ function postProcess(options) {
|
|
|
376
376
|
function isNode(options) {
|
|
377
377
|
return fs.existsSync(path.join(options.templatePath, 'package.json'));
|
|
378
378
|
}
|
|
379
|
-
function
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
/*
|
|
383
|
-
if (shell.which('yarn')) {
|
|
384
|
-
cmd = 'yarn';
|
|
385
|
-
} else if (shell.which('npm')) {
|
|
386
|
-
cmd = 'npm install';
|
|
387
|
-
}
|
|
388
|
-
*/
|
|
389
|
-
if (shell.which('npm')) {
|
|
390
|
-
cmd = 'npm install';
|
|
379
|
+
function detectPackageManager(targetPath) {
|
|
380
|
+
if (fs.existsSync(path.join(targetPath, 'bun.lockb')) || fs.existsSync(path.join(targetPath, 'bun.lock'))) {
|
|
381
|
+
return 'bun install';
|
|
391
382
|
}
|
|
392
|
-
if (
|
|
393
|
-
|
|
394
|
-
if (result.code !== 0) {
|
|
395
|
-
return false;
|
|
396
|
-
}
|
|
383
|
+
if (fs.existsSync(path.join(targetPath, 'pnpm-lock.yaml'))) {
|
|
384
|
+
return 'pnpm install';
|
|
397
385
|
}
|
|
398
|
-
|
|
399
|
-
|
|
386
|
+
if (fs.existsSync(path.join(targetPath, 'yarn.lock'))) {
|
|
387
|
+
return 'yarn install';
|
|
388
|
+
}
|
|
389
|
+
return 'npm install';
|
|
390
|
+
}
|
|
391
|
+
exports.detectPackageManager = detectPackageManager;
|
|
392
|
+
function postProcessNode(options) {
|
|
393
|
+
shell.cd(options.targetPath);
|
|
394
|
+
var cmd = detectPackageManager(options.targetPath);
|
|
395
|
+
var result = shell.exec(cmd);
|
|
396
|
+
if (result.code !== 0) {
|
|
397
|
+
return false;
|
|
400
398
|
}
|
|
401
399
|
return true;
|
|
402
400
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
|
package/nax/config.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"autoMode": {
|
|
4
|
+
"defaultAgent": "claude"
|
|
5
|
+
},
|
|
6
|
+
"quality": {
|
|
7
|
+
"requireTests": false,
|
|
8
|
+
"commands": {}
|
|
9
|
+
},
|
|
10
|
+
"tdd": {
|
|
11
|
+
"strategy": "lite",
|
|
12
|
+
"greenfieldDetection": true
|
|
13
|
+
},
|
|
14
|
+
"review": {
|
|
15
|
+
"enabled": true,
|
|
16
|
+
"checks": ["test"],
|
|
17
|
+
"commands": {}
|
|
18
|
+
},
|
|
19
|
+
"execution": {
|
|
20
|
+
"maxIterations": 6,
|
|
21
|
+
"costLimit": 5.0
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"feature": "enhancements",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"project": "na-cli",
|
|
5
|
+
"branchName": "feat/nax-dogfood-enhancements",
|
|
6
|
+
"description": "Two small enhancements to na-cli: (A) a 'na list' command to discover available templates, and (E) smart package manager detection for 'na generate --install'.",
|
|
7
|
+
"userStories": [
|
|
8
|
+
{
|
|
9
|
+
"id": "US-001",
|
|
10
|
+
"title": "na list command shows all available templates",
|
|
11
|
+
"description": "Add a 'na list' (alias: 'na ls') command that prints all available templates with their names and descriptions, so users don't need to run 'na generate' and pick from an interactive prompt just to discover what exists.\n\nExisting patterns to follow:\n- Look at src/index.ts for how commands are registered with yargs\n- Look at src/utils/template.ts for the TEMPLATE_NAME enum and template definitions\n- List output should be formatted: name (left-padded) + description column\n- Tests go in: test/list.test.ts (create test/ dir if needed)\n- Build: npm run build (compiles TypeScript to dist/)\n- No external dependencies — use only what's already installed",
|
|
12
|
+
"acceptanceCriteria": [
|
|
13
|
+
"AC1: 'na list' prints all template names from the TEMPLATE_NAME enum, one per line",
|
|
14
|
+
"AC2: Each line shows template name and a short description (e.g. 'nestjs-api — NestJS REST API template')",
|
|
15
|
+
"AC3: 'na ls' works as an alias for 'na list'",
|
|
16
|
+
"AC4: Output is sorted alphabetically by template name",
|
|
17
|
+
"AC5: Unit tests cover the list output format and alias"
|
|
18
|
+
],
|
|
19
|
+
"complexity": "simple",
|
|
20
|
+
"status": "passed",
|
|
21
|
+
"contextFiles": [
|
|
22
|
+
"src/index.ts",
|
|
23
|
+
"src/utils/template.ts"
|
|
24
|
+
],
|
|
25
|
+
"attempts": 0,
|
|
26
|
+
"priorErrors": [],
|
|
27
|
+
"escalations": [],
|
|
28
|
+
"dependencies": [],
|
|
29
|
+
"tags": [],
|
|
30
|
+
"storyPoints": 1,
|
|
31
|
+
"passes": true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "US-002",
|
|
35
|
+
"title": "na generate --install detects correct package manager",
|
|
36
|
+
"description": "The 'na generate --install' flag currently hardcodes 'npm install'. It should auto-detect the correct package manager from lockfiles in the generated project directory.\n\nDetection priority (highest to lowest):\n1. bun.lockb or bun.lock → bun install\n2. pnpm-lock.yaml → pnpm install\n3. yarn.lock → yarn install\n4. package-lock.json or none → npm install\n\nExisting patterns to follow:\n- Look at src/utils/template.ts for where 'npm install' is currently called (search for 'install')\n- Detection should happen AFTER template files are written (lockfile may be part of template)\n- Tests go in: test/package-manager.test.ts\n- Build: npm run build",
|
|
37
|
+
"acceptanceCriteria": [
|
|
38
|
+
"AC1: If generated project contains bun.lockb or bun.lock, runs 'bun install'",
|
|
39
|
+
"AC2: If generated project contains pnpm-lock.yaml, runs 'pnpm install'",
|
|
40
|
+
"AC3: If generated project contains yarn.lock, runs 'yarn install'",
|
|
41
|
+
"AC4: Falls back to 'npm install' when no lockfile present",
|
|
42
|
+
"AC5: Lockfile detection checks the target output directory (not cwd)",
|
|
43
|
+
"AC6: Unit tests cover all four detection scenarios"
|
|
44
|
+
],
|
|
45
|
+
"complexity": "simple",
|
|
46
|
+
"status": "passed",
|
|
47
|
+
"contextFiles": [
|
|
48
|
+
"src/utils/template.ts",
|
|
49
|
+
"src/index.ts"
|
|
50
|
+
],
|
|
51
|
+
"attempts": 0,
|
|
52
|
+
"priorErrors": [],
|
|
53
|
+
"escalations": [],
|
|
54
|
+
"dependencies": [],
|
|
55
|
+
"tags": [],
|
|
56
|
+
"storyPoints": 1,
|
|
57
|
+
"passes": true
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"updatedAt": "2026-03-01T09:39:55.209Z"
|
|
61
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nathapp/na-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "npm run build && node dist/index.js",
|
|
7
|
-
"build": "tsc && shx rm -rf dist/templates && shx cp -r templates dist"
|
|
7
|
+
"build": "tsc && shx rm -rf dist/templates && shx cp -r templates dist",
|
|
8
|
+
"test": "npm run build && bun test test/"
|
|
8
9
|
},
|
|
9
10
|
"bin": {
|
|
10
11
|
"na-cli": "./dist/index.js",
|