Skip to content

Commit aa84910

Browse files
authored
Merge pull request #153 from microservices-suite/repo-engineering/deletion_automation
Repo engineering/deletion automation
2 parents cb5e0e9 + dbc9e9f commit aa84910

26 files changed

+381
-331
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,4 @@ web_modules/
159159
.pnp.*
160160

161161
# ignore data volume
162-
gateways/apps/*/data
162+
docker/apps/*/data

.suite-cli/cli/scripts/assets/fileStructureContent.asset.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module.exports = ({ answers }) => (
1111
`tests/${answers.service_name}/snapshot`,
1212
`microservices`,
1313
`k8s/${answers.service_name}`,
14-
`gateways/apps`,
14+
`docker/apps`,
1515
...(answers.apis.map((api) => `${api}/app1`)),
1616
]
1717
)

.suite-cli/cli/scripts/assets/k8sComboContent.asset.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ spec:
151151
const generateIngress = ({ app, project_base, services }) => {
152152
const content = services.map(({ service, port }) => `
153153
- pathType: Prefix
154-
path: "/${service}/*"
154+
path: "/"
155155
backend:
156156
service:
157157
name: ${service}

.suite-cli/cli/scripts/scripts.module.js

Lines changed: 30 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ const getComponentDirecotories = async ({ components, component_type }) => {
582582

583583
const { workspace_name } = retrieveWorkSpaceName({ package_json_path })
584584

585-
const component_root_dir = join(project_root, `${component_type === 'app' ? `gateways/apps` : 'microservices'}`)
585+
const component_root_dir = join(project_root, `${component_type === 'app' ? `docker/apps` : 'microservices'}`)
586586

587587
// Simulate delay before checking if the component directory exists
588588
await delay(1);
@@ -1469,7 +1469,7 @@ const generateK8sBroker = ({ broker_directory }) => {
14691469
})
14701470
)
14711471
}
1472-
const generateK8sApp = ({ answers, k8s_directory, projectName, services = [] }) => {
1472+
const generateK8sApp = ({ namespace, app_name, k8s_directory, projectName, services = [] }) => {
14731473
const app_directory = k8s_directory
14741474
// Remove the directory if it already exists
14751475
if (existsSync(app_directory)) {
@@ -1518,8 +1518,8 @@ const generateK8sApp = ({ answers, k8s_directory, projectName, services = [] })
15181518
port: s.port,
15191519
project_base: projectName,
15201520
env: 'prod',
1521-
namespace: answers?.namespace || 'default',
1522-
app: answers.app_name
1521+
namespace: namespace || 'default',
1522+
app: app_name
15231523
})
15241524
)
15251525
writeFileSync(join(service_dir, 'secret.yaml'), assets.k8sSecretContent({
@@ -1530,35 +1530,42 @@ const generateK8sApp = ({ answers, k8s_directory, projectName, services = [] })
15301530
})
15311531
writeFileSync(join(app_directory, 'combo.yaml'), assets.k8sComboContent({
15321532
project_base: projectName,
1533-
app: answers.app_name,
1533+
app: app_name,
15341534
services: services.map((s) => ({ service: s.name, port: s.port, image: `${projectName}/${s.name}:latest` }))
15351535
})
15361536
)
15371537
}
15381538
const scaffoldApp = ({ answers }) => {
15391539
const { webserver, projectName, services } = readFileContent({ currentDir: cwd() });
15401540
const project_root = generateRootPath({ currentDir: cwd() });
1541-
const app_directory = join(project_root, 'gateways/apps', answers.app_name);
1541+
const app_directory = join(project_root, 'docker/apps', answers.app_name);
15421542
const k8s_directory = join(project_root, `k8s/ns/${answers?.namespace || 'default'}`, answers.app_name);
15431543

15441544
const webserver_dir = join(app_directory, webserver);
15451545
const krakend_dir = join(app_directory, 'krakend');
15461546
const data_dir = join(app_directory, 'data');
1547-
if (!existsSync(k8s_directory)) {
1548-
const ingress_directory = join(project_root, `k8s/ingress`);
1549-
const broker_directory = join(project_root, `k8s/broker`);
1550-
mkdirSync(ingress_directory, { recursive: true });
1551-
mkdirSync(broker_directory, { recursive: true });
1552-
1553-
generateK8sBroker({ broker_directory, projectName });
1554-
writeFileSync(join(ingress_directory, 'ingress.yaml'), assets.k8sIngressContent({
1555-
project_base: projectName,
1556-
app: answers.app_name,
1557-
services
1558-
}));
1547+
if (existsSync(k8s_directory)) {
1548+
rmSync(k8s_directory, { recursive: true });
15591549

15601550
}
1561-
generateK8sApp({ answers, k8s_directory, projectName, services })
1551+
const ingress_directory = join(project_root, `k8s/ingress`);
1552+
const broker_directory = join(project_root, `k8s/broker`);
1553+
mkdirSync(ingress_directory, { recursive: true });
1554+
mkdirSync(broker_directory, { recursive: true });
1555+
1556+
generateK8sBroker({ broker_directory, projectName });
1557+
writeFileSync(join(ingress_directory, 'ingress.yaml'), assets.k8sIngressContent({
1558+
project_base: projectName,
1559+
app: answers.app_name,
1560+
services
1561+
}));
1562+
generateK8sApp({
1563+
app_name: answers?.app_name,
1564+
namespace: answers?.namespace,
1565+
k8s_directory,
1566+
projectName,
1567+
services: answers.services
1568+
})
15621569
// Remove the directory if it already exists
15631570
if (existsSync(app_directory)) {
15641571
rmSync(app_directory, { recursive: true });
@@ -1784,7 +1791,7 @@ const scaffoldGateways = async ({ answers }) => {
17841791
}
17851792

17861793
const scaffoldGateway = ({ project_root, app, answers, webserver, projectName }) => {
1787-
const app_directory = join(project_root, 'gateways/apps', app.name);
1794+
const app_directory = join(project_root, 'docker/apps', app.name);
17881795
const webserver_dir = join(app_directory, webserver);
17891796
const krakend_dir = join(app_directory, 'krakend');
17901797
const services = app.services;
@@ -1829,86 +1836,6 @@ const scaffoldGateway = ({ project_root, app, answers, webserver, projectName })
18291836

18301837
}
18311838

1832-
// /**
1833-
// * Removes a microservice and all associated files.
1834-
// * @param {Object} options - Options for removing the microservice.
1835-
// * @param {string} options.project_root - The root directory of the project.
1836-
// * @param {string} options.service_name - The name of the microservice to be removed.
1837-
// */
1838-
// const removeResource = async ({ answers }) => {
1839-
// const { resource, resource_name, options } = answers;
1840-
// let project_root;
1841-
1842-
// try {
1843-
// project_root = generateRootPath({ currentDir: cwd() });
1844-
// } catch (error) {
1845-
// // Not within a suite repo
1846-
// if (error.message && error.message === 'suite.json and(or) .git not found') {
1847-
// ora('This does not look like a suite repo').warn()
1848-
// ora().info('If it is run <suite init> from project root to reinitialize suite project and try again')
1849-
// exit(1)
1850-
// }
1851-
// else {
1852-
// // rethrow the error
1853-
// throw new Error('Error code 10005.Kindly raise an issue at https://github.com/microservices-suite/node-microservices-suite/issues')
1854-
// }
1855-
// }
1856-
// const spinner = ora();
1857-
// if (options.all) {
1858-
// // Logic to remove all resources of the given type
1859-
1860-
// const resourceEnum = {
1861-
// library: ['shared'],
1862-
// app: ['gateways', 'apps'],
1863-
// service: ['microservices'],
1864-
// gateway: ['gateways', 'apps'],
1865-
// k8s: ['k8s']
1866-
// }
1867-
// if (!resourceEnum[resource]) return ora().warn(`Unkown resource name ${resource}`)
1868-
// const allResourceChildrenPath = path.join(project_root, ...(resourceEnum[resource]));
1869-
// if (!fs.existsSync(allResourceChildrenPath)) {
1870-
// spinner.warn(`No ${resource}(s) found.`);
1871-
// return;
1872-
// }
1873-
1874-
// // Remove all resources
1875-
// const services = fs.readdirSync(allResourceChildrenPath);
1876-
// if (services.length === 0) {
1877-
// spinner.warn(`No ${resource}(s) found.`);
1878-
// return;
1879-
// }
1880-
1881-
// // Synchronous removal of all services
1882-
// services.forEach(service => {
1883-
// const fullPath = path.join(allResourceChildrenPath, service);
1884-
// fs.rmSync(fullPath, { recursive: true, force: true });
1885-
// });
1886-
// spinner.succeed(`All ${resource}(s) have been removed.`);
1887-
1888-
// return;
1889-
// }
1890-
1891-
// // Call the appropriate action handler based on the resource type
1892-
// switch (resource) {
1893-
// case 'service':
1894-
// await removeService({ service_name: resource_name, project_root, sync: true });
1895-
// break;
1896-
// case 'app':
1897-
// await removeApp({ app_name: resource_name, project_root, sync: true });
1898-
// break;
1899-
// case 'library':
1900-
// await removeLibrary({ library_name: resource_name, project_root });
1901-
// break;
1902-
// case 'gateway':
1903-
// await removeGateway({ gateway_name: resource_name, project_root });
1904-
// break;
1905-
// default:
1906-
// throw new Error(`Unknown resource type: ${resource}`);
1907-
// }
1908-
// updateSuiteJson(project_root, resource, resource_name);
1909-
1910-
// };
1911-
19121839
const removeResource = async ({ answers }) => {
19131840
const { resource, resource_name, options } = answers;
19141841
let project_root;
@@ -1928,9 +1855,9 @@ const removeResource = async ({ answers }) => {
19281855
const spinner = ora();
19291856
const resourceEnum = {
19301857
library: ['shared'],
1931-
app: ['gateways', 'apps'],
1858+
app: ['docker', 'apps'],
19321859
service: ['microservices'],
1933-
gateway: ['gateways', 'apps'],
1860+
gateway: ['docker', 'apps'],
19341861
k8s: ['k8s']
19351862
};
19361863

@@ -2073,7 +2000,7 @@ const removeService = async ({ service_name, project_root }) => {
20732000
* @param {string} options.project_root - The root directory of the project.
20742001
*/
20752002
const removeApp = async ({ app_name, project_root }) => {
2076-
const appDockerPath = path.join(project_root, 'gateways', 'apps', app_name);
2003+
const appDockerPath = path.join(project_root, 'docker', 'apps', app_name);
20772004

20782005
// Use glob to locate Kubernetes namespace directories with `app_name`
20792006
const kubeNamespacePaths = glob.sync(path.join(project_root, 'k8s', 'ns', '*', app_name));

0 commit comments

Comments
 (0)