+
diff --git a/web/src/router.tsx b/web/src/router.tsx
index 114e4361..99e0c086 100644
--- a/web/src/router.tsx
+++ b/web/src/router.tsx
@@ -10,6 +10,8 @@ import EC2 from "./features/terraform/components/EC2";
import S3 from "./features/terraform/components/S3";
import IAM from "./features/terraform/components/IAM";
import Argocd from "./features/terraform/components/Argocd";
+import Helm from "./features/helm";
+import Install from "./features/install";
export const router = createBrowserRouter([
{
path: "/",
@@ -18,6 +20,8 @@ export const router = createBrowserRouter([
children: [
{ index: true, element: },
{ path: routes.bugFix, element: },
+ { path: routes.helm, element: },
+ { path: routes.install, element: },
{
path: routes.terraformTemplate,
element: ,
diff --git a/web/src/utils/formValidator.tsx b/web/src/utils/formValidator.tsx
index fca66fa7..c1722806 100644
--- a/web/src/utils/formValidator.tsx
+++ b/web/src/utils/formValidator.tsx
@@ -1,5 +1,9 @@
import { RegisterOptions } from "react-hook-form";
-import { BasicGenFields, BugFixFields } from "../features/constants";
+import {
+ BasicGenFields,
+ BugFixFields,
+ InstallFields,
+} from "../features/constants";
export const validateForm = (fieldName: string) => {
let validationRules: RegisterOptions = {};
@@ -30,6 +34,8 @@ export const validateForm = (fieldName: string) => {
break;
case BugFixFields.VERSION:
case BugFixFields.BUG_DESCRIPTION:
+ case InstallFields.OS:
+ case InstallFields.SERVICE:
case BasicGenFields.INPUT:
validationRules = {
required: {
@@ -38,6 +44,13 @@ export const validateForm = (fieldName: string) => {
},
};
break;
+ default:
+ validationRules = {
+ required: {
+ value: true,
+ message: "Input can not be empty",
+ },
+ };
}
return validationRules;
};
diff --git a/web/src/utils/mapperFunctions.ts b/web/src/utils/mapperFunctions.ts
index a43033db..691456ec 100644
--- a/web/src/utils/mapperFunctions.ts
+++ b/web/src/utils/mapperFunctions.ts
@@ -13,6 +13,9 @@ import {
ApiRequestTerraformIam,
ApiRequestTerraformArgocd,
TerraformArgocdFormData,
+ HelmFormData,
+ ApiRequestHelm,
+ Environment,
} from "../features/models";
export const basicGenMapper = (data: BasicGenFormData): ApiRequestBasicGen => ({
@@ -79,3 +82,29 @@ export const terraformArgocdMapper = (
argocd_cluster: data.argocdCluster,
argocd_repository: data.argocdRepository,
});
+
+export const helmMapper = (
+ data: HelmFormData,
+ environments: Environment[]
+): ApiRequestHelm => ({
+ api_version: Number(data.apiVersion),
+ pods: data.pods.map((item) => ({
+ environment: environments.map((env) => ({
+ name: env.environmentName,
+ value: env.value,
+ })),
+ image: item.image,
+ ingress: {
+ enabled: item.enabled,
+ host: item.host,
+ },
+ name: item.name,
+ persistance: {
+ accessModes: item.accessModes,
+ size: item.size,
+ },
+ replicas: item.replicas,
+ stateless: item.stateless,
+ target_port: item.targetPort,
+ })),
+});
diff --git a/web/src/utils/nameGenerator.ts b/web/src/utils/nameGenerator.ts
index 11405a18..51546e4a 100644
--- a/web/src/utils/nameGenerator.ts
+++ b/web/src/utils/nameGenerator.ts
@@ -18,6 +18,8 @@ export const nameGenerator = (endpoint: Endpoints | "") => {
case Endpoints.POST_IAC_ARGOCD:
name = "ARGOCD";
break;
+ case Endpoints.POST_IAC_HELM:
+ name = "zip";
}
return name;
};
diff --git a/web/src/utils/routing.ts b/web/src/utils/routing.ts
index 5f7c9c24..2e08b1cf 100644
--- a/web/src/utils/routing.ts
+++ b/web/src/utils/routing.ts
@@ -1,17 +1,17 @@
-import { Endpoints } from "../features/constants";
-
export const routes = {
basicGen: "/",
bugFix: "/IaC-bugfix",
terraformTemplate: "/terraform-template",
+ helm: "/helm",
+ install: "/install",
};
export const btnMappings = [
{ label: "Basic", route: routes.basicGen },
{ label: "Bug fix", route: routes.bugFix },
{ label: "Terraform template", route: routes.terraformTemplate },
- { label: "Installation", route: Endpoints.POST_INSTALL },
- { label: "Helm Template", route: Endpoints.POST_IAC_HELM },
+ { label: "Helm Template", route: routes.helm },
+ { label: "Installation", route: routes.install },
];
export const terraformRoutes = {
diff --git a/web/tailwind.config.js b/web/tailwind.config.js
index f8cd1e3a..fc74c1be 100644
--- a/web/tailwind.config.js
+++ b/web/tailwind.config.js
@@ -4,7 +4,11 @@ import daisyui from "daisyui";
export default {
content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
theme: {
- extend: {},
+ extend: {
+ boxShadow: {
+ "3xl": "0 35px 60px -15px rgba(0, 0, 0, 0.4)",
+ },
+ },
},
plugins: [daisyui],
};
diff --git a/web/vite.config.ts b/web/vite.config.ts
index f3a302cc..17f2a9c0 100644
--- a/web/vite.config.ts
+++ b/web/vite.config.ts
@@ -3,13 +3,12 @@ import react from "@vitejs/plugin-react";
import tsconfigPaths from "vite-tsconfig-paths";
export default defineConfig(({ mode }) => {
- // Load environment variables based on the current mode
const env = loadEnv(mode, process.cwd(), "");
return {
plugins: [react(), tsconfigPaths()],
server: {
- port: Number(env.VITE_PORT) || 5173, // Use VITE_PORT from .env file or fallback
+ port: Number(env.VITE_PORT) || 5173, // Use VITE_PORT from .env to customize port options
},
};
});