k8s-deploy-helper 1.4.0 → 1.5.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k8s-deploy-helper",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "CLI tool to build, push and deploy applications to Kubernetes",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,42 +1,39 @@
1
1
  import fs from 'fs';
2
2
 
3
- export function generateDockerfiles() {
4
- const hasServer = fs.existsSync('server');
5
- const hasClient = fs.existsSync('client');
6
-
3
+ export function generateDockerfiles({ frontendDir, backendDir }) {
7
4
  // Backend Dockerfile
8
- if (hasServer && !fs.existsSync('Dockerfile.backend')) {
5
+ if (backendDir && !fs.existsSync('Dockerfile.backend')) {
9
6
  const backendDockerfile = `
10
7
  FROM node:18-alpine
11
8
 
12
9
  WORKDIR /app
13
10
 
14
- COPY server/package*.json ./
11
+ COPY ${backendDir}/package*.json ./
15
12
  RUN npm install
16
13
 
17
- COPY server .
14
+ COPY ${backendDir} .
18
15
 
19
16
  EXPOSE 5000
20
17
  CMD ["npm", "start"]
21
18
  `.trim();
22
19
 
23
20
  fs.writeFileSync('Dockerfile.backend', backendDockerfile);
24
- console.log('✅ Backend Dockerfile created (Dockerfile.backend)');
25
- } else if (hasServer) {
21
+ console.log(`✅ Backend Dockerfile created (Dockerfile.backend) using /${backendDir}`);
22
+ } else if (backendDir) {
26
23
  console.log('ℹ️ Backend Dockerfile already exists. Skipping.');
27
24
  }
28
25
 
29
26
  // Frontend Dockerfile
30
- if (hasClient && !fs.existsSync('Dockerfile.frontend')) {
27
+ if (frontendDir && !fs.existsSync('Dockerfile.frontend')) {
31
28
  const frontendDockerfile = `
32
29
  FROM node:18-alpine AS build
33
30
 
34
31
  WORKDIR /app
35
32
 
36
- COPY client/package*.json ./
33
+ COPY ${frontendDir}/package*.json ./
37
34
  RUN npm install
38
35
 
39
- COPY client .
36
+ COPY ${frontendDir} .
40
37
  RUN npm run build
41
38
 
42
39
  FROM nginx:alpine
@@ -47,13 +44,13 @@ CMD ["nginx", "-g", "daemon off;"]
47
44
  `.trim();
48
45
 
49
46
  fs.writeFileSync('Dockerfile.frontend', frontendDockerfile);
50
- console.log('✅ Frontend Dockerfile created (Dockerfile.frontend)');
51
- } else if (hasClient) {
47
+ console.log(`✅ Frontend Dockerfile created (Dockerfile.frontend) using /${frontendDir}`);
48
+ } else if (frontendDir) {
52
49
  console.log('ℹ️ Frontend Dockerfile already exists. Skipping.');
53
50
  }
54
51
  }
55
52
 
56
- export function generateK8sConfig() {
53
+ export function generateK8sConfig({ backendDir }) {
57
54
  if (fs.existsSync('k8s.config.json')) {
58
55
  console.log('ℹ️ k8s.config.json already exists. Skipping.');
59
56
  return;
@@ -4,18 +4,31 @@ import { generateDockerfiles, generateK8sConfig } from './generateFiles.js';
4
4
  export function initProject() {
5
5
  console.log('\n🔧 Initializing project for Kubernetes deployment...\n');
6
6
 
7
- const hasClient = fs.existsSync('client');
8
- const hasServer = fs.existsSync('server');
7
+ const frontendDir = detectFrontendDir();
8
+ const backendDir = detectBackendDir();
9
9
 
10
- if (!hasClient && !hasServer) {
11
- console.error('❌ No client/ or server/ directory found.');
10
+ if (!frontendDir && !backendDir) {
11
+ console.error('❌ No frontend or backend directory detected.');
12
+ console.error('👉 Supported names: frontend, client, backend, server');
12
13
  console.error('👉 Run this command from the project root.');
13
14
  process.exit(1);
14
15
  }
15
16
 
16
- generateDockerfiles();
17
- generateK8sConfig();
17
+ generateDockerfiles({ frontendDir, backendDir });
18
+ generateK8sConfig({ backendDir });
18
19
 
19
20
  console.log('\n✅ Initialization completed successfully.');
20
- console.log('👉 Review generated files before running deployment.\n');
21
+ console.log('👉 Review generated files before deploying.\n');
22
+ }
23
+
24
+ function detectFrontendDir() {
25
+ if (fs.existsSync('frontend')) return 'frontend';
26
+ if (fs.existsSync('client')) return 'client';
27
+ return null;
28
+ }
29
+
30
+ function detectBackendDir() {
31
+ if (fs.existsSync('backend')) return 'backend';
32
+ if (fs.existsSync('server')) return 'server';
33
+ return null;
21
34
  }