Repository: spaship/spaship
Pull request #1670 (2022-04-26 03:42:22)

Code refactoring
resolved indentation inconsistency, removed unwanted dependencies, code cleanup, added labels in template for better grouping and identification


Patch:
diff --git a/packages/operator/.mvn/wrapper/MavenWrapperDownloader.java b/packages/operator/.mvn/wrapper/MavenWrapperDownloader.java
index a45eb6ba..068c4d62 100644
--- a/packages/operator/.mvn/wrapper/MavenWrapperDownloader.java
+++ b/packages/operator/.mvn/wrapper/MavenWrapperDownloader.java
@@ -21,98 +21,98 @@ import java.util.Properties;
 
 public class MavenWrapperDownloader {
 
-    private static final String WRAPPER_VERSION = "0.5.6";
-    /**
-     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
-     */
-    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
-            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+  private static final String WRAPPER_VERSION = "0.5.6";
+  /**
+   * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+   */
+  private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+    + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
 
-    /**
-     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
-     * use instead of the default one.
-     */
-    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
-            ".mvn/wrapper/maven-wrapper.properties";
+  /**
+   * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+   * use instead of the default one.
+   */
+  private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+    ".mvn/wrapper/maven-wrapper.properties";
 
-    /**
-     * Path where the maven-wrapper.jar will be saved to.
-     */
-    private static final String MAVEN_WRAPPER_JAR_PATH =
-            ".mvn/wrapper/maven-wrapper.jar";
+  /**
+   * Path where the maven-wrapper.jar will be saved to.
+   */
+  private static final String MAVEN_WRAPPER_JAR_PATH =
+    ".mvn/wrapper/maven-wrapper.jar";
 
-    /**
-     * Name of the property which should be used to override the default download url for the wrapper.
-     */
-    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+  /**
+   * Name of the property which should be used to override the default download url for the wrapper.
+   */
+  private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
 
-    public static void main(String args[]) {
-        System.out.println("- Downloader started");
-        File baseDirectory = new File(args[0]);
-        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+  public static void main(String args[]) {
+    System.out.println("- Downloader started");
+    File baseDirectory = new File(args[0]);
+    System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
 
-        // If the maven-wrapper.properties exists, read it and check if it contains a custom
-        // wrapperUrl parameter.
-        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
-        String url = DEFAULT_DOWNLOAD_URL;
-        if (mavenWrapperPropertyFile.exists()) {
-            FileInputStream mavenWrapperPropertyFileInputStream = null;
-            try {
-                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
-                Properties mavenWrapperProperties = new Properties();
-                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
-                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
-            } catch (IOException e) {
-                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
-            } finally {
-                try {
-                    if (mavenWrapperPropertyFileInputStream != null) {
-                        mavenWrapperPropertyFileInputStream.close();
-                    }
-                } catch (IOException e) {
-                    // Ignore ...
-                }
-            }
-        }
-        System.out.println("- Downloading from: " + url);
-
-        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
-        if (!outputFile.getParentFile().exists()) {
-            if (!outputFile.getParentFile().mkdirs()) {
-                System.out.println(
-                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
-            }
-        }
-        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+    // If the maven-wrapper.properties exists, read it and check if it contains a custom
+    // wrapperUrl parameter.
+    File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+    String url = DEFAULT_DOWNLOAD_URL;
+    if (mavenWrapperPropertyFile.exists()) {
+      FileInputStream mavenWrapperPropertyFileInputStream = null;
+      try {
+        mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+        Properties mavenWrapperProperties = new Properties();
+        mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+        url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+      } catch (IOException e) {
+        System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+      } finally {
         try {
-            downloadFileFromURL(url, outputFile);
-            System.out.println("Done");
-            System.exit(0);
-        } catch (Throwable e) {
-            System.out.println("- Error downloading");
-            e.printStackTrace();
-            System.exit(1);
+          if (mavenWrapperPropertyFileInputStream != null) {
+            mavenWrapperPropertyFileInputStream.close();
+          }
+        } catch (IOException e) {
+          // Ignore ...
         }
+      }
+    }
+    System.out.println("- Downloading from: " + url);
+
+    File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+    if (!outputFile.getParentFile().exists()) {
+      if (!outputFile.getParentFile().mkdirs()) {
+        System.out.println(
+          "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+      }
+    }
+    System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+    try {
+      downloadFileFromURL(url, outputFile);
+      System.out.println("Done");
+      System.exit(0);
+    } catch (Throwable e) {
+      System.out.println("- Error downloading");
+      e.printStackTrace();
+      System.exit(1);
     }
+  }
 
-    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
-        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
-            String username = System.getenv("MVNW_USERNAME");
-            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
-            Authenticator.setDefault(new Authenticator() {
-                @Override
-                protected PasswordAuthentication getPasswordAuthentication() {
-                    return new PasswordAuthentication(username, password);
-                }
-            });
+  private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+    if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+      String username = System.getenv("MVNW_USERNAME");
+      char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+      Authenticator.setDefault(new Authenticator() {
+        @Override
+        protected PasswordAuthentication getPasswordAuthentication() {
+          return new PasswordAuthentication(username, password);
         }
-        URL website = new URL(urlString);
-        ReadableByteChannel rbc;
-        rbc = Channels.newChannel(website.openStream());
-        FileOutputStream fos = new FileOutputStream(destination);
-        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
-        fos.close();
-        rbc.close();
+      });
     }
+    URL website = new URL(urlString);
+    ReadableByteChannel rbc;
+    rbc = Channels.newChannel(website.openStream());
+    FileOutputStream fos = new FileOutputStream(destination);
+    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+    fos.close();
+    rbc.close();
+  }
 
 }
diff --git a/packages/operator/README.md b/packages/operator/README.md
index ac349d34..5e69cd6a 100644
--- a/packages/operator/README.md
+++ b/packages/operator/README.md
@@ -1,10 +1,31 @@
 # spa-deployment-operator
 
-This application creates new environment and deploy spas into them, maintain and manage those environments' lifecycle.
+This
+application
+creates
+new
+environment
+and
+deploy
+spas
+into
+them,
+maintain
+and
+manage
+those
+environments'
+lifecycle.
 
 ## Documentation
 
-For more details on operator follow the [SPAship architecture document](https://spaship.io#operator)
+For
+more
+details
+on
+operator
+follow
+the [SPAship architecture document](https://spaship.io#operator)
 
 ## Configurable Properties
 
@@ -16,7 +37,19 @@ For more details on operator follow the [SPAship architecture document](https://
 
 ## Running the application in dev mode
 
-You can run this application in dev mode that enables live coding using:
+You
+can
+run
+this
+application
+in
+dev
+mode
+that
+enables
+live
+coding
+using:
 
 ```shell script
 ./mvnw compile quarkus:dev
@@ -24,29 +57,84 @@ You can run this application in dev mode that enables live coding using:
 
 ## Packaging and running the application
 
-The application can be packaged using:
+The
+application
+can
+be
+packaged
+using:
 
 ```shell script
 ./mvnw package
 ```
 
-It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory. Be aware that it’s not an _über-jar_ as
-the dependencies are copied into the `target/quarkus-app/lib/` directory.
-
-If you want to build an _über-jar_, execute the following command:
+It
+produces
+the `quarkus-run.jar`
+file
+in
+the `target/quarkus-app/`
+directory.
+Be
+aware
+that
+it’s
+not
+an _
+über-jar_
+as
+the
+dependencies
+are
+copied
+into
+the `target/quarkus-app/lib/`
+directory.
+
+If
+you
+want
+to
+build
+an _
+über-jar_
+,
+execute
+the
+following
+command:
 
 ```shell script
 ./mvnw package -Dquarkus.package.type=uber-jar
 ```
 
-The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.
+The
+application
+is
+now
+runnable
+using `java -jar target/quarkus-app/quarkus-run.jar`
+.
 
 ## Installation using Helm chart in a k8s cluster
 
-Navigate to the spa-deployment-operator directory by executing this command
+Navigate
+to
+the
+spa-deployment-operator
+directory
+by
+executing
+this
+command
 `cd spa-deployment-operator`
 
-and then apply the following command
+and
+then
+apply
+the
+following
+command
 
 ```
 helm install \
@@ -55,4 +143,4 @@ helm install \
 --set app.domain=<name of the cluster domain> \
 --set ingress.host=<name of the cluster domain> \
 operator .
-```
\ No newline at end of file
+```
diff --git a/packages/operator/pom.xml b/packages/operator/pom.xml
index 5eafe657..111a9aa7 100644
--- a/packages/operator/pom.xml
+++ b/packages/operator/pom.xml
@@ -2,196 +2,196 @@
 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
          xmlns="http://maven.apache.org/POM/4.0.0">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>io.spaship</groupId>
-    <artifactId>spa-deployment-operator</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <properties>
-        <compiler-plugin.version>3.9.0</compiler-plugin.version>
-        <maven.compiler.parameters>true</maven.compiler.parameters>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
-        <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
-        <quarkus.platform.version>2.1.1.Final</quarkus.platform.version>
-        <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>${quarkus.platform.group-id}</groupId>
-                <artifactId>${quarkus.platform.artifact-id}</artifactId>
-                <version>${quarkus.platform.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>io.spaship</groupId>
+  <artifactId>spa-deployment-operator</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <properties>
+    <compiler-plugin.version>3.9.0</compiler-plugin.version>
+    <maven.compiler.parameters>true</maven.compiler.parameters>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
+    <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
+    <quarkus.platform.version>2.1.1.Final</quarkus.platform.version>
+    <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
+  </properties>
+  <dependencyManagement>
     <dependencies>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-vertx</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-openshift-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-reactive-messaging</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-openapi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-vertx-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-kubernetes-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-oidc</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-cache</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-arc</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
-        </dependency>
+      <dependency>
+        <groupId>${quarkus.platform.group-id}</groupId>
+        <artifactId>${quarkus.platform.artifact-id}</artifactId>
+        <version>${quarkus.platform.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-vertx</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-openshift-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-smallrye-reactive-messaging</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-smallrye-openapi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-vertx-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-kubernetes-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-oidc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-cache</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-arc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
+    </dependency>
 
 
-        <dependency>
-            <groupId>io.smallrye.reactive</groupId>
-            <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>io.smallrye.reactive</groupId>
+      <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
+    </dependency>
 
 
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.11.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>1.18.20</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.javatuples</groupId>
-            <artifactId>javatuples</artifactId>
-            <version>1.2</version>
-        </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.11.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.projectlombok</groupId>
+      <artifactId>lombok</artifactId>
+      <version>1.18.20</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.javatuples</groupId>
+      <artifactId>javatuples</artifactId>
+      <version>1.2</version>
+    </dependency>
 
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.rest-assured</groupId>
-            <artifactId>rest-assured</artifactId>
-            <scope>test</scope>
-        </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-junit5</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.rest-assured</groupId>
+      <artifactId>rest-assured</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-    </dependencies>
-    <build>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>${quarkus.platform.group-id}</groupId>
+        <artifactId>quarkus-maven-plugin</artifactId>
+        <version>${quarkus.platform.version}</version>
+        <extensions>true</extensions>
+        <executions>
+          <execution>
+            <goals>
+              <goal>build</goal>
+              <goal>generate-code</goal>
+              <goal>generate-code-tests</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${compiler-plugin.version}</version>
+        <configuration>
+          <parameters>${maven.compiler.parameters}</parameters>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire-plugin.version}</version>
+        <configuration>
+          <systemPropertyVariables>
+            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+            <maven.home>${maven.home}</maven.home>
+          </systemPropertyVariables>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>11</source>
+          <target>11</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>native</id>
+      <activation>
+        <property>
+          <name>native</name>
+        </property>
+      </activation>
+      <build>
         <plugins>
-            <plugin>
-                <groupId>${quarkus.platform.group-id}</groupId>
-                <artifactId>quarkus-maven-plugin</artifactId>
-                <version>${quarkus.platform.version}</version>
-                <extensions>true</extensions>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>build</goal>
-                            <goal>generate-code</goal>
-                            <goal>generate-code-tests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${compiler-plugin.version}</version>
-                <configuration>
-                    <parameters>${maven.compiler.parameters}</parameters>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>${surefire-plugin.version}</version>
-                <configuration>
-                    <systemPropertyVariables>
-                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
-                        <maven.home>${maven.home}</maven.home>
-                    </systemPropertyVariables>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
+          <plugin>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <version>${surefire-plugin.version}</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
                 <configuration>
-                    <source>11</source>
-                    <target>11</target>
+                  <systemPropertyVariables>
+                    <native.image.path>
+                      ${project.build.directory}/${project.build.finalName}-runner
+                    </native.image.path>
+                    <java.util.logging.manager>org.jboss.logmanager.LogManager
+                    </java.util.logging.manager>
+                    <maven.home>${maven.home}</maven.home>
+                  </systemPropertyVariables>
                 </configuration>
-            </plugin>
+              </execution>
+            </executions>
+          </plugin>
         </plugins>
-    </build>
-    <profiles>
-        <profile>
-            <id>native</id>
-            <activation>
-                <property>
-                    <name>native</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <version>${surefire-plugin.version}</version>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                    <goal>verify</goal>
-                                </goals>
-                                <configuration>
-                                    <systemPropertyVariables>
-                                        <native.image.path>
-                                            ${project.build.directory}/${project.build.finalName}-runner
-                                        </native.image.path>
-                                        <java.util.logging.manager>org.jboss.logmanager.LogManager
-                                        </java.util.logging.manager>
-                                        <maven.home>${maven.home}</maven.home>
-                                    </systemPropertyVariables>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-            <properties>
-                <quarkus.package.type>native</quarkus.package.type>
-            </properties>
-        </profile>
-    </profiles>
+      </build>
+      <properties>
+        <quarkus.package.type>native</quarkus.package.type>
+      </properties>
+    </profile>
+  </profiles>
 </project>
diff --git a/packages/operator/spa-deployment-operator/templates/serviceaccount.yaml b/packages/operator/spa-deployment-operator/templates/serviceaccount.yaml
index 8d764d7e..611e72ea 100644
--- a/packages/operator/spa-deployment-operator/templates/serviceaccount.yaml
+++ b/packages/operator/spa-deployment-operator/templates/serviceaccount.yaml
@@ -32,7 +32,7 @@ rules:
   # When APP_OPERATOR_ROUTER_MODE=ingress this permission needs to be enabled
   - apiGroups: [ "networking.k8s.io","extensions" ]
     resources: [ "ingresses" ]
-    verbs: [ "create", "update", "get", "watch", "list", "delete","patch"  ]
+    verbs: [ "create", "update", "get", "watch", "list", "delete","patch" ]
   - apiGroups: [ "" ]
     resources: [ "configmaps", "services", "pods" ]
     verbs: [ "create", "update", "get", "watch", "list", "delete" ]
diff --git a/packages/operator/src/main/java/io/spaship/operator/GreetingResource.java b/packages/operator/src/main/java/io/spaship/operator/GreetingResource.java
index 58240e83..a03330b1 100644
--- a/packages/operator/src/main/java/io/spaship/operator/GreetingResource.java
+++ b/packages/operator/src/main/java/io/spaship/operator/GreetingResource.java
@@ -9,9 +9,9 @@ import javax.ws.rs.core.MediaType;
 @Path("/hello")
 public class GreetingResource {
 
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String hello() {
-        return "Hello RESTEasy";
-    }
-}
\ No newline at end of file
+  @GET
+  @Produces(MediaType.TEXT_PLAIN)
+  public String hello() {
+    return "Hello RESTEasy";
+  }
+}
diff --git a/packages/operator/src/main/java/io/spaship/operator/api/EnvironmentController.java b/packages/operator/src/main/java/io/spaship/operator/api/EnvironmentController.java
index 98630f7b..b1dda95f 100644
--- a/packages/operator/src/main/java/io/spaship/operator/api/EnvironmentController.java
+++ b/packages/operator/src/main/java/io/spaship/operator/api/EnvironmentController.java
@@ -6,7 +6,6 @@ import io.spaship.operator.service.k8s.Operator;
 import io.spaship.operator.service.k8s.SideCarOperations;
 import io.spaship.operator.type.Environment;
 import io.spaship.operator.type.OperationResponse;
-import io.spaship.operator.type.SyncRequest;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
@@ -16,54 +15,54 @@ import java.util.Objects;
 public class EnvironmentController {
 
 
-    private final Operator k8sOperator;
-    private final SideCarOperations sidecarOps;
+  private final Operator k8sOperator;
+  private final SideCarOperations sidecarOps;
 
-    public EnvironmentController(Operator k8sOperator, SideCarOperations sidecarOps) {
-        this.k8sOperator = k8sOperator;
-      this.sidecarOps = sidecarOps;
-    }
+  public EnvironmentController(Operator k8sOperator, SideCarOperations sidecarOps) {
+    this.k8sOperator = k8sOperator;
+    this.sidecarOps = sidecarOps;
+  }
 
 
-    @POST
-    @Path("/purge")
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    public Uni<OperationResponse> upload(Environment environment) {
-        Objects.requireNonNull(environment.getName());
-        Objects.requireNonNull(environment.getWebsiteName());
-        Objects.requireNonNull(environment.getNameSpace());
-        Objects.requireNonNull(environment.getWebsiteVersion());
-        return k8sOperator.deleteEnvironment(environment);
-    }
+  @POST
+  @Path("/purge")
+  @Produces(MediaType.APPLICATION_JSON)
+  @Consumes(MediaType.APPLICATION_JSON)
+  public Uni<OperationResponse> upload(Environment environment) {
+    Objects.requireNonNull(environment.getName());
+    Objects.requireNonNull(environment.getWebsiteName());
+    Objects.requireNonNull(environment.getNameSpace());
+    Objects.requireNonNull(environment.getWebsiteVersion());
+    return k8sOperator.deleteEnvironment(environment);
+  }
 
 
-    @POST
-    @Path("/sync")
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    @NonBlocking
-    public Uni<String> scheduleSync(@QueryParam("envName") String envName,
-                               @QueryParam("websiteName") String websiteName,
-                               @QueryParam("nameSpace") String nameSpace,
-                               Object syncRequestBody){
+  @POST
+  @Path("/sync")
+  @Produces(MediaType.APPLICATION_JSON)
+  @Consumes(MediaType.APPLICATION_JSON)
+  @NonBlocking
+  public Uni<String> scheduleSync(@QueryParam("envName") String envName,
+                                  @QueryParam("websiteName") String websiteName,
+                                  @QueryParam("nameSpace") String nameSpace,
+                                  Object syncRequestBody) {
 
-      Environment environment = new Environment(
-        envName,
-        websiteName,
-        null,
-        nameSpace,
-        true,
-        null,
-        null,
-        null,
-        null,
-        null,
-        true,
-        false);
-      return sidecarOps.triggerSyncAsync(syncRequestBody,environment);
+    Environment environment = new Environment(
+      envName,
+      websiteName,
+      null,
+      nameSpace,
+      true,
+      null,
+      null,
+      null,
+      null,
+      null,
+      true,
+      false);
+    return sidecarOps.triggerSyncAsync(syncRequestBody, environment);
 
-    }
+  }
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/api/EventStream.java b/packages/operator/src/main/java/io/spaship/operator/api/EventStream.java
index 5e291836..9502bade 100644
--- a/packages/operator/src/main/java/io/spaship/operator/api/EventStream.java
+++ b/packages/operator/src/main/java/io/spaship/operator/api/EventStream.java
@@ -12,20 +12,20 @@ import javax.ws.rs.core.MediaType;
 @Path("/event")
 public class EventStream {
 
-    private final Vertx vertx;
-    private final String busAddress;
+  private final Vertx vertx;
+  private final String busAddress;
 
-    public EventStream(Vertx vertx) {
-        this.vertx = vertx;
-        busAddress = ConfigProvider.getConfig().getValue("operator.event.bus.address", String.class);
-    }
+  public EventStream(Vertx vertx) {
+    this.vertx = vertx;
+    busAddress = ConfigProvider.getConfig().getValue("operator.event.bus.address", String.class);
+  }
 
-    @GET
-    @Produces(MediaType.SERVER_SENT_EVENTS)
-    public Multi<String> streamEvents() {
-        return vertx.eventBus()
-                .consumer(busAddress)
-                .toMulti()
-                .map(item -> item.body().toString());
-    }
+  @GET
+  @Produces(MediaType.SERVER_SENT_EVENTS)
+  public Multi<String> streamEvents() {
+    return vertx.eventBus()
+      .consumer(busAddress)
+      .toMulti()
+      .map(item -> item.body().toString());
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/api/SpaDeploymentController.java b/packages/operator/src/main/java/io/spaship/operator/api/SpaDeploymentController.java
index 8e6cb5e5..95183e96 100644
--- a/packages/operator/src/main/java/io/spaship/operator/api/SpaDeploymentController.java
+++ b/packages/operator/src/main/java/io/spaship/operator/api/SpaDeploymentController.java
@@ -5,7 +5,6 @@ import io.spaship.operator.business.SPAUploadHandler;
 import io.spaship.operator.exception.ZipFileProcessException;
 import io.spaship.operator.repo.SharedRepository;
 import io.spaship.operator.type.FormData;
-import io.vertx.core.json.Json;
 import io.vertx.core.json.JsonObject;
 import org.javatuples.Pair;
 import org.javatuples.Triplet;
@@ -22,73 +21,73 @@ import java.util.UUID;
 @Path("upload")
 public class SpaDeploymentController {
 
-    private static final Logger LOG = LoggerFactory.getLogger(SpaDeploymentController.class);
-    private final SPAUploadHandler spaUploadHandlerService;
-
-    public SpaDeploymentController(SPAUploadHandler spaUploadHandlerService) {
-        this.spaUploadHandlerService = spaUploadHandlerService;
-    }
-
-    @Produces("text/plain")
-    @GET
-    public String upload() {
-        return "please post a spa zip in the same url to make it work";
-    }
-
-    @POST
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.MULTIPART_FORM_DATA)
-    public String uploadSPA(@MultipartForm FormData formData) {
-        //[0]description[1]unique-trace-id
-        var response = sanity(formData);
-        //[0]file-path[1]unique-trace-id[2]website-name
-        var fileUploadParams = new Triplet<>(formData.getfilePath(), response, formData.website);
-        spaUploadHandlerService.handleFileUpload(fileUploadParams);
-        JsonObject object = new JsonObject();
-        object.put("description",response.getValue0());
-        object.put("traceId",response.getValue1());
-        return object.toString();
-    }
-
-    @GET
-    @Path("/test-exception")
-    @Produces("application/json")
-    public String exception() {
-        throw new IllegalStateException("my custom illegal exception");
-    }
-
-
-    @GET
-    @Path("/dequeue/{website}")
-    @Produces("text/plain")
-    public Boolean dequeue(@PathParam("website") String website) {
-        return SharedRepository.dequeue(website);
-    }
-
-
-    private Pair<String, UUID> sanity(FormData formData) {
-
-        if(!formData.isFileValid())
-          throw new ZipFileProcessException("invalid file type");
-
-        String description = formData.description;
-        String fileName = formData.fileName();
-        Long fileSize = formData.fileSize();
-        java.nio.file.Path path = formData.getfilePath();
-
-        Objects.requireNonNull(description, "description is missing from the request body");
-        Objects.requireNonNull(fileName, "file name not found");
-        Objects.requireNonNull(fileSize, "file size cannot be null");
-        Objects.requireNonNull(path, "unable to store the file");
-
-        if(description.isEmpty() || description.isBlank() || description.equals(" "))
-          description = String.valueOf(LocalDateTime.now());
-
-        LOG.debug("file received description {} , name is {} , size {}, location {} \n",
-                description, fileName, fileSize, path);
-        UUID processId = UUID.randomUUID();
-        return new Pair<>(description, processId);
-    }
+  private static final Logger LOG = LoggerFactory.getLogger(SpaDeploymentController.class);
+  private final SPAUploadHandler spaUploadHandlerService;
+
+  public SpaDeploymentController(SPAUploadHandler spaUploadHandlerService) {
+    this.spaUploadHandlerService = spaUploadHandlerService;
+  }
+
+  @Produces("text/plain")
+  @GET
+  public String upload() {
+    return "please post a spa zip in the same url to make it work";
+  }
+
+  @POST
+  @Produces(MediaType.APPLICATION_JSON)
+  @Consumes(MediaType.MULTIPART_FORM_DATA)
+  public String uploadSPA(@MultipartForm FormData formData) {
+    //[0]description[1]unique-trace-id
+    var response = sanity(formData);
+    //[0]file-path[1]unique-trace-id[2]website-name
+    var fileUploadParams = new Triplet<>(formData.getfilePath(), response, formData.website);
+    spaUploadHandlerService.handleFileUpload(fileUploadParams);
+    JsonObject object = new JsonObject();
+    object.put("description", response.getValue0());
+    object.put("traceId", response.getValue1());
+    return object.toString();
+  }
+
+  @GET
+  @Path("/test-exception")
+  @Produces("application/json")
+  public String exception() {
+    throw new IllegalStateException("my custom illegal exception");
+  }
+
+
+  @GET
+  @Path("/dequeue/{website}")
+  @Produces("text/plain")
+  public Boolean dequeue(@PathParam("website") String website) {
+    return SharedRepository.dequeue(website);
+  }
+
+
+  private Pair<String, UUID> sanity(FormData formData) {
+
+    if (!formData.isFileValid())
+      throw new ZipFileProcessException("invalid file type");
+
+    String description = formData.description;
+    String fileName = formData.fileName();
+    Long fileSize = formData.fileSize();
+    java.nio.file.Path path = formData.getfilePath();
+
+    Objects.requireNonNull(description, "description is missing from the request body");
+    Objects.requireNonNull(fileName, "file name not found");
+    Objects.requireNonNull(fileSize, "file size cannot be null");
+    Objects.requireNonNull(path, "unable to store the file");
+
+    if (description.isEmpty() || description.isBlank() || description.equals(" "))
+      description = String.valueOf(LocalDateTime.now());
+
+    LOG.debug("file received description {} , name is {} , size {}, location {} \n",
+      description, fileName, fileSize, path);
+    UUID processId = UUID.randomUUID();
+    return new Pair<>(description, processId);
+  }
 }
 
 
diff --git a/packages/operator/src/main/java/io/spaship/operator/business/EventManager.java b/packages/operator/src/main/java/io/spaship/operator/business/EventManager.java
index 1f58b0cc..063246c7 100644
--- a/packages/operator/src/main/java/io/spaship/operator/business/EventManager.java
+++ b/packages/operator/src/main/java/io/spaship/operator/business/EventManager.java
@@ -12,21 +12,21 @@ import javax.inject.Singleton;
 @Singleton
 public class EventManager {
 
-    private static final Logger LOG = LoggerFactory.getLogger(EventManager.class);
-    private final String busAddress;
-    private final Vertx vertx;
+  private static final Logger LOG = LoggerFactory.getLogger(EventManager.class);
+  private final String busAddress;
+  private final Vertx vertx;
 
 
-    public EventManager(Vertx vertx) {
-        this.vertx = vertx;
-        busAddress = ConfigProvider.getConfig().getValue("operator.event.bus.address", String.class);
-    }
+  public EventManager(Vertx vertx) {
+    this.vertx = vertx;
+    busAddress = ConfigProvider.getConfig().getValue("operator.event.bus.address", String.class);
+  }
 
-    public void queue(EventStructure event) {
-        JsonObject messageBody = JsonObject.mapFrom(event);
-        vertx.eventBus().publish(busAddress, messageBody);
-        LOG.debug("event scheduled");
-    }
+  public void queue(EventStructure event) {
+    JsonObject messageBody = JsonObject.mapFrom(event);
+    vertx.eventBus().publish(busAddress, messageBody);
+    LOG.debug("event scheduled");
+  }
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/business/SPAUploadHandler.java b/packages/operator/src/main/java/io/spaship/operator/business/SPAUploadHandler.java
index cdbfa2e4..9de10b61 100644
--- a/packages/operator/src/main/java/io/spaship/operator/business/SPAUploadHandler.java
+++ b/packages/operator/src/main/java/io/spaship/operator/business/SPAUploadHandler.java
@@ -33,196 +33,196 @@ import java.util.zip.ZipFile;
 @ApplicationScoped
 public class SPAUploadHandler {
 
-    private static final Logger LOG = LoggerFactory.getLogger(SPAUploadHandler.class);
-    private final Executor executor = Infrastructure.getDefaultExecutor();
-    private final Operator k8sOperator;
-    private final SideCarOperations sideCarOperations;
-    private final String nameSpace;
-    private final EventManager eventManager;
-
-    public SPAUploadHandler(Operator k8sOperator, SideCarOperations sideCarOperations,
-                            @Named("namespace") String nameSpace, EventManager eventManager) {
-        this.k8sOperator = k8sOperator;
-        this.sideCarOperations = sideCarOperations;
-        this.nameSpace = nameSpace;
-        this.eventManager = eventManager;
-    }
-
-
-    //[0]file-store-path[1]ops-tracing-id[2]website-name
-    //TODO : simplify map blocks
-    public void handleFileUpload(Triplet<Path, Pair<String, UUID>, String> input) {
-        LOG.debug("     deployment process initiated with details {}", input);
-
-        Uni.createFrom()
-                .item(() -> spaMappingIntoMemory(input))
-                .runSubscriptionOn(executor)
-                .map(this::buildEnvironmentList)
-                .onItem()
-                .transformToMulti(envList -> Multi.createFrom().iterable(envList))
-                .map(env -> {
-                    if (env.isUpdateRestriction() && k8sOperator.environmentExists(env)) {
-                        LOG.debug("environment exists but update restriction enforced, " +
-                                "environment details are as follows {}", env);
-                        return OperationResponse.builder().environment(env).status(-1).originatedFrom(this.getClass().toString())
-                                .build();
-                    }
-
-                    if (env.isExcludeFromEnvironment() && k8sOperator.environmentExists(env)) {
-                        LOG.debug("environment exists but env exclusion enforced, " +
-                                "environment details are as follows {}", env);
-                        return k8sOperator.removeSPA(env);
-                    }
-
-                    if (env.isExcludeFromEnvironment()) {
-                        LOG.debug("env exclusion enforced, skipping any operation, the environment details are as " +
-                                "follows {}", env);
-                        return OperationResponse.builder().environment(env).status(0).originatedFrom(this.getClass().toString())
-                                .build();
-                    }
-
-                    return k8sOperator.createOrUpdateEnvironment(env);
-                })
-                .map(opsResponse -> {
-                    if (opsResponse.getStatus() == -1 || opsResponse.getStatus() == 0) {
-                        LOG.debug("no operation performed");
-                        return opsResponse;
-                    }
-                    sideCarOperations.asyncCreateOrUpdateSPDirectory(opsResponse);
-                    return opsResponse;
-                })
-                .onFailure()
-                .recoverWithItem(throwable -> {
-                    throwable.printStackTrace();
-                    return OperationResponse.builder().errorMessage(throwable.getLocalizedMessage()).build();
-                })
-                .subscribe()
-                .with(operationResponse -> {
-                    if (Objects.nonNull(operationResponse.getErrorMessage())) {
-                        LOG.warn("operator file handling ops failed for env {} due to  {} ",
-                                operationResponse.getEnvironmentName(), operationResponse.getErrorMessage());
-                    } else {
-                        LOG.info("operator file handling ops completed with response {}", operationResponse);
-                    }
-
-                });
+  private static final Logger LOG = LoggerFactory.getLogger(SPAUploadHandler.class);
+  private final Executor executor = Infrastructure.getDefaultExecutor();
+  private final Operator k8sOperator;
+  private final SideCarOperations sideCarOperations;
+  private final String nameSpace;
+  private final EventManager eventManager;
+
+  public SPAUploadHandler(Operator k8sOperator, SideCarOperations sideCarOperations,
+                          @Named("namespace") String nameSpace, EventManager eventManager) {
+    this.k8sOperator = k8sOperator;
+    this.sideCarOperations = sideCarOperations;
+    this.nameSpace = nameSpace;
+    this.eventManager = eventManager;
+  }
+
+
+  //[0]file-store-path[1]ops-tracing-id[2]website-name
+  //TODO : simplify map blocks
+  public void handleFileUpload(Triplet<Path, Pair<String, UUID>, String> input) {
+    LOG.debug("     deployment process initiated with details {}", input);
+
+    Uni.createFrom()
+      .item(() -> spaMappingIntoMemory(input))
+      .runSubscriptionOn(executor)
+      .map(this::buildEnvironmentList)
+      .onItem()
+      .transformToMulti(envList -> Multi.createFrom().iterable(envList))
+      .map(env -> {
+        if (env.isUpdateRestriction() && k8sOperator.environmentExists(env)) {
+          LOG.debug("environment exists but update restriction enforced, " +
+            "environment details are as follows {}", env);
+          return OperationResponse.builder().environment(env).status(-1).originatedFrom(this.getClass().toString())
+            .build();
+        }
 
-    }
+        if (env.isExcludeFromEnvironment() && k8sOperator.environmentExists(env)) {
+          LOG.debug("environment exists but env exclusion enforced, " +
+            "environment details are as follows {}", env);
+          return k8sOperator.removeSPA(env);
+        }
 
-    private Triplet<String, UUID, Path> spaMappingIntoMemory(Triplet<Path, Pair<String, UUID>, String> input) {
-        Path absoluteFilePath = input.getValue0();
-        LOG.debug("absolute absoluteFilePath is {}", absoluteFilePath);
-
-        File spaDistribution = new File(absoluteFilePath.toUri());
-        String spaMappingReference = null;
-        assert spaDistribution.exists();
-        try (ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath())) {
-            Enumeration<? extends ZipEntry> entries = zipFile.entries();
-            InputStream inputStream = readFromSpaMapping(zipFile, entries);
-            Objects.requireNonNull(inputStream, ReUsableItems.getSpashipMappingFileName() + " not found");
-            try (inputStream) {
-                spaMappingReference = IOUtils.toString(inputStream, Charset.defaultCharset());
-            }
-        } catch (Exception e) {
-            eventManager.queue(
-              EventStructure.builder()
-                .websiteName(input.getValue2())
-                .environmentName("NA")
-                .uuid(input.getValue1().getValue1())
-                .state("failed to process zip file due to ".concat(e.getMessage()))
-                .spaName(input.getValue1().getValue0())
-                .build()
-            );
-            throw new ZipFileProcessException(e);
+        if (env.isExcludeFromEnvironment()) {
+          LOG.debug("env exclusion enforced, skipping any operation, the environment details are as " +
+            "follows {}", env);
+          return OperationResponse.builder().environment(env).status(0).originatedFrom(this.getClass().toString())
+            .build();
         }
-        eventManager.queue(
-                EventStructure.builder()
-                        .websiteName(input.getValue2())
-                        .environmentName("NA")
-                        .uuid(input.getValue1().getValue1())
-                        .state("mapping file loaded into memory")
-                        .spaName(input.getValue1().getValue0())
-                        .build());
-        var output = new Triplet<>(spaMappingReference, input.getValue1().getValue1(), input.getValue0());
-        LOG.debug("output of spaMappingIntoMemory  {} ", output);
-        return output;
-    }
 
-    private List<Environment> buildEnvironmentList(Triplet<String, UUID, Path> input) {
-        SpashipMapping spaMapping;
-        try{
-          spaMapping = new SpashipMapping(input.getValue0());
-        }catch(Exception e){
-          eventManager.queue(
-            EventStructure.builder()
-              .websiteName("NF")
-              .environmentName("NA")
-              .uuid(input.getValue1())
-              .state("failed to parse .spaship file")
-              .build());
-          return Collections.emptyList();
+        return k8sOperator.createOrUpdateEnvironment(env);
+      })
+      .map(opsResponse -> {
+        if (opsResponse.getStatus() == -1 || opsResponse.getStatus() == 0) {
+          LOG.debug("no operation performed");
+          return opsResponse;
+        }
+        sideCarOperations.asyncCreateOrUpdateSPDirectory(opsResponse);
+        return opsResponse;
+      })
+      .onFailure()
+      .recoverWithItem(throwable -> {
+        throwable.printStackTrace();
+        return OperationResponse.builder().errorMessage(throwable.getLocalizedMessage()).build();
+      })
+      .subscribe()
+      .with(operationResponse -> {
+        if (Objects.nonNull(operationResponse.getErrorMessage())) {
+          LOG.warn("operator file handling ops failed for env {} due to  {} ",
+            operationResponse.getEnvironmentName(), operationResponse.getErrorMessage());
+        } else {
+          LOG.info("operator file handling ops completed with response {}", operationResponse);
         }
 
-        var environments = spaMapping.getEnvironments();
-        var environmentSize = environments.size();
-        LOG.debug("{} no of environments detected and first entry is {}", environmentSize, environments.get(0));
+      });
+
+  }
+
+  private Triplet<String, UUID, Path> spaMappingIntoMemory(Triplet<Path, Pair<String, UUID>, String> input) {
+    Path absoluteFilePath = input.getValue0();
+    LOG.debug("absolute absoluteFilePath is {}", absoluteFilePath);
+
+    File spaDistribution = new File(absoluteFilePath.toUri());
+    String spaMappingReference = null;
+    assert spaDistribution.exists();
+    try (ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath())) {
+      Enumeration<? extends ZipEntry> entries = zipFile.entries();
+      InputStream inputStream = readFromSpaMapping(zipFile, entries);
+      Objects.requireNonNull(inputStream, ReUsableItems.getSpashipMappingFileName() + " not found");
+      try (inputStream) {
+        spaMappingReference = IOUtils.toString(inputStream, Charset.defaultCharset());
+      }
+    } catch (Exception e) {
+      eventManager.queue(
+        EventStructure.builder()
+          .websiteName(input.getValue2())
+          .environmentName("NA")
+          .uuid(input.getValue1().getValue1())
+          .state("failed to process zip file due to ".concat(e.getMessage()))
+          .spaName(input.getValue1().getValue0())
+          .build()
+      );
+      throw new ZipFileProcessException(e);
+    }
+    eventManager.queue(
+      EventStructure.builder()
+        .websiteName(input.getValue2())
+        .environmentName("NA")
+        .uuid(input.getValue1().getValue1())
+        .state("mapping file loaded into memory")
+        .spaName(input.getValue1().getValue0())
+        .build());
+    var output = new Triplet<>(spaMappingReference, input.getValue1().getValue1(), input.getValue0());
+    LOG.debug("output of spaMappingIntoMemory  {} ", output);
+    return output;
+  }
+
+  private List<Environment> buildEnvironmentList(Triplet<String, UUID, Path> input) {
+    SpashipMapping spaMapping;
+    try {
+      spaMapping = new SpashipMapping(input.getValue0());
+    } catch (Exception e) {
+      eventManager.queue(
+        EventStructure.builder()
+          .websiteName("NF")
+          .environmentName("NA")
+          .uuid(input.getValue1())
+          .state("failed to parse .spaship file")
+          .build());
+      return Collections.emptyList();
+    }
 
-        List<Environment> allEnvironments = environments.stream()
-                .map(environmentMapping -> constructEnvironmentObject(input, spaMapping, environmentMapping))
-                .collect(Collectors.toList());
+    var environments = spaMapping.getEnvironments();
+    var environmentSize = environments.size();
+    LOG.debug("{} no of environments detected and first entry is {}", environmentSize, environments.get(0));
 
-        assert environmentSize == allEnvironments.size();
+    List<Environment> allEnvironments = environments.stream()
+      .map(environmentMapping -> constructEnvironmentObject(input, spaMapping, environmentMapping))
+      .collect(Collectors.toList());
 
-        eventManager.queue(
-                EventStructure.builder()
-                        .websiteName(spaMapping.getWebsiteName())
-                        .environmentName("NA")
-                        .uuid(input.getValue1())
-                        .state("environments detected")
-                        .build());
+    assert environmentSize == allEnvironments.size();
 
-        return allEnvironments;
-    }
+    eventManager.queue(
+      EventStructure.builder()
+        .websiteName(spaMapping.getWebsiteName())
+        .environmentName("NA")
+        .uuid(input.getValue1())
+        .state("environments detected")
+        .build());
 
+    return allEnvironments;
+  }
 
-//************************************************ Lambda inner Methods ************************************************
 
-    private InputStream readFromSpaMapping(ZipFile zipFile, Enumeration<? extends ZipEntry> entries) {
-        LOG.debug("reading from .spaship input stream");
-        return Collections
-                .list(entries)
-                .stream()
-                .filter(file -> file.getName().equals(ReUsableItems.getSpashipMappingFileName()))
-                .findFirst().map(entry -> {
-                    try {
-                        LOG.debug("file loaded into memory");
-                        return zipFile.getInputStream(entry);
-                    } catch (IOException e) {
-                        LOG.error("failed to load content into input-stream");
-                        return null;
-                    }
-                }).orElse(null);
-    }
+//************************************************ Lambda inner Methods ************************************************
 
-    private Environment constructEnvironmentObject(Triplet<String, UUID, Path> input, SpashipMapping spaMapping,
-                                                   HashMap<String, Object> environmentMapping) {
-        var envName = environmentMapping.get("name").toString();
-        var websiteName =  Objects.isNull(spaMapping.getWebsiteName())?
-          spaMapping.getString("websiteName"):spaMapping.getWebsiteName();
-        var traceID = input.getValue1();
-        var updateRestriction = (boolean) environmentMapping.get("updateRestriction");
-        var zipFileLocation = input.getValue2();
-        var websiteVersion = spaMapping.getWebsiteVersion();
-        var spaName = spaMapping.getName();
-        var spaContextPath = spaMapping.getContextPath();
-        var branch = spaMapping.getBranch();
-        var excludeFromEnvironment = (boolean) environmentMapping.get("exclude");
-
-        Environment environment = new Environment(envName, websiteName, traceID, this.nameSpace, updateRestriction,
-                zipFileLocation,
-                websiteVersion, spaName, spaContextPath, branch, excludeFromEnvironment, false);
-        LOG.debug("Constructed environment object is {}", environment);
-        return environment;
-    }
+  private InputStream readFromSpaMapping(ZipFile zipFile, Enumeration<? extends ZipEntry> entries) {
+    LOG.debug("reading from .spaship input stream");
+    return Collections
+      .list(entries)
+      .stream()
+      .filter(file -> file.getName().equals(ReUsableItems.getSpashipMappingFileName()))
+      .findFirst().map(entry -> {
+        try {
+          LOG.debug("file loaded into memory");
+          return zipFile.getInputStream(entry);
+        } catch (IOException e) {
+          LOG.error("failed to load content into input-stream");
+          return null;
+        }
+      }).orElse(null);
+  }
+
+  private Environment constructEnvironmentObject(Triplet<String, UUID, Path> input, SpashipMapping spaMapping,
+                                                 HashMap<String, Object> environmentMapping) {
+    var envName = environmentMapping.get("name").toString();
+    var websiteName = Objects.isNull(spaMapping.getWebsiteName()) ?
+      spaMapping.getString("websiteName") : spaMapping.getWebsiteName();
+    var traceID = input.getValue1();
+    var updateRestriction = (boolean) environmentMapping.get("updateRestriction");
+    var zipFileLocation = input.getValue2();
+    var websiteVersion = spaMapping.getWebsiteVersion();
+    var spaName = spaMapping.getName();
+    var spaContextPath = spaMapping.getContextPath();
+    var branch = spaMapping.getBranch();
+    var excludeFromEnvironment = (boolean) environmentMapping.get("exclude");
+
+    Environment environment = new Environment(envName, websiteName, traceID, this.nameSpace, updateRestriction,
+      zipFileLocation,
+      websiteVersion, spaName, spaContextPath, branch, excludeFromEnvironment, false);
+    LOG.debug("Constructed environment object is {}", environment);
+    return environment;
+  }
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/config/K8sClientProducer.java b/packages/operator/src/main/java/io/spaship/operator/config/K8sClientProducer.java
index 3373ea65..aa4d1690 100644
--- a/packages/operator/src/main/java/io/spaship/operator/config/K8sClientProducer.java
+++ b/packages/operator/src/main/java/io/spaship/operator/config/K8sClientProducer.java
@@ -17,47 +17,44 @@ import java.util.Optional;
 
 @Singleton
 public class K8sClientProducer {
-    private static final Logger LOG = LoggerFactory.getLogger(K8sClientProducer.class);
-
-    @ConfigProperty(name = "application.k8s.namespace")
-    Optional<String>  nameSpaceFromEnv;
-
-    @Produces
-    @Named("namespace")
-    String getNamespace(){
-        String computedNameSpace = Optional.ofNullable(readNameFromFile()).orElse(whenNameSpaceMetaFileNotFound());
-        LOG.info("computed namespace is {}", computedNameSpace);
-        return computedNameSpace;
-    }
-
-    private String readNameFromFile() {
-        String ns;
-        try {
-            ns = new String(Files
-                    .readAllBytes(Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/namespace")));
-        } catch (IOException e) {
-            LOG.warn("failed to read namespace from metadata {}", e.getMessage());
-            ns = null;
-        }
-        return ns;
-    }
-
-    private String whenNameSpaceMetaFileNotFound() {
-        LOG.debug("namespace file does not exists.");
-        return nameSpaceFromEnv.orElseGet(() -> {
-            LOG.debug("namespace not on environment either! proceedi");
-            return "default";
-        });
-
-    }
-
-    @Produces
-    public KubernetesClient openshiftClient() {
-        return new DefaultOpenShiftClient();
+  private static final Logger LOG = LoggerFactory.getLogger(K8sClientProducer.class);
+
+  @ConfigProperty(name = "application.k8s.namespace")
+  Optional<String> nameSpaceFromEnv;
+
+  @Produces
+  @Named("namespace")
+  String getNamespace() {
+    String computedNameSpace = Optional.ofNullable(readNameFromFile()).orElse(whenNameSpaceMetaFileNotFound());
+    LOG.info("computed namespace is {}", computedNameSpace);
+    return computedNameSpace;
+  }
+
+  private String readNameFromFile() {
+    String ns;
+    try {
+      ns = new String(Files
+        .readAllBytes(Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/namespace")));
+    } catch (IOException e) {
+      LOG.warn("failed to read namespace from metadata {}", e.getMessage());
+      ns = null;
     }
-
-
-
+    return ns;
+  }
+
+  private String whenNameSpaceMetaFileNotFound() {
+    LOG.debug("namespace file does not exists.");
+    return nameSpaceFromEnv.orElseGet(() -> {
+      LOG.debug("namespace not on environment either! proceedi");
+      return "default";
+    });
+
+  }
+
+  @Produces
+  public KubernetesClient openshiftClient() {
+    return new DefaultOpenShiftClient();
+  }
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/config/RestExceptionMapperConfig.java b/packages/operator/src/main/java/io/spaship/operator/config/RestExceptionMapperConfig.java
index 566ae7d9..8b11be3d 100644
--- a/packages/operator/src/main/java/io/spaship/operator/config/RestExceptionMapperConfig.java
+++ b/packages/operator/src/main/java/io/spaship/operator/config/RestExceptionMapperConfig.java
@@ -9,11 +9,11 @@ import java.util.Objects;
 
 @Provider
 public class RestExceptionMapperConfig implements ExceptionMapper<Exception> {
-    @Override
-    public Response toResponse(Exception throwable) {
-        String errorMessage = Objects.isNull(throwable.getMessage()) ? throwable.toString() : throwable.getMessage();
-        var response = new ErrorResponse(errorMessage, "500",
-                "https://spaship.io/");
-        return Response.ok().entity(response).status(500).build();
-    }
+  @Override
+  public Response toResponse(Exception throwable) {
+    String errorMessage = Objects.isNull(throwable.getMessage()) ? throwable.toString() : throwable.getMessage();
+    var response = new ErrorResponse(errorMessage, "500",
+      "https://spaship.io/");
+    return Response.ok().entity(response).status(500).build();
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/exception/FeatureNotImplementedException.java b/packages/operator/src/main/java/io/spaship/operator/exception/FeatureNotImplementedException.java
index 671637c7..fafbd1d9 100644
--- a/packages/operator/src/main/java/io/spaship/operator/exception/FeatureNotImplementedException.java
+++ b/packages/operator/src/main/java/io/spaship/operator/exception/FeatureNotImplementedException.java
@@ -1,11 +1,11 @@
 package io.spaship.operator.exception;
 
 public class FeatureNotImplementedException extends RuntimeException {
-    public FeatureNotImplementedException() {
-        super("this feature is not implemented yet");
-    }
+  public FeatureNotImplementedException() {
+    super("this feature is not implemented yet");
+  }
 
-    public FeatureNotImplementedException(String details) {
-        super(details);
-    }
+  public FeatureNotImplementedException(String details) {
+    super(details);
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/exception/ResourceNotFoundException.java b/packages/operator/src/main/java/io/spaship/operator/exception/ResourceNotFoundException.java
index bcafc8e2..5f0021cc 100644
--- a/packages/operator/src/main/java/io/spaship/operator/exception/ResourceNotFoundException.java
+++ b/packages/operator/src/main/java/io/spaship/operator/exception/ResourceNotFoundException.java
@@ -1,11 +1,11 @@
 package io.spaship.operator.exception;
 
 public class ResourceNotFoundException extends RuntimeException {
-    public ResourceNotFoundException() {
-        super();
-    }
+  public ResourceNotFoundException() {
+    super();
+  }
 
-    public ResourceNotFoundException(String resourceName) {
-        super("resource "+resourceName+" not found in namespace");
-    }
+  public ResourceNotFoundException(String resourceName) {
+    super("resource " + resourceName + " not found in namespace");
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/exception/ZipFileProcessException.java b/packages/operator/src/main/java/io/spaship/operator/exception/ZipFileProcessException.java
index 1e43f87c..eaf845a8 100644
--- a/packages/operator/src/main/java/io/spaship/operator/exception/ZipFileProcessException.java
+++ b/packages/operator/src/main/java/io/spaship/operator/exception/ZipFileProcessException.java
@@ -1,12 +1,14 @@
 package io.spaship.operator.exception;
 
-public class ZipFileProcessException extends RuntimeException{
+public class ZipFileProcessException extends RuntimeException {
 
   public ZipFileProcessException(String message) {
     super(message);
   }
 
-  public ZipFileProcessException() {super();}
+  public ZipFileProcessException() {
+    super();
+  }
 
   public ZipFileProcessException(Throwable cause) {
     super(cause);
diff --git a/packages/operator/src/main/java/io/spaship/operator/repo/SharedRepository.java b/packages/operator/src/main/java/io/spaship/operator/repo/SharedRepository.java
index 3a4c0c8b..ec4fc9f7 100644
--- a/packages/operator/src/main/java/io/spaship/operator/repo/SharedRepository.java
+++ b/packages/operator/src/main/java/io/spaship/operator/repo/SharedRepository.java
@@ -8,37 +8,37 @@ import java.time.LocalDateTime;
 import java.util.*;
 
 public class SharedRepository {
-    private static final Logger LOG = LoggerFactory.getLogger(SharedRepository.class);
-    // This is used to prevent concurrency issues for environment creation, so that one environment or setup does not get created when
-    private static final Map<String, Pair<UUID, LocalDateTime>> environmentLock = Collections.synchronizedMap(new HashMap<>());
+  private static final Logger LOG = LoggerFactory.getLogger(SharedRepository.class);
+  // This is used to prevent concurrency issues for environment creation, so that one environment or setup does not get created when
+  private static final Map<String, Pair<UUID, LocalDateTime>> environmentLock = Collections.synchronizedMap(new HashMap<>());
 
-    private SharedRepository() {
-    }
-
-
-    public static boolean enqueue(String environmentName, Pair<UUID, LocalDateTime> meta) {
-        if (isQueued(environmentName)) {
-            LOG.debug("entry {} already exists", environmentName);
-            return false;
-        }
-        LOG.debug("enqueuing the following details {} of website {}", meta, environmentName);
-        environmentLock.put(environmentName, meta);
-        return true;
-    }
+  private SharedRepository() {
+  }
 
-    public static boolean dequeue(String environmentName) {
-        var value = environmentLock.remove(environmentName);
-        LOG.debug("dequeued the following details {} of website {}", value, environmentName);
-        return !Objects.isNull(value);
-    }
-
-    public static boolean isQueued(String websiteName) {
-        return !Objects.isNull(environmentLock.get(websiteName));
-    }
 
-    public static Pair<UUID, LocalDateTime> getEnvironmentLockMeta(String website) {
-        var value = environmentLock.get(website);
-        LOG.debug("value against entry {} is {}", website, value);
-        return value;
+  public static boolean enqueue(String environmentName, Pair<UUID, LocalDateTime> meta) {
+    if (isQueued(environmentName)) {
+      LOG.debug("entry {} already exists", environmentName);
+      return false;
     }
+    LOG.debug("enqueuing the following details {} of website {}", meta, environmentName);
+    environmentLock.put(environmentName, meta);
+    return true;
+  }
+
+  public static boolean dequeue(String environmentName) {
+    var value = environmentLock.remove(environmentName);
+    LOG.debug("dequeued the following details {} of website {}", value, environmentName);
+    return !Objects.isNull(value);
+  }
+
+  public static boolean isQueued(String websiteName) {
+    return !Objects.isNull(environmentLock.get(websiteName));
+  }
+
+  public static Pair<UUID, LocalDateTime> getEnvironmentLockMeta(String website) {
+    var value = environmentLock.get(website);
+    LOG.debug("value against entry {} is {}", website, value);
+    return value;
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/service/Operations.java b/packages/operator/src/main/java/io/spaship/operator/service/Operations.java
index 56efd439..e47887dc 100644
--- a/packages/operator/src/main/java/io/spaship/operator/service/Operations.java
+++ b/packages/operator/src/main/java/io/spaship/operator/service/Operations.java
@@ -5,7 +5,7 @@ import io.spaship.operator.type.OperationResponse;
 
 public interface Operations {
 
-    OperationResponse createOrUpdateEnvironment(Environment environment);
+  OperationResponse createOrUpdateEnvironment(Environment environment);
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/service/k8s/Operator.java b/packages/operator/src/main/java/io/spaship/operator/service/k8s/Operator.java
index eb4f50db..655cc7fc 100644
--- a/packages/operator/src/main/java/io/spaship/operator/service/k8s/Operator.java
+++ b/packages/operator/src/main/java/io/spaship/operator/service/k8s/Operator.java
@@ -1,9 +1,6 @@
 package io.spaship.operator.service.k8s;
 
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.fabric8.kubernetes.api.model.KubernetesList;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.Service;
+import io.fabric8.kubernetes.api.model.*;
 import io.fabric8.kubernetes.api.model.apps.Deployment;
 import io.fabric8.kubernetes.api.model.apps.StatefulSet;
 import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
@@ -32,241 +29,245 @@ import java.util.*;
 
 @ApplicationScoped
 public class Operator implements Operations {
-    private static final Logger LOG = LoggerFactory.getLogger(Operator.class);
-
-    private final KubernetesClient k8sClient;
-    private final EventManager eventManager;
-    private final String domain;
-    private final String appInstance;
-
-
-    private static final String MANAGED_BY = "managedBy";
-    private static final String WEBSITE = "website";
-    private static final String ENVIRONMENT = "environment";
-    private static final String SPASHIP = "spaship";
-
-    public Operator(KubernetesClient k8sClient, EventManager eventManager) {
-        this.k8sClient = k8sClient;
-        this.eventManager = eventManager;
-        domain = ConfigProvider.getConfig().getValue("operator.domain.name", String.class);
-        appInstance = setAppInstanceValue();
-    }
-
-    private String setAppInstanceValue() {
-        var propertyValue = ConfigProvider.getConfig().getValue("app.instance", String.class);
-        if(Objects.isNull(propertyValue) || propertyValue.isEmpty() || propertyValue.isBlank()){
-          LOG.warn("property app.instance is not set, going with the default value");
-          propertyValue = "default";
-        }
-        return propertyValue;
+  private static final Logger LOG = LoggerFactory.getLogger(Operator.class);
+  private static final String MANAGED_BY = "managedBy";
+  private static final String WEBSITE = "website";
+  private static final String ENVIRONMENT = "environment";
+  private static final String SPASHIP = "spaship";
+  private final KubernetesClient k8sClient;
+  private final EventManager eventManager;
+  private final String domain;
+  private final String appInstance;
+
+  public Operator(KubernetesClient k8sClient, EventManager eventManager) {
+    this.k8sClient = k8sClient;
+    this.eventManager = eventManager;
+    domain = ConfigProvider.getConfig().getValue("operator.domain.name", String.class);
+    appInstance = setAppInstanceValue();
+  }
+
+  private String setAppInstanceValue() {
+    var propertyValue = ConfigProvider.getConfig().getValue("app.instance", String.class);
+    if (Objects.isNull(propertyValue) || propertyValue.isEmpty() || propertyValue.isBlank()) {
+      LOG.warn("property app.instance is not set, going with the default value");
+      propertyValue = "default";
     }
+    return propertyValue;
+  }
 
 
   public OperationResponse createOrUpdateEnvironment(Environment environment) {
 
-        domainValidation(domain);
-
-        ReUsableItems.enforceOpsLocking(new Pair<>(environment.getIdentification(), environment.getTraceID()));
-
-        boolean envExists = environmentExists(environment);
-        LOG.debug("envExists is {}", envExists);
-        if (!envExists)
-            createNewEnvironment(environment);
-        String sideCarSvcUrl = environmentSidecarUrl(environment);
-        environment.setOperationPerformed(true);
-
-        ReUsableItems.releaseLock(environment.getIdentification());
-        LOG.debug("\n");
-        return OperationResponse.builder().environment(environment).sideCarServiceUrl(sideCarSvcUrl)
-                .originatedFrom(this.getClass().toString()).status(envExists ? 2 : 1).build();
-    }
-
-    private void domainValidation(String domain) {
-        if (Objects.isNull(domain)) {
-            LOG.error("the domain name is missing");
-            throw new ResourceNotFoundException("property operator.domain.name is not set");
-        }
-    }
-
-
-    public boolean environmentExists(Environment environment) {
-        Map<String, String> labels = searchCriteriaLabel(environment);
-        List<Pod> matchedPods = k8sClient.pods().inNamespace(environment.getNameSpace()).withLabels(labels).list()
-                .getItems();
-        LOG.debug("{} no of matched pod found with search criteria {}", matchedPods.size(), labels);
-        return !matchedPods.isEmpty();
-    }
-
-    public OperationResponse removeSPA(Environment env) {
-        throw new FeatureNotImplementedException();
-    }
-
-    public Uni<OperationResponse> deleteEnvironment(Environment environment) {
+    domainValidation(domain);
 
-        return Uni.createFrom().item(buildK8sResourceList(environment))
-                .emitOn(Infrastructure.getDefaultExecutor())
-                .map(resourceList -> applyDeleteResourceList(environment, resourceList))
-                .onFailure()
-                .recoverWithItem(
-                        throwable -> OperationResponse.builder().environment(environment)
-                                .sideCarServiceUrl("NA").errorMessage(throwable.getMessage())
-                                .originatedFrom(this.getClass().toString()).status(0).build()
-                );
+    ReUsableItems.enforceOpsLocking(new Pair<>(environment.getIdentification(), environment.getTraceID()));
 
-    }
+    boolean envExists = environmentExists(environment);
+    LOG.debug("envExists is {}", envExists);
+    if (!envExists)
+      createNewEnvironment(environment);
+    String sideCarSvcUrl = environmentSidecarUrl(environment);
+    environment.setOperationPerformed(true);
 
+    ReUsableItems.releaseLock(environment.getIdentification());
+    LOG.debug("\n");
+    return OperationResponse.builder().environment(environment).sideCarServiceUrl(sideCarSvcUrl)
+      .originatedFrom(this.getClass().toString()).status(envExists ? 2 : 1).build();
+  }
 
-    void createNewEnvironment(Environment environment) {
-        KubernetesList result = buildK8sResourceList(environment);
-        LOG.debug("create environment is in progress");
-        processK8sList(result, environment.getTraceID(), environment.getNameSpace());
+  private void domainValidation(String domain) {
+    if (Objects.isNull(domain)) {
+      LOG.error("the domain name is missing");
+      throw new ResourceNotFoundException("property operator.domain.name is not set");
     }
+  }
+
+
+  public boolean environmentExists(Environment environment) {
+    Map<String, String> labels = searchCriteriaLabel(environment);
+    List<Pod> matchedPods = k8sClient.pods().inNamespace(environment.getNameSpace()).withLabels(labels).list()
+      .getItems();
+    LOG.debug("{} no of matched pod found with search criteria {}", matchedPods.size(), labels);
+    return !matchedPods.isEmpty();
+  }
+
+  public OperationResponse removeSPA(Environment env) {
+    throw new FeatureNotImplementedException();
+  }
+
+  public Uni<OperationResponse> deleteEnvironment(Environment environment) {
+
+    return Uni.createFrom().item(buildK8sResourceList(environment))
+      .emitOn(Infrastructure.getDefaultExecutor())
+      .map(resourceList -> applyDeleteResourceList(environment, resourceList))
+      .onFailure()
+      .recoverWithItem(
+        throwable -> OperationResponse.builder().environment(environment)
+          .sideCarServiceUrl("NA").errorMessage(throwable.getMessage())
+          .originatedFrom(this.getClass().toString()).status(0).build()
+      );
 
-    public String environmentSidecarUrl(Environment environment) {
-        String serviceName = "svc"
-                .concat("-")
-                .concat(appInstance)
-                .concat("-")
-                .concat(environment.getWebsiteName().toLowerCase())
-                .concat("-")
-                .concat(environment.getName().toLowerCase());
-        LOG.debug("computed service name is {}", serviceName);
-
-        return Optional.ofNullable(k8sClient.services().inNamespace(environment.getNameSpace()).withName(serviceName))
-                .map(svc -> svc.getURL("http-api"))
-                .orElseThrow(() -> {
-                    throw new ResourceNotFoundException("service:" + serviceName);
-                });
+  }
+
+
+  void createNewEnvironment(Environment environment) {
+    KubernetesList result = buildK8sResourceList(environment);
+    LOG.debug("create environment is in progress");
+    processK8sList(result, environment.getTraceID(), environment.getNameSpace());
+  }
+
+  public String environmentSidecarUrl(Environment environment) {
+    String serviceName = "svc"
+      .concat("-")
+      .concat(appInstance)
+      .concat("-")
+      .concat(environment.getWebsiteName().toLowerCase())
+      .concat("-")
+      .concat(environment.getName().toLowerCase());
+    LOG.debug("computed service name is {}", serviceName);
+
+    return Optional.ofNullable(k8sClient.services().inNamespace(environment.getNameSpace()).withName(serviceName))
+      .map(svc -> svc.getURL("http-api"))
+      .orElseThrow(() -> {
+        throw new ResourceNotFoundException("service:" + serviceName);
+      });
+  }
+
+  Map<String, String> searchCriteriaLabel(Environment environment) {
+    return Map.of(MANAGED_BY, SPASHIP,
+      WEBSITE, environment.getWebsiteName().toLowerCase(),
+      ENVIRONMENT, environment.getName().toLowerCase(),
+      "websiteVersion", environment.getWebsiteVersion().toLowerCase()
+    );
+  }
+
+  private OperationResponse applyDeleteResourceList(Environment environment, KubernetesList resourceList) {
+    LOG.debug("applying delete on resources");
+    //Should we delete the pvs as well? will that be a good idea?
+    boolean isDeleted = k8sClient.resourceList(resourceList).inNamespace(environment.getNameSpace()).delete();
+    environment.setOperationPerformed(true);
+    var or = OperationResponse.builder().environment(environment)
+      .sideCarServiceUrl("NA")
+      .originatedFrom(this.getClass().toString());
+    or.status(3);
+    if (!isDeleted)
+      or.status(0).errorMessage("unable to delete the resources");
+    return or.build();
+  }
+
+
+  private KubernetesList buildK8sResourceList(Environment environment) {
+    Map<String, String> templateParameters = Map.of(
+      "WEBSITE", environment.getWebsiteName().toLowerCase(),
+      //"TRACE_ID", environment.getTraceID().toString().toLowerCase(),
+      "ENV", environment.getName().toLowerCase(),
+      "WEBSITE_VERSION", environment.getWebsiteVersion().toLowerCase(),
+      "DOMAIN", domain,
+      "APP_INSTANCE_PREFIX", appInstance,
+      "STORAGE_CLASS", ConfigProvider.getConfig().getValue("storage.class", String.class)
+    );
+    LOG.debug("building KubernetesList, templateParameters are as follows {}", templateParameters);
+    return ((OpenShiftClient) k8sClient)
+      .templates()
+      .inNamespace(environment.getNameSpace())
+      .load(Operations.class.getResourceAsStream("/openshift/environment-template.yaml"))
+      .processLocally(templateParameters);
+  }
+
+
+  public boolean isEnvironmentAvailable(Environment environment) {
+    boolean isAvailable = false;
+
+    Objects.requireNonNull(environment.getName(), "environment name not fond in env object");
+    Objects.requireNonNull(environment.getWebsiteName(), "website name not found in env object");
+    Objects.requireNonNull(environment.getNameSpace(), "website namespace not found in env object");
+    Map<String, String> labels = Map.of(
+      MANAGED_BY, SPASHIP,
+      WEBSITE, environment.getWebsiteName(),
+      ENVIRONMENT, environment.getName()
+    );
+    var pods = k8sClient.pods()
+      .inNamespace(environment.getNameSpace()).withLabels(labels).list().getItems();
+
+    if (Objects.isNull(pods)) {
+      LOG.warn("List<Pod> is null");
+      return isAvailable;
     }
-
-    Map<String, String> searchCriteriaLabel(Environment environment) {
-        return Map.of(MANAGED_BY, SPASHIP,
-                WEBSITE, environment.getWebsiteName().toLowerCase(),
-                ENVIRONMENT, environment.getName().toLowerCase(),
-                "websiteVersion", environment.getWebsiteVersion().toLowerCase()
-        );
+    if (pods.isEmpty()) {
+      LOG.info("no pod found with the following details {}", labels);
+      return isAvailable;
     }
+    if (pods.size() > 1)
+      LOG.warn("more than one pod found with the same criteria");
 
-    private OperationResponse applyDeleteResourceList(Environment environment, KubernetesList resourceList) {
-        LOG.debug("applying delete on resources");
-        //Should we delete the pvs as well? will that be a good idea?
-        boolean isDeleted = k8sClient.resourceList(resourceList).inNamespace(environment.getNameSpace()).delete();
-        environment.setOperationPerformed(true);
-        var or = OperationResponse.builder().environment(environment)
-                .sideCarServiceUrl("NA")
-                .originatedFrom(this.getClass().toString());
-        or.status(3);
-        if (!isDeleted)
-            or.status(0).errorMessage("unable to delete the resources");
-        return or.build();
-    }
 
+    var pod0 = pods.get(0);
+    var phase = pod0.getStatus().getPhase();
+    var readiness = Readiness.isPodReady(pod0);
+    LOG.debug("pod phase is {} ", phase);
+    return phase.equalsIgnoreCase("Running") && readiness;
 
-    private KubernetesList buildK8sResourceList(Environment environment) {
-        Map<String, String> templateParameters = Map.of(
-                "WEBSITE", environment.getWebsiteName().toLowerCase(),
-                //"TRACE_ID", environment.getTraceID().toString().toLowerCase(),
-                "ENV", environment.getName().toLowerCase(),
-                "WEBSITE_VERSION", environment.getWebsiteVersion().toLowerCase(),
-                "DOMAIN", domain,
-                "APP_INSTANCE_PREFIX",appInstance,
-                "STORAGE_CLASS",ConfigProvider.getConfig().getValue("storage.class", String.class)
-        );
-        LOG.debug("building KubernetesList, templateParameters are as follows {}", templateParameters);
-        return ((OpenShiftClient) k8sClient)
-                .templates()
-                .inNamespace(environment.getNameSpace())
-                .load(Operations.class.getResourceAsStream("/openshift/environment-template.yaml"))
-                .processLocally(templateParameters);
-    }
-
+  }
 
-    public boolean isEnvironmentAvailable(Environment environment){
-      boolean isAvailable = false;
+  //TODO remove if blocks
+  private void processK8sList(KubernetesList result, UUID tracing, String nameSpace) {
 
-      Objects.requireNonNull(environment.getName(),"environment name not fond in env object");
-      Objects.requireNonNull(environment.getWebsiteName(),"website name not found in env object");
-      Objects.requireNonNull(environment.getNameSpace(),"website namespace not found in env object");
-      Map<String,String> labels = Map.of(
-        MANAGED_BY,SPASHIP,
-        WEBSITE,environment.getWebsiteName(),
-        ENVIRONMENT,environment.getName()
-      );
-      var pods = k8sClient.pods()
-        .inNamespace(environment.getNameSpace()).withLabels(labels).list().getItems();
+    var eb = EventStructure.builder().uuid(tracing);
 
-      if(Objects.isNull(pods)){
-        LOG.warn("List<Pod> is null");
-        return isAvailable;
+    result.getItems().forEach(item -> {
+      if (item instanceof Service) {
+        LOG.debug("creating new Service in K8s, tracing = {}", tracing);
+        k8sClient.services().inNamespace(nameSpace).createOrReplace((Service) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("service created");
       }
-      if(pods.isEmpty()){
-        LOG.info("no pod found with the following details {}",labels);
-        return isAvailable;
+      if (item instanceof Deployment) {
+        LOG.debug("creating new Deployment in K8s, tracing = {}", tracing);
+        k8sClient.apps().deployments().inNamespace(nameSpace).createOrReplace((Deployment) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("deployment created");
       }
-      if(pods.size()>1)
-        LOG.warn("more than one pod found with the same criteria");
-
+      if (item instanceof StatefulSet) {
+        LOG.debug("creating new Deployment in K8s, tracing = {}", tracing);
+        k8sClient.apps().statefulSets().inNamespace(nameSpace).createOrReplace((StatefulSet) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("StatefulSet created");
 
-      var pod0 = pods.get(0);
-      var phase = pod0.getStatus().getPhase();
-      var readiness = Readiness.isPodReady(pod0);
-      LOG.debug("pod phase is {} ", phase);
-      return phase.equalsIgnoreCase("Running") && readiness;
-
-    }
+      }
+      if (item instanceof PersistentVolumeClaim) {
+        LOG.debug("creating new pvc in K8s, tracing = {}", tracing);
+        k8sClient.persistentVolumeClaims().inNamespace(nameSpace).createOrReplace((PersistentVolumeClaim) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("pvc created");
+      }
+      if (item instanceof Route) {
+        LOG.debug("creating new Route in K8s, tracing = {}", tracing);
+        ((OpenShiftClient) k8sClient).routes().inNamespace(nameSpace).createOrReplace((Route) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("route created");
+      }
+      if (item instanceof ConfigMap) {
+        LOG.debug("creating new ConfigMap in K8s, tracing = {}", tracing);
+        k8sClient.configMaps().inNamespace(nameSpace).createOrReplace((ConfigMap) item);
+        eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
+          .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
+          .state("configmap created");
+      }
+      if (item instanceof Ingress) {
+        LOG.debug("creating new Ingress controller in K8s, tracing = {}", tracing);
+        k8sClient.network().v1().ingresses().inNamespace(nameSpace).createOrReplace((Ingress) item);
+      }
 
-    //TODO remove if blocks
-    private void processK8sList(KubernetesList result, UUID tracing, String nameSpace) {
-
-        var eb = EventStructure.builder().uuid(tracing);
-
-        result.getItems().forEach(item -> {
-            if (item instanceof Service) {
-                LOG.debug("creating new Service in K8s, tracing = {}", tracing);
-                k8sClient.services().inNamespace(nameSpace).createOrReplace((Service) item);
-                eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
-                        .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
-                        .state("service created");
-            }
-            if (item instanceof Deployment) {
-                LOG.debug("creating new Deployment in K8s, tracing = {}", tracing);
-                k8sClient.apps().deployments().inNamespace(nameSpace).createOrReplace((Deployment) item);
-                eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
-                        .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
-                        .state("deployment created");
-            }
-            if(item instanceof StatefulSet){
-              LOG.debug("creating new Deployment in K8s, tracing = {}", tracing);
-              k8sClient.apps().statefulSets().inNamespace(nameSpace).createOrReplace((StatefulSet)item);
-              eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
-                .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
-                .state("StatefulSet created");
-
-            }
-            if (item instanceof Route) {
-                LOG.debug("creating new Route in K8s, tracing = {}", tracing);
-                ((OpenShiftClient) k8sClient).routes().inNamespace(nameSpace).createOrReplace((Route) item);
-                eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
-                        .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
-                        .state("route created");
-            }
-            if (item instanceof ConfigMap) {
-                LOG.debug("creating new ConfigMap in K8s, tracing = {}", tracing);
-                k8sClient.configMaps().inNamespace(nameSpace).createOrReplace((ConfigMap) item);
-                eb.websiteName(item.getMetadata().getLabels().get(WEBSITE))
-                        .environmentName(item.getMetadata().getLabels().get(ENVIRONMENT))
-                        .state("configmap created");
-            }
-            if (item instanceof Ingress) {
-                LOG.debug("creating new Ingress controller in K8s, tracing = {}", tracing);
-                k8sClient.network().v1().ingresses().inNamespace(nameSpace).createOrReplace((Ingress) item);
-            }
-
-            eventManager.queue(eb.build());
-        });
+      eventManager.queue(eb.build());
+    });
 
 
-    }
+  }
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/service/k8s/SideCarOperations.java b/packages/operator/src/main/java/io/spaship/operator/service/k8s/SideCarOperations.java
index d521f8e8..3ab836e1 100644
--- a/packages/operator/src/main/java/io/spaship/operator/service/k8s/SideCarOperations.java
+++ b/packages/operator/src/main/java/io/spaship/operator/service/k8s/SideCarOperations.java
@@ -7,7 +7,6 @@ import io.spaship.operator.type.Environment;
 import io.spaship.operator.type.EventStructure;
 import io.spaship.operator.type.OperationResponse;
 import io.vertx.core.http.HttpMethod;
-import io.vertx.core.json.Json;
 import io.vertx.core.json.JsonObject;
 import io.vertx.ext.web.client.WebClientOptions;
 import io.vertx.mutiny.core.Vertx;
@@ -27,163 +26,163 @@ import java.util.concurrent.Executors;
 
 @ApplicationScoped
 public class SideCarOperations {
-    private static final Logger LOG = LoggerFactory.getLogger(SideCarOperations.class);
-    private final WebClient client;
-    private final EventManager eventManager;
-    private final ExecutorService executor
-            = Executors.newFixedThreadPool(10); //TODO smartly handle this thread as it will only support 10 environments at a time
-    private final Operator k8sOperator;
-
-
-
-    public SideCarOperations(Vertx vertx,
-                             EventManager eventManager,
-                             Operator k8sOperator) {
-      this.k8sOperator = k8sOperator;
-      WebClientOptions options = new WebClientOptions()
-                .setUserAgent("spaship-operator/0.0.1");
-        this.client = WebClient.create(vertx, options);
+  private static final Logger LOG = LoggerFactory.getLogger(SideCarOperations.class);
+  private final WebClient client;
+  private final EventManager eventManager;
+  private final ExecutorService executor
+    = Executors.newFixedThreadPool(10); //TODO smartly handle this thread as it will only support 10 environments at a time
+  private final Operator k8sOperator;
+
+
+  public SideCarOperations(Vertx vertx,
+                           EventManager eventManager,
+                           Operator k8sOperator) {
+    this.k8sOperator = k8sOperator;
+    WebClientOptions options = new WebClientOptions()
+      .setUserAgent("spaship-operator/0.0.1");
+    this.client = WebClient.create(vertx, options);
+
+    this.eventManager = eventManager;
+  }
 
-        this.eventManager = eventManager;
-    }
 
+  //TODO 1. remove manual thread handling 2. replace hard coded time with pod ready status
+  public void asyncCreateOrUpdateSPDirectory(OperationResponse operationResponse) {
+    executor.submit(() -> {
+      var envName = operationResponse.getEnvironmentName();
+      if (operationResponse.getStatus() == 1)
+        LOG.info("env {} is a new environment", envName);
+      var res = createOrUpdateSPDirectory(operationResponse);
+      LOG.info("sidecar ops completed with following response {}", res);
+    });
+  }
 
-    //TODO 1. remove manual thread handling 2. replace hard coded time with pod ready status
-    public void asyncCreateOrUpdateSPDirectory(OperationResponse operationResponse) {
-        executor.submit(() -> {
-            var envName = operationResponse.getEnvironmentName();
-            if (operationResponse.getStatus() == 1)
-                LOG.info("env {} is a new environment", envName);
-            var res = createOrUpdateSPDirectory(operationResponse);
-            LOG.info("sidecar ops completed with following response {}", res);
-        });
-    }
 
+  public Uni<String> triggerSyncAsync(Object syncConfig, Environment environment) {
 
-    public Uni<String> triggerSyncAsync(Object syncConfig,Environment environment){
+    return Uni.createFrom()
+      .item(() -> k8sOperator.environmentSidecarUrl(environment))
+      .runSubscriptionOn(Infrastructure.getDefaultExecutor())
+      .map(url -> triggerSync(url, syncConfig, environment)).onFailure()
+      .recoverWithItem(throwable -> {
+        LOG.error("sync operation failed due to {}", throwable.getMessage());
+        return new JsonObject().put("status", "failed to communicate due to " + throwable.getMessage()).encodePrettily();
+      });
+  }
 
-      return Uni.createFrom()
-        .item(() -> k8sOperator.environmentSidecarUrl(environment))
-        .runSubscriptionOn(Infrastructure.getDefaultExecutor())
-        .map(url-> triggerSync(url,syncConfig,environment)).onFailure()
-        .recoverWithItem(throwable-> {
-          LOG.error("sync operation failed due to {}",throwable.getMessage());
-          return new JsonObject().put("status","failed to communicate due to "+throwable.getMessage()).encodePrettily();
-        });
-    }
-    @SneakyThrows
-    public String triggerSync(String sidecarUrl, Object syncConfig,Environment environment){
-
-      sidecarUrl = sidecarUrl.replace("tcp", "http");
-      LOG.debug("sidecar url {} syncConfig details {}", sidecarUrl, syncConfig);
-      var sideCarUrlPart = sidecarUrl.split(":");
-      var host = "http://".concat(sideCarUrlPart[1].replace("//", ""));
-      var port = sideCarUrlPart[2];
-      var requestUri = host.concat(":").concat(port).concat("/api/sync");
-      LOG.info("sidecar env {} url, {}", environment, requestUri);
-
-      waitForReadiness(environment,15);
-
-      return  client.requestAbs(HttpMethod.POST, requestUri)
-        .sendJson(syncConfig)
-        .map(bufferHttpResponse -> {
-          var output=bufferHttpResponse.bodyAsString();
-          LOG.debug("bufferHttpResponse.bodyAsString() is {}",output);
-          return output;
-        })
-        .onFailure()
-        .retry()
-        .withBackOff(Duration.ofSeconds(2), Duration.ofSeconds(4))
-        .atMost(30).onFailure()
-        .recoverWithItem(e -> new JsonObject().put("status","failed to communicate due to "+e.getMessage()).encodePrettily())
-        .subscribeAsCompletionStage().get();
-    }
+  @SneakyThrows
+  public String triggerSync(String sidecarUrl, Object syncConfig, Environment environment) {
+
+    sidecarUrl = sidecarUrl.replace("tcp", "http");
+    LOG.debug("sidecar url {} syncConfig details {}", sidecarUrl, syncConfig);
+    var sideCarUrlPart = sidecarUrl.split(":");
+    var host = "http://".concat(sideCarUrlPart[1].replace("//", ""));
+    var port = sideCarUrlPart[2];
+    var requestUri = host.concat(":").concat(port).concat("/api/sync");
+    LOG.info("sidecar env {} url, {}", environment, requestUri);
+
+    waitForReadiness(environment, 15);
+
+    return client.requestAbs(HttpMethod.POST, requestUri)
+      .sendJson(syncConfig)
+      .map(bufferHttpResponse -> {
+        var output = bufferHttpResponse.bodyAsString();
+        LOG.debug("bufferHttpResponse.bodyAsString() is {}", output);
+        return output;
+      })
+      .onFailure()
+      .retry()
+      .withBackOff(Duration.ofSeconds(2), Duration.ofSeconds(4))
+      .atMost(30).onFailure()
+      .recoverWithItem(e -> new JsonObject().put("status", "failed to communicate due to " + e.getMessage()).encodePrettily())
+      .subscribeAsCompletionStage().get();
+  }
 
-    @SneakyThrows
-    //TODO break into multiple methods
-    private OperationResponse createOrUpdateSPDirectory(OperationResponse operationResponse) {
-        var sideCarUrl = operationResponse.getSideCarServiceUrl().replace("tcp", "http");
-        var environment = operationResponse.getEnvironment();
-        LOG.debug("sidecar url {} invoked with the following details {}", sideCarUrl, environment);
-        environment.setOperationPerformed(true);
-        var sideCarUrlPart = sideCarUrl.split(":");
-        var host = "http://".concat(sideCarUrlPart[1].replace("//", ""));
-        var port = sideCarUrlPart[2];
-
-        MultipartForm form = MultipartForm.create()
-                .textFileUpload("spa", operationResponse.spaName(), operationResponse.filePath().toAbsolutePath()
-                        .toString(), "application/zip"
-                );
-
-        var responseOnFailure = OperationResponse.builder().environment(environment)
-                .sideCarServiceUrl(operationResponse.getSideCarServiceUrl()).status(0)
-                .originatedFrom(this.getClass().toString());
-
-        var requestUri = host.concat(":").concat(port).concat("/api/upload");
-        LOG.info("sidecar env {} url, {}", operationResponse.getEnvironmentName(), requestUri);
-
-      waitForReadiness(operationResponse.getEnvironment());
-
-      var opResp = client.requestAbs(HttpMethod.POST, requestUri).sendMultipartForm(form)
-                .map(item -> apply(responseOnFailure, item))
-                .onFailure()
-                .retry()
-                .withBackOff(Duration.ofSeconds(2), Duration.ofSeconds(4))
-                .atMost(30)
-                .onFailure()
-                .recoverWithItem(e -> fallbackResponse(responseOnFailure, e))
-                .subscribeAsCompletionStage()
-                .get();
-
-        eventManager.queue(
-                EventStructure.builder()
-                        .websiteName(opResp.getEnvironment().getWebsiteName())
-                        .environmentName(opResp.getEnvironment().getName())
-                        .uuid(operationResponse.getEnvironment().getTraceID())
-                        .state(opResp.getErrorMessage() == null ?
-                                "spa deployment ops performed" : "spa deployment ops failed")
-                        .spaName(operationResponse.getSpaName())
-                        .build());
-
-        return opResp;
-    }
+  @SneakyThrows
+  //TODO break into multiple methods
+  private OperationResponse createOrUpdateSPDirectory(OperationResponse operationResponse) {
+    var sideCarUrl = operationResponse.getSideCarServiceUrl().replace("tcp", "http");
+    var environment = operationResponse.getEnvironment();
+    LOG.debug("sidecar url {} invoked with the following details {}", sideCarUrl, environment);
+    environment.setOperationPerformed(true);
+    var sideCarUrlPart = sideCarUrl.split(":");
+    var host = "http://".concat(sideCarUrlPart[1].replace("//", ""));
+    var port = sideCarUrlPart[2];
+
+    MultipartForm form = MultipartForm.create()
+      .textFileUpload("spa", operationResponse.spaName(), operationResponse.filePath().toAbsolutePath()
+        .toString(), "application/zip"
+      );
+
+    var responseOnFailure = OperationResponse.builder().environment(environment)
+      .sideCarServiceUrl(operationResponse.getSideCarServiceUrl()).status(0)
+      .originatedFrom(this.getClass().toString());
+
+    var requestUri = host.concat(":").concat(port).concat("/api/upload");
+    LOG.info("sidecar env {} url, {}", operationResponse.getEnvironmentName(), requestUri);
+
+    waitForReadiness(operationResponse.getEnvironment());
+
+    var opResp = client.requestAbs(HttpMethod.POST, requestUri).sendMultipartForm(form)
+      .map(item -> apply(responseOnFailure, item))
+      .onFailure()
+      .retry()
+      .withBackOff(Duration.ofSeconds(2), Duration.ofSeconds(4))
+      .atMost(30)
+      .onFailure()
+      .recoverWithItem(e -> fallbackResponse(responseOnFailure, e))
+      .subscribeAsCompletionStage()
+      .get();
+
+    eventManager.queue(
+      EventStructure.builder()
+        .websiteName(opResp.getEnvironment().getWebsiteName())
+        .environmentName(opResp.getEnvironment().getName())
+        .uuid(operationResponse.getEnvironment().getTraceID())
+        .state(opResp.getErrorMessage() == null ?
+          "spa deployment ops performed" : "spa deployment ops failed")
+        .spaName(operationResponse.getSpaName())
+        .build());
+
+    return opResp;
+  }
 
-    private void waitForReadiness(Environment env) throws InterruptedException {
-      waitForReadiness(env,150);
-    }
+  private void waitForReadiness(Environment env) throws InterruptedException {
+    waitForReadiness(env, 150);
+  }
 
-    private void waitForReadiness(Environment env, int threshold) throws InterruptedException {
-      int attempt = 0;
-      while(!k8sOperator.isEnvironmentAvailable(env)){
-        if(attempt==0)
-          LOG.info("waiting for readiness of {}.{} ",env.getName(),env.getWebsiteName());
-        Thread.sleep(4000);
-        if(attempt>threshold){
-          LOG.warn("environment {}.{} still not ready, releasing the block to prevent from infinite looping "
-            ,env.getName(),env.getWebsiteName());
-          break;
-        }
-        attempt++;
+  private void waitForReadiness(Environment env, int threshold) throws InterruptedException {
+    int attempt = 0;
+    while (!k8sOperator.isEnvironmentAvailable(env)) {
+      if (attempt == 0)
+        LOG.info("waiting for readiness of {}.{} ", env.getName(), env.getWebsiteName());
+      Thread.sleep(4000);
+      if (attempt > threshold) {
+        LOG.warn("environment {}.{} still not ready, releasing the block to prevent from infinite looping "
+          , env.getName(), env.getWebsiteName());
+        break;
       }
-    LOG.info("environment {}.{} is ready, total no retry attempt is {}",env.getName(),env.getWebsiteName(),attempt);
+      attempt++;
+    }
+    LOG.info("environment {}.{} is ready, total no retry attempt is {}", env.getName(), env.getWebsiteName(), attempt);
   }
 
   private OperationResponse fallbackResponse(OperationResponse.OperationResponseBuilder responseOnFailure, Throwable e) {
-        LOG.error("sidecar upload ops failed due to {}", e.getMessage());
-        return responseOnFailure.errorMessage(e.getMessage()).build();
-    }
+    LOG.error("sidecar upload ops failed due to {}", e.getMessage());
+    return responseOnFailure.errorMessage(e.getMessage()).build();
+  }
 
-    private OperationResponse apply(OperationResponse.OperationResponseBuilder responseOnFailure,
-                                    HttpResponse<Buffer> item) {
-        var responseFromSidecar = item.bodyAsJson(OperationResponse.class);
-        if (Objects.isNull(responseFromSidecar))
-            return responseOnFailure.errorMessage("status code: "
-                    .concat(Integer.toString(item.statusCode()))
-                    .concat(" message: ")
-                    .concat(item.statusMessage())).build();
-        LOG.debug("sidecar response if  {}", responseFromSidecar);
-        return responseFromSidecar;
-    }
+  private OperationResponse apply(OperationResponse.OperationResponseBuilder responseOnFailure,
+                                  HttpResponse<Buffer> item) {
+    var responseFromSidecar = item.bodyAsJson(OperationResponse.class);
+    if (Objects.isNull(responseFromSidecar))
+      return responseOnFailure.errorMessage("status code: "
+        .concat(Integer.toString(item.statusCode()))
+        .concat(" message: ")
+        .concat(item.statusMessage())).build();
+    LOG.debug("sidecar response if  {}", responseFromSidecar);
+    return responseFromSidecar;
+  }
 
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/service/k8s/SpashipManagedResourceWatcher.java b/packages/operator/src/main/java/io/spaship/operator/service/k8s/SpashipManagedResourceWatcher.java
index cb6f2b66..6be9127b 100644
--- a/packages/operator/src/main/java/io/spaship/operator/service/k8s/SpashipManagedResourceWatcher.java
+++ b/packages/operator/src/main/java/io/spaship/operator/service/k8s/SpashipManagedResourceWatcher.java
@@ -20,72 +20,72 @@ import java.util.Map;
 @ApplicationScoped
 public class SpashipManagedResourceWatcher {
 
-    private final KubernetesClient kubernetesClient;
-    private final String nameSpace;
-    private final Map<String,String> filter = Map.of("managedBy","spaship");
-    private static final Logger LOG = LoggerFactory.getLogger(SpashipManagedResourceWatcher.class);
+  private static final Logger LOG = LoggerFactory.getLogger(SpashipManagedResourceWatcher.class);
+  private final KubernetesClient kubernetesClient;
+  private final String nameSpace;
+  private final Map<String, String> filter = Map.of("managedBy", "spaship");
 
-    public SpashipManagedResourceWatcher(KubernetesClient kubernetesClient, @Named("namespace") String nameSpace) {
-        this.kubernetesClient = kubernetesClient;
-        this.nameSpace = nameSpace;
-    }
+  public SpashipManagedResourceWatcher(KubernetesClient kubernetesClient, @Named("namespace") String nameSpace) {
+    this.kubernetesClient = kubernetesClient;
+    this.nameSpace = nameSpace;
+  }
 
-    void onStartup(@Observes StartupEvent startupEvent){
+  void onStartup(@Observes StartupEvent startupEvent) {
 
-      var watcherEnabled=ConfigProvider.getConfig().getValue("watcher.enabled", Boolean.class);
-      if(Boolean.FALSE.equals(watcherEnabled))
-        return;
-      podWatcher(nameSpace,filter);
-      serviceWatcher(nameSpace,filter);
-      routeWatcher(nameSpace,filter);
+    var watcherEnabled = ConfigProvider.getConfig().getValue("watcher.enabled", Boolean.class);
+    if (Boolean.FALSE.equals(watcherEnabled))
+      return;
+    podWatcher(nameSpace, filter);
+    serviceWatcher(nameSpace, filter);
+    routeWatcher(nameSpace, filter);
 
-    }
+  }
 
-    private void routeWatcher(String nameSpace,Map<String,String> filter) {
-        ((OpenShiftClient)kubernetesClient).routes()
-                .inNamespace(nameSpace).withLabels(filter).watch(new Watcher<Route>() {
-            @Override
-            public void eventReceived(Action action, Route resource) {
-              LOG.debug("route eventReceived on resource {} , action {}",action.name(),
-                resource.getMetadata().getName());
-            }
+  private void routeWatcher(String nameSpace, Map<String, String> filter) {
+    ((OpenShiftClient) kubernetesClient).routes()
+      .inNamespace(nameSpace).withLabels(filter).watch(new Watcher<Route>() {
+        @Override
+        public void eventReceived(Action action, Route resource) {
+          LOG.debug("route eventReceived on resource {} , action {}", action.name(),
+            resource.getMetadata().getName());
+        }
 
-            @Override
-            public void onClose(WatcherException cause) {
-              LOG.debug("route onClose exception is {}",cause.asClientException().getMessage());
+        @Override
+        public void onClose(WatcherException cause) {
+          LOG.debug("route onClose exception is {}", cause.asClientException().getMessage());
 
-            }
-        });
-    }
+        }
+      });
+  }
 
-    private void serviceWatcher(String nameSpace,Map<String,String> filter) {
-        kubernetesClient.services().inNamespace(nameSpace)
-                .withLabels(filter).watch(new Watcher<Service>() {
-            @Override
-            public void eventReceived(Action action, Service resource) {
-              LOG.debug("service eventReceived on resource {} , action {}",action.name(),
-                resource.getMetadata().getName());
-            }
+  private void serviceWatcher(String nameSpace, Map<String, String> filter) {
+    kubernetesClient.services().inNamespace(nameSpace)
+      .withLabels(filter).watch(new Watcher<Service>() {
+        @Override
+        public void eventReceived(Action action, Service resource) {
+          LOG.debug("service eventReceived on resource {} , action {}", action.name(),
+            resource.getMetadata().getName());
+        }
 
-            @Override
-            public void onClose(WatcherException cause) {
-              LOG.debug("service onClose exception is {}",cause.asClientException().getMessage());
-            }
-        });
-    }
+        @Override
+        public void onClose(WatcherException cause) {
+          LOG.debug("service onClose exception is {}", cause.asClientException().getMessage());
+        }
+      });
+  }
 
-    private void podWatcher(String nameSpace,Map<String,String> filter) {
-        kubernetesClient.pods().inNamespace(nameSpace)
-                .withLabels(filter).watch(new Watcher<Pod>() {
-            @Override
-            public void eventReceived(Action action, Pod resource) {
-              LOG.debug("POD eventReceived on resource {} , action {}",action.name(),resource.getMetadata().getName());
-            }
+  private void podWatcher(String nameSpace, Map<String, String> filter) {
+    kubernetesClient.pods().inNamespace(nameSpace)
+      .withLabels(filter).watch(new Watcher<Pod>() {
+        @Override
+        public void eventReceived(Action action, Pod resource) {
+          LOG.debug("POD eventReceived on resource {} , action {}", action.name(), resource.getMetadata().getName());
+        }
 
-            @Override
-            public void onClose(WatcherException cause) {
-              LOG.debug("POD onClose exception is {}",cause.asClientException().getMessage());
-            }
-        });
-    }
+        @Override
+        public void onClose(WatcherException cause) {
+          LOG.debug("POD onClose exception is {}", cause.asClientException().getMessage());
+        }
+      });
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/Environment.java b/packages/operator/src/main/java/io/spaship/operator/type/Environment.java
index 46c88148..11b58898 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/Environment.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/Environment.java
@@ -5,168 +5,169 @@ import java.util.UUID;
 
 public class Environment {
 
-    private String name;
-    private String websiteName;
-    private UUID traceID;
-    private String nameSpace;
-    private boolean updateRestriction;
-    private Path zipFileLocation;
-    private String websiteVersion;
-    private String spaName;
-    private String spaContextPath;
-    private String branch;
-    private boolean excludeFromEnvironment; //to create or not to create :P
-    private boolean operationPerformed = false; // for flagging purpose, to know whether any k8s operation is performed
-    private String identification;
-
-
-    public Environment(String name, String websiteName, UUID traceID, String nameSpace, boolean updateRestriction,
-                       Path zipFileLocation, String websiteVersion, String spaName, String spaContextPath,
-                       String branch, boolean excludeFromEnvironment, boolean operationPerformed) {
-        this.name = replaceSpecialCharacters(name);
-        this.websiteName = websiteName;
-        this.traceID = traceID;
-        this.nameSpace = nameSpace;
-        this.updateRestriction = updateRestriction;
-        this.zipFileLocation = zipFileLocation;
-        this.websiteVersion = websiteVersion;
-        this.spaName = spaName;
-        this.spaContextPath = spaContextPath;
-        this.branch = branch;
-        this.excludeFromEnvironment = excludeFromEnvironment;
-        this.operationPerformed = operationPerformed;
-        this.identification = getWebsiteName().concat("-").concat(name);
-    }
-
-    public String getName() {
-        return replaceSpecialCharacters(this.name);
-    }
-
-    public void setName(String name) {
-        this.name = replaceSpecialCharacters(name);
-    }
-
-    private String replaceSpecialCharacters(String entry){
-      var refactoredVariable = entry.replace("_","-");
-      refactoredVariable = refactoredVariable.replace(".", "-");
-      refactoredVariable = refactoredVariable.replace("@","-");
-      refactoredVariable = refactoredVariable.replaceAll(" ", "");
-      return refactoredVariable;
-    }
-    public String getWebsiteName() {
-        this.websiteName = websiteName.replace(".", "-");
-        this.websiteName = websiteName.replace("_", "-");
-        return this.websiteName;
-    }
-
-    public void setWebsiteName(String websiteName) {
-        this.websiteName = websiteName;
-    }
-
-    public UUID getTraceID() {
-        return this.traceID;
-    }
-
-    public void setTraceID(UUID traceID) {
-        this.traceID = traceID;
-    }
-
-    public String getNameSpace() {
-        return this.nameSpace;
-    }
-
-    public void setNameSpace(String nameSpace) {
-        this.nameSpace = nameSpace;
-    }
-
-    public boolean isUpdateRestriction() {
-        return this.updateRestriction;
-    }
-
-    public void setUpdateRestriction(boolean updateRestriction) {
-        this.updateRestriction = updateRestriction;
-    }
-
-    public Path getZipFileLocation() {
-        return this.zipFileLocation;
-    }
-
-    public void setZipFileLocation(Path zipFileLocation) {
-        this.zipFileLocation = zipFileLocation;
-    }
-
-    public String getWebsiteVersion() {
-        return this.websiteVersion;
-    }
-
-    public void setWebsiteVersion(String websiteVersion) {
-        this.websiteVersion = websiteVersion;
-    }
-
-    public String getSpaName() {
-        return this.spaName;
-    }
-
-    public void setSpaName(String spaName) {
-        this.spaName = spaName;
-    }
-
-    public String getSpaContextPath() {
-        return this.spaContextPath;
-    }
-
-    public void setSpaContextPath(String spaContextPath) {
-        this.spaContextPath = spaContextPath;
-    }
-
-    public String getBranch() {
-        return this.branch;
-    }
-
-    public void setBranch(String branch) {
-        this.branch = branch;
-    }
-
-    public boolean isExcludeFromEnvironment() {
-        return this.excludeFromEnvironment;
-    }
-
-    public void setExcludeFromEnvironment(boolean excludeFromEnvironment) {
-        this.excludeFromEnvironment = excludeFromEnvironment;
-    }
-
-    public boolean isOperationPerformed() {
-        return this.operationPerformed;
-    }
-
-    public void setOperationPerformed(boolean operationPerformed) {
-        this.operationPerformed = operationPerformed;
-    }
-
-    public String getIdentification() {
-        return this.identification;
-    }
-
-    public void setIdentification(String identification) {
-        this.identification = identification;
-    }
-
-    @Override
-    public String toString() {
-        return "{"
-                + "\"name\":\"" + name + "\""
-                + ", \"websiteName\":\"" + websiteName + "\""
-                + ", \"traceID\":" + traceID
-                + ", \"nameSpace\":\"" + nameSpace + "\""
-                + ", \"updateRestriction\":\"" + updateRestriction + "\""
-                + ", \"zipFileLocation\":" + zipFileLocation
-                + ", \"websiteVersion\":\"" + websiteVersion + "\""
-                + ", \"spaName\":\"" + spaName + "\""
-                + ", \"spaContextPath\":\"" + spaContextPath + "\""
-                + ", \"branch\":\"" + branch + "\""
-                + ", \"excludeFromEnvironment\":\"" + excludeFromEnvironment + "\""
-                + ", \"operationPerformed\":\"" + operationPerformed + "\""
-                + ", \"identification\":\"" + identification + "\""
-                + "}";
-    }
+  private String name;
+  private String websiteName;
+  private UUID traceID;
+  private String nameSpace;
+  private boolean updateRestriction;
+  private Path zipFileLocation;
+  private String websiteVersion;
+  private String spaName;
+  private String spaContextPath;
+  private String branch;
+  private boolean excludeFromEnvironment; //to create or not to create :P
+  private boolean operationPerformed = false; // for flagging purpose, to know whether any k8s operation is performed
+  private String identification;
+
+
+  public Environment(String name, String websiteName, UUID traceID, String nameSpace, boolean updateRestriction,
+                     Path zipFileLocation, String websiteVersion, String spaName, String spaContextPath,
+                     String branch, boolean excludeFromEnvironment, boolean operationPerformed) {
+    this.name = replaceSpecialCharacters(name);
+    this.websiteName = websiteName;
+    this.traceID = traceID;
+    this.nameSpace = nameSpace;
+    this.updateRestriction = updateRestriction;
+    this.zipFileLocation = zipFileLocation;
+    this.websiteVersion = websiteVersion;
+    this.spaName = spaName;
+    this.spaContextPath = spaContextPath;
+    this.branch = branch;
+    this.excludeFromEnvironment = excludeFromEnvironment;
+    this.operationPerformed = operationPerformed;
+    this.identification = getWebsiteName().concat("-").concat(name);
+  }
+
+  public String getName() {
+    return replaceSpecialCharacters(this.name);
+  }
+
+  public void setName(String name) {
+    this.name = replaceSpecialCharacters(name);
+  }
+
+  private String replaceSpecialCharacters(String entry) {
+    var refactoredVariable = entry.replace("_", "-");
+    refactoredVariable = refactoredVariable.replace(".", "-");
+    refactoredVariable = refactoredVariable.replace("@", "-");
+    refactoredVariable = refactoredVariable.replaceAll(" ", "");
+    return refactoredVariable;
+  }
+
+  public String getWebsiteName() {
+    this.websiteName = websiteName.replace(".", "-");
+    this.websiteName = websiteName.replace("_", "-");
+    return this.websiteName;
+  }
+
+  public void setWebsiteName(String websiteName) {
+    this.websiteName = websiteName;
+  }
+
+  public UUID getTraceID() {
+    return this.traceID;
+  }
+
+  public void setTraceID(UUID traceID) {
+    this.traceID = traceID;
+  }
+
+  public String getNameSpace() {
+    return this.nameSpace;
+  }
+
+  public void setNameSpace(String nameSpace) {
+    this.nameSpace = nameSpace;
+  }
+
+  public boolean isUpdateRestriction() {
+    return this.updateRestriction;
+  }
+
+  public void setUpdateRestriction(boolean updateRestriction) {
+    this.updateRestriction = updateRestriction;
+  }
+
+  public Path getZipFileLocation() {
+    return this.zipFileLocation;
+  }
+
+  public void setZipFileLocation(Path zipFileLocation) {
+    this.zipFileLocation = zipFileLocation;
+  }
+
+  public String getWebsiteVersion() {
+    return this.websiteVersion;
+  }
+
+  public void setWebsiteVersion(String websiteVersion) {
+    this.websiteVersion = websiteVersion;
+  }
+
+  public String getSpaName() {
+    return this.spaName;
+  }
+
+  public void setSpaName(String spaName) {
+    this.spaName = spaName;
+  }
+
+  public String getSpaContextPath() {
+    return this.spaContextPath;
+  }
+
+  public void setSpaContextPath(String spaContextPath) {
+    this.spaContextPath = spaContextPath;
+  }
+
+  public String getBranch() {
+    return this.branch;
+  }
+
+  public void setBranch(String branch) {
+    this.branch = branch;
+  }
+
+  public boolean isExcludeFromEnvironment() {
+    return this.excludeFromEnvironment;
+  }
+
+  public void setExcludeFromEnvironment(boolean excludeFromEnvironment) {
+    this.excludeFromEnvironment = excludeFromEnvironment;
+  }
+
+  public boolean isOperationPerformed() {
+    return this.operationPerformed;
+  }
+
+  public void setOperationPerformed(boolean operationPerformed) {
+    this.operationPerformed = operationPerformed;
+  }
+
+  public String getIdentification() {
+    return this.identification;
+  }
+
+  public void setIdentification(String identification) {
+    this.identification = identification;
+  }
+
+  @Override
+  public String toString() {
+    return "{"
+      + "\"name\":\"" + name + "\""
+      + ", \"websiteName\":\"" + websiteName + "\""
+      + ", \"traceID\":" + traceID
+      + ", \"nameSpace\":\"" + nameSpace + "\""
+      + ", \"updateRestriction\":\"" + updateRestriction + "\""
+      + ", \"zipFileLocation\":" + zipFileLocation
+      + ", \"websiteVersion\":\"" + websiteVersion + "\""
+      + ", \"spaName\":\"" + spaName + "\""
+      + ", \"spaContextPath\":\"" + spaContextPath + "\""
+      + ", \"branch\":\"" + branch + "\""
+      + ", \"excludeFromEnvironment\":\"" + excludeFromEnvironment + "\""
+      + ", \"operationPerformed\":\"" + operationPerformed + "\""
+      + ", \"identification\":\"" + identification + "\""
+      + "}";
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/ErrorResponse.java b/packages/operator/src/main/java/io/spaship/operator/type/ErrorResponse.java
index a1f37744..00aabf76 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/ErrorResponse.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/ErrorResponse.java
@@ -10,9 +10,9 @@ import lombok.Setter;
 @AllArgsConstructor
 @NoArgsConstructor
 public class ErrorResponse {
-    String errorMessage;
-    String errorCode;
-    String documentationLink;
+  String errorMessage;
+  String errorCode;
+  String documentationLink;
 
   @Override
   public String toString() {
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/EventStructure.java b/packages/operator/src/main/java/io/spaship/operator/type/EventStructure.java
index a3c7a1b9..b0bbf1c8 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/EventStructure.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/EventStructure.java
@@ -3,57 +3,57 @@ package io.spaship.operator.type;
 import java.time.LocalDateTime;
 
 public class EventStructure {
-    private String uuid;
-    private String websiteName;
-    private String environmentName;
-    private String state;
-    private String spaName;
-    private final LocalDateTime dateTime;
-
-    EventStructure(String uuid, String websiteName, String environmentName, String state,String spaName) {
-        this.uuid = uuid;
-        this.websiteName = websiteName;
-        this.environmentName = environmentName;
-        this.state = state;
-        this.spaName = spaName;
-        this.dateTime = LocalDateTime.now();
-    }
+  private final LocalDateTime dateTime;
+  private String uuid;
+  private String websiteName;
+  private String environmentName;
+  private String state;
+  private String spaName;
+
+  EventStructure(String uuid, String websiteName, String environmentName, String state, String spaName) {
+    this.uuid = uuid;
+    this.websiteName = websiteName;
+    this.environmentName = environmentName;
+    this.state = state;
+    this.spaName = spaName;
+    this.dateTime = LocalDateTime.now();
+  }
 
-    public static EventStructureBuilder builder() {
-        return new EventStructureBuilder();
-    }
+  public static EventStructureBuilder builder() {
+    return new EventStructureBuilder();
+  }
 
-    public String getUuid() {
-        return this.uuid;
-    }
+  public String getUuid() {
+    return this.uuid;
+  }
 
-    public void setUuid(java.util.UUID uuid) {
-        this.uuid = uuid.toString();
-    }
+  public void setUuid(java.util.UUID uuid) {
+    this.uuid = uuid.toString();
+  }
 
-    public String getWebsiteName() {
-        return this.websiteName;
-    }
+  public String getWebsiteName() {
+    return this.websiteName;
+  }
 
-    public void setWebsiteName(String websiteName) {
-        this.websiteName = websiteName;
-    }
+  public void setWebsiteName(String websiteName) {
+    this.websiteName = websiteName;
+  }
 
-    public String getEnvironmentName() {
-        return this.environmentName;
-    }
+  public String getEnvironmentName() {
+    return this.environmentName;
+  }
 
-    public void setEnvironmentName(String environmentName) {
-        this.environmentName = environmentName;
-    }
+  public void setEnvironmentName(String environmentName) {
+    this.environmentName = environmentName;
+  }
 
-    public String getState() {
-        return this.state;
-    }
+  public String getState() {
+    return this.state;
+  }
 
-    public void setState(String state) {
-        this.state = state;
-    }
+  public void setState(String state) {
+    this.state = state;
+  }
 
   public String getSpaName() {
     return spaName;
@@ -80,53 +80,53 @@ public class EventStructure {
   }
 
   public static class EventStructureBuilder {
-        private String uuid;
-        private String websiteName;
-        private String environmentName;
-        private String state;
-        private String spaName;
-
-        EventStructureBuilder() {
-        }
-
-        public EventStructureBuilder uuid(java.util.UUID uuid) {
-            this.uuid = uuid.toString();
-            return this;
-        }
-
-        public EventStructureBuilder websiteName(String websiteName) {
-            this.websiteName = websiteName;
-            return this;
-        }
-
-        public EventStructureBuilder environmentName(String environmentName) {
-            this.environmentName = environmentName;
-            return this;
-        }
-
-        public EventStructureBuilder state(String state) {
-            this.state = state;
-            return this;
-        }
-
-        public EventStructureBuilder spaName(String spaName) {
-          this.spaName = spaName;
-          return this;
-        }
-
-        public EventStructure build() {
-            return new EventStructure(uuid, websiteName, environmentName, state,spaName);
-        }
-
-        @Override
-        public String toString() {
-          return "{"
-            + "\"uuid\":\"" + uuid + "\""
-            + ", \"websiteName\":\"" + websiteName + "\""
-            + ", \"environmentName\":\"" + environmentName + "\""
-            + ", \"state\":\"" + state + "\""
-            + ", \"spaName\":\"" + spaName + "\""
-            + "}";
-        }
+    private String uuid;
+    private String websiteName;
+    private String environmentName;
+    private String state;
+    private String spaName;
+
+    EventStructureBuilder() {
+    }
+
+    public EventStructureBuilder uuid(java.util.UUID uuid) {
+      this.uuid = uuid.toString();
+      return this;
+    }
+
+    public EventStructureBuilder websiteName(String websiteName) {
+      this.websiteName = websiteName;
+      return this;
+    }
+
+    public EventStructureBuilder environmentName(String environmentName) {
+      this.environmentName = environmentName;
+      return this;
+    }
+
+    public EventStructureBuilder state(String state) {
+      this.state = state;
+      return this;
+    }
+
+    public EventStructureBuilder spaName(String spaName) {
+      this.spaName = spaName;
+      return this;
+    }
+
+    public EventStructure build() {
+      return new EventStructure(uuid, websiteName, environmentName, state, spaName);
+    }
+
+    @Override
+    public String toString() {
+      return "{"
+        + "\"uuid\":\"" + uuid + "\""
+        + ", \"websiteName\":\"" + websiteName + "\""
+        + ", \"environmentName\":\"" + environmentName + "\""
+        + ", \"state\":\"" + state + "\""
+        + ", \"spaName\":\"" + spaName + "\""
+        + "}";
+    }
   }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/FormData.java b/packages/operator/src/main/java/io/spaship/operator/type/FormData.java
index 04793326..022d9908 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/FormData.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/FormData.java
@@ -14,50 +14,50 @@ public class FormData {
 
   private static final String FILE_NOT_FOUND_MESSAGE = "file not received";
 
-    @RestForm
-    @PartType(MediaType.TEXT_PLAIN)
-    public String description;
-
-    @RestForm
-    @PartType(MediaType.TEXT_PLAIN)
-    public String website;
-
-    @RestForm("spa")
-    public FileUpload file;
-
-    public String fileName() {
-        validateFileUpload();
-        return this.file.fileName();
-    }
-
-    public Long fileSize() {
-        validateFileUpload();
-        return this.file.size();
-    }
-
-    public String fileLocation() {
-        validateFileUpload();
-        return this.file.uploadedFile().toString();
-    }
-
-    public URI getFileURI() {
-        validateFileUpload();
-        return this.file.uploadedFile().toUri();
-    }
-
-    public Path getfilePath() {
-        validateFileUpload();
-        return this.file.uploadedFile().toAbsolutePath();
-    }
-
-    public boolean isFileValid(){
-      validateFileUpload();
-      Objects.requireNonNull(file.contentType(),"no content found!");
-      return this.file.contentType().contains("zip");
-    }
-
-    private void validateFileUpload(){
-      Objects.requireNonNull(file,FILE_NOT_FOUND_MESSAGE);
-    }
+  @RestForm
+  @PartType(MediaType.TEXT_PLAIN)
+  public String description;
+
+  @RestForm
+  @PartType(MediaType.TEXT_PLAIN)
+  public String website;
+
+  @RestForm("spa")
+  public FileUpload file;
+
+  public String fileName() {
+    validateFileUpload();
+    return this.file.fileName();
+  }
+
+  public Long fileSize() {
+    validateFileUpload();
+    return this.file.size();
+  }
+
+  public String fileLocation() {
+    validateFileUpload();
+    return this.file.uploadedFile().toString();
+  }
+
+  public URI getFileURI() {
+    validateFileUpload();
+    return this.file.uploadedFile().toUri();
+  }
+
+  public Path getfilePath() {
+    validateFileUpload();
+    return this.file.uploadedFile().toAbsolutePath();
+  }
+
+  public boolean isFileValid() {
+    validateFileUpload();
+    Objects.requireNonNull(file.contentType(), "no content found!");
+    return this.file.contentType().contains("zip");
+  }
+
+  private void validateFileUpload() {
+    Objects.requireNonNull(file, FILE_NOT_FOUND_MESSAGE);
+  }
 
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/OperationResponse.java b/packages/operator/src/main/java/io/spaship/operator/type/OperationResponse.java
index 6f47795f..ab8568c4 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/OperationResponse.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/OperationResponse.java
@@ -6,160 +6,160 @@ import java.util.UUID;
 
 public class OperationResponse {
 
-    Environment environment;
-    String sideCarServiceUrl;
-    int status; //[-1] : restricted, [0] : skipped, [1] : created, [2] : modified, [3] : deleted
-    String message;
-    String errorMessage;
-    String originatedFrom;
-
-    OperationResponse(Environment environment, String sideCarServiceUrl, int status, String message, String errorMessage, String originatedFrom) {
-        this.environment = environment;
-        this.sideCarServiceUrl = sideCarServiceUrl;
-        this.status = status;
-        this.message = message;
-        this.errorMessage = errorMessage;
-        this.originatedFrom = originatedFrom;
+  Environment environment;
+  String sideCarServiceUrl;
+  int status; //[-1] : restricted, [0] : skipped, [1] : created, [2] : modified, [3] : deleted
+  String message;
+  String errorMessage;
+  String originatedFrom;
+
+  OperationResponse(Environment environment, String sideCarServiceUrl, int status, String message, String errorMessage, String originatedFrom) {
+    this.environment = environment;
+    this.sideCarServiceUrl = sideCarServiceUrl;
+    this.status = status;
+    this.message = message;
+    this.errorMessage = errorMessage;
+    this.originatedFrom = originatedFrom;
+  }
+
+  public static OperationResponseBuilder builder() {
+    return new OperationResponseBuilder();
+  }
+
+  public Environment getEnvironment() {
+    return this.environment;
+  }
+
+  public String getSpaName() {
+    if (Objects.isNull(this.environment))
+      return "NF";
+    return this.environment.getSpaName();
+  }
+
+  public String getEnvironmentName() {
+    return environment.getName();
+  }
+
+  public String getSideCarServiceUrl() {
+    return this.sideCarServiceUrl;
+  }
+
+  public int getStatus() {
+    return this.status;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public String getErrorMessage() {
+    return this.errorMessage;
+  }
+
+  public String getOriginatedFrom() {
+    return this.originatedFrom;
+  }
+
+  @Override
+  public String toString() {
+    return "{"
+      + "\"environment\":" + environment
+      + ", \"sideCarServiceUrl\":\"" + sideCarServiceUrl + "\""
+      + ", \"status\":\"" + status + "\""
+      + ", \"message\":\"" + message + "\""
+      + ", \"errorMessage\":\"" + errorMessage + "\""
+      + ", \"originatedFrom\":" + originatedFrom
+      + "}";
+  }
+
+  public Path filePath() {
+    Objects.requireNonNull(environment, "environment object is null");
+    Objects.requireNonNull(environment.getZipFileLocation(), "zip file location not found");
+    return environment.getZipFileLocation();
+  }
+
+  public UUID traceId() {
+    Objects.requireNonNull(environment, "environment object is null");
+    Objects.requireNonNull(environment.getTraceID(), "trace-id not found");
+    return environment.getTraceID();
+  }
+
+  public String spaName() {
+    Objects.requireNonNull(environment, "environment object is null");
+    Objects.requireNonNull(environment.getSpaName(), "SPA name not found");
+    return environment.getSpaName();
+  }
+
+  public static class OperationResponseBuilder {
+    private Environment environment;
+    private String sideCarServiceUrl;
+    private int status;
+    private String message;
+    private String errorMessage;
+    private String originatedFrom;
+
+    OperationResponseBuilder() {
     }
 
-    public static OperationResponseBuilder builder() {
-        return new OperationResponseBuilder();
+    public OperationResponseBuilder environment(Environment environment) {
+      this.environment = environment;
+      return this;
     }
 
-    public Environment getEnvironment() {
-        return this.environment;
+    public OperationResponseBuilder sideCarServiceUrl(String sideCarServiceUrl) {
+      this.sideCarServiceUrl = sideCarServiceUrl;
+      return this;
     }
 
-    public String getSpaName(){
-      if(Objects.isNull(this.environment))
-        return "NF";
-      return this.environment.getSpaName();
+    public OperationResponseBuilder status(int status) {
+      this.status = status;
+      switch (status) {
+        case -1:
+          return message("restricted");
+        case 0:
+          return message("skipped");
+        case 1:
+          return message("created/accepted");
+        case 2:
+          return message("modified/ignored");
+        case 3:
+          return message("deleted");
+
+        default:
+          throw new IllegalStateException("Unexpected value: " + status);
+      }
     }
 
-    public String getEnvironmentName() {
-        return environment.getName();
+    public OperationResponseBuilder message(String message) {
+      this.message = message;
+      return this;
     }
 
-    public String getSideCarServiceUrl() {
-        return this.sideCarServiceUrl;
+    public OperationResponseBuilder errorMessage(String errorMessage) {
+      this.errorMessage = errorMessage;
+      return this;
     }
 
-    public int getStatus() {
-        return this.status;
+    public OperationResponseBuilder originatedFrom(String originatedFrom) {
+      this.originatedFrom = originatedFrom;
+      return this;
     }
 
-    public String getMessage() {
-        return this.message;
+    public OperationResponse build() {
+      return new OperationResponse(environment, sideCarServiceUrl, status, message, errorMessage, originatedFrom);
     }
 
-    public String getErrorMessage() {
-        return this.errorMessage;
-    }
-
-    public String getOriginatedFrom() {
-        return this.originatedFrom;
-    }
 
     @Override
     public String toString() {
-        return "{"
-                + "\"environment\":" + environment
-                + ", \"sideCarServiceUrl\":\"" + sideCarServiceUrl + "\""
-                + ", \"status\":\"" + status + "\""
-                + ", \"message\":\"" + message + "\""
-                + ", \"errorMessage\":\"" + errorMessage + "\""
-                + ", \"originatedFrom\":" + originatedFrom
-                + "}";
-    }
-
-    public Path filePath() {
-        Objects.requireNonNull(environment, "environment object is null");
-        Objects.requireNonNull(environment.getZipFileLocation(), "zip file location not found");
-        return environment.getZipFileLocation();
-    }
-
-    public UUID traceId() {
-        Objects.requireNonNull(environment, "environment object is null");
-        Objects.requireNonNull(environment.getTraceID(), "trace-id not found");
-        return environment.getTraceID();
-    }
-
-    public String spaName() {
-        Objects.requireNonNull(environment, "environment object is null");
-        Objects.requireNonNull(environment.getSpaName(), "SPA name not found");
-        return environment.getSpaName();
-    }
-
-    public static class OperationResponseBuilder {
-        private Environment environment;
-        private String sideCarServiceUrl;
-        private int status;
-        private String message;
-        private String errorMessage;
-        private String originatedFrom;
-
-        OperationResponseBuilder() {
-        }
-
-        public OperationResponseBuilder environment(Environment environment) {
-            this.environment = environment;
-            return this;
-        }
-
-        public OperationResponseBuilder sideCarServiceUrl(String sideCarServiceUrl) {
-            this.sideCarServiceUrl = sideCarServiceUrl;
-            return this;
-        }
-
-        public OperationResponseBuilder status(int status) {
-            this.status = status;
-            switch (status) {
-                case -1:
-                    return message("restricted");
-                case 0:
-                    return message("skipped");
-                case 1:
-                    return message("created/accepted");
-                case 2:
-                    return message("modified/ignored");
-                case 3:
-                    return message("deleted");
-
-                default:
-                    throw new IllegalStateException("Unexpected value: " + status);
-            }
-        }
-
-        public OperationResponseBuilder message(String message) {
-            this.message = message;
-            return this;
-        }
-
-        public OperationResponseBuilder errorMessage(String errorMessage) {
-            this.errorMessage = errorMessage;
-            return this;
-        }
-
-        public OperationResponseBuilder originatedFrom(String originatedFrom) {
-            this.originatedFrom = originatedFrom;
-            return this;
-        }
-
-        public OperationResponse build() {
-            return new OperationResponse(environment, sideCarServiceUrl, status, message, errorMessage, originatedFrom);
-        }
-
-
-        @Override
-        public String toString() {
-            return "{"
-                    + "\"environment\":" + environment
-                    + ", \"sideCarServiceUrl\":\"" + sideCarServiceUrl + "\""
-                    + ", \"status\":\"" + status + "\""
-                    + ", \"message\":\"" + message + "\""
-                    + ", \"errorMessage\":\"" + errorMessage + "\""
-                    + ", \"originatedFrom\":" + originatedFrom
-                    + "}";
-        }
+      return "{"
+        + "\"environment\":" + environment
+        + ", \"sideCarServiceUrl\":\"" + sideCarServiceUrl + "\""
+        + ", \"status\":\"" + status + "\""
+        + ", \"message\":\"" + message + "\""
+        + ", \"errorMessage\":\"" + errorMessage + "\""
+        + ", \"originatedFrom\":" + originatedFrom
+        + "}";
     }
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/type/SpashipMapping.java b/packages/operator/src/main/java/io/spaship/operator/type/SpashipMapping.java
index 83bb4f78..7fb283ce 100644
--- a/packages/operator/src/main/java/io/spaship/operator/type/SpashipMapping.java
+++ b/packages/operator/src/main/java/io/spaship/operator/type/SpashipMapping.java
@@ -12,107 +12,107 @@ import java.util.Objects;
  */
 public class SpashipMapping extends JsonObject {
 
-    // we dont need any constant because we know the property name matches with incoming json attributes
-    String websiteVersion;
-    String websiteName;
-    List<HashMap<String, Object>> environments;
-    //Name of the SPA
-    String name;
-    List<String> excludeFromEnvs;
-    String branch;
-    String contextPath;
-
-    SpashipMapping() {
-        super();
-    }
-
-    public SpashipMapping(String param) {
-        super(param);
-        init();
-    }
-
-    void init() {
-        setWebsiteVersion();
-        setWebsiteName();
-        setEnvironments();
-        setName();
-        setExcludeFromEnvs();
-        setBranch();
-        setContextPath();
-    }
-
-    public String getWebsiteVersion() {
-        return websiteVersion;
-    }
-
-    public void setWebsiteVersion() {
-        this.websiteVersion = this.getString("websiteVersion");
-    }
-
-    public String getWebsiteName() {
-      return websiteNameSanity(websiteName);
-    }
-
-    public void setWebsiteName() {
-        this.websiteName = websiteNameSanity(this.getString("websiteName"));
-    }
-
-    public List<HashMap<String, Object>> getEnvironments() {
-        return environments;
-    }
-
-    public void setEnvironments() {
-        this.environments = this.getJsonArray("environments").getList();
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName() {
-        this.name = this.getString("name");
-    }
-
-    public List<String> getExcludeFromEnvs() {
-        return excludeFromEnvs;
-    }
-
-    public void setExcludeFromEnvs() {
-      var array = this.getJsonArray("excludeFromEnvs");
-      this.excludeFromEnvs = Objects.isNull(array)? Collections.emptyList():array.getList();
-    }
-
-    public String getBranch() {
-        return branch;
-    }
-
-    public void setBranch() {
-        this.branch = this.getString("branch");
-    }
-
-    public String getContextPath() {
-        return contextPath;
-    }
-
-    public void setContextPath() {
-        this.contextPath = this.getString("mapping");
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return super.equals(o);
-    }
-
-    @Override
-    public int hashCode() {
-        return super.hashCode();
-    }
-
-    private String websiteNameSanity(String websiteName) {
-      var name = websiteName;
-      if (Objects.isNull(name) || name.isEmpty() || name.isBlank())
-        throw new NullPointerException("website name not found!");
-      name = name.replaceAll(" ", "");
-      return name;
-    }
+  // we dont need any constant because we know the property name matches with incoming json attributes
+  String websiteVersion;
+  String websiteName;
+  List<HashMap<String, Object>> environments;
+  //Name of the SPA
+  String name;
+  List<String> excludeFromEnvs;
+  String branch;
+  String contextPath;
+
+  SpashipMapping() {
+    super();
+  }
+
+  public SpashipMapping(String param) {
+    super(param);
+    init();
+  }
+
+  void init() {
+    setWebsiteVersion();
+    setWebsiteName();
+    setEnvironments();
+    setName();
+    setExcludeFromEnvs();
+    setBranch();
+    setContextPath();
+  }
+
+  public String getWebsiteVersion() {
+    return websiteVersion;
+  }
+
+  public void setWebsiteVersion() {
+    this.websiteVersion = this.getString("websiteVersion");
+  }
+
+  public String getWebsiteName() {
+    return websiteNameSanity(websiteName);
+  }
+
+  public void setWebsiteName() {
+    this.websiteName = websiteNameSanity(this.getString("websiteName"));
+  }
+
+  public List<HashMap<String, Object>> getEnvironments() {
+    return environments;
+  }
+
+  public void setEnvironments() {
+    this.environments = this.getJsonArray("environments").getList();
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName() {
+    this.name = this.getString("name");
+  }
+
+  public List<String> getExcludeFromEnvs() {
+    return excludeFromEnvs;
+  }
+
+  public void setExcludeFromEnvs() {
+    var array = this.getJsonArray("excludeFromEnvs");
+    this.excludeFromEnvs = Objects.isNull(array) ? Collections.emptyList() : array.getList();
+  }
+
+  public String getBranch() {
+    return branch;
+  }
+
+  public void setBranch() {
+    this.branch = this.getString("branch");
+  }
+
+  public String getContextPath() {
+    return contextPath;
+  }
+
+  public void setContextPath() {
+    this.contextPath = this.getString("mapping");
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    return super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return super.hashCode();
+  }
+
+  private String websiteNameSanity(String websiteName) {
+    var name = websiteName;
+    if (Objects.isNull(name) || name.isEmpty() || name.isBlank())
+      throw new NullPointerException("website name not found!");
+    name = name.replaceAll(" ", "");
+    return name;
+  }
 }
diff --git a/packages/operator/src/main/java/io/spaship/operator/util/ReUsableItems.java b/packages/operator/src/main/java/io/spaship/operator/util/ReUsableItems.java
index 88311836..4023c0d1 100644
--- a/packages/operator/src/main/java/io/spaship/operator/util/ReUsableItems.java
+++ b/packages/operator/src/main/java/io/spaship/operator/util/ReUsableItems.java
@@ -11,50 +11,50 @@ import java.util.Objects;
 import java.util.UUID;
 
 public class ReUsableItems {
-    private static final String SPASHIP_MAPPING_FILE = ".spaship";
-    private static final Logger LOG = LoggerFactory.getLogger(ReUsableItems.class);
+  private static final String SPASHIP_MAPPING_FILE = ".spaship";
+  private static final Logger LOG = LoggerFactory.getLogger(ReUsableItems.class);
 
 
-    private ReUsableItems() {
-    }
+  private ReUsableItems() {
+  }
 
-    @SneakyThrows
-    public static void blockFor(int timeInMs) {
-        Thread.sleep(timeInMs);
-    }
+  @SneakyThrows
+  public static void blockFor(int timeInMs) {
+    Thread.sleep(timeInMs);
+  }
 
 
-    public static String getSpashipMappingFileName() {
-        return SPASHIP_MAPPING_FILE;
-    }
+  public static String getSpashipMappingFileName() {
+    return SPASHIP_MAPPING_FILE;
+  }
 
 
-    //lock environment creation operation for same website
-    public static void enforceOpsLocking(Pair<String, UUID> blockDecisionFactors) {
-        while (blockCall(blockDecisionFactors)) {
-            LOG.debug("An environment creation/modification is in progress for this website {}",
-                    blockDecisionFactors.getValue0());
-            ReUsableItems.blockFor(800);
-        }
-        SharedRepository.enqueue(blockDecisionFactors.getValue0(),
-                new Pair<>(blockDecisionFactors.getValue1(), LocalDateTime.now()));
+  //lock environment creation operation for same website
+  public static void enforceOpsLocking(Pair<String, UUID> blockDecisionFactors) {
+    while (blockCall(blockDecisionFactors)) {
+      LOG.debug("An environment creation/modification is in progress for this website {}",
+        blockDecisionFactors.getValue0());
+      ReUsableItems.blockFor(800);
     }
-
-    public static void releaseLock(String environmentName) {
-        SharedRepository.dequeue(environmentName);
+    SharedRepository.enqueue(blockDecisionFactors.getValue0(),
+      new Pair<>(blockDecisionFactors.getValue1(), LocalDateTime.now()));
+  }
+
+  public static void releaseLock(String environmentName) {
+    SharedRepository.dequeue(environmentName);
+  }
+
+  static boolean blockCall(Pair<String, UUID> decisionFactors) {
+    String environmentId = decisionFactors.getValue0();
+    UUID traceId = decisionFactors.getValue1();
+    Pair<UUID, LocalDateTime> mapValue = SharedRepository.getEnvironmentLockMeta(environmentId);
+    if (Objects.isNull(mapValue)) {
+      LOG.warn("environmentLock not found!");
+      return false;
     }
+    LOG.debug("comparing {} with {}", decisionFactors, mapValue);
 
-    static boolean blockCall(Pair<String, UUID> decisionFactors) {
-        String environmentId = decisionFactors.getValue0();
-        UUID traceId = decisionFactors.getValue1();
-        Pair<UUID, LocalDateTime> mapValue = SharedRepository.getEnvironmentLockMeta(environmentId);
-        if (Objects.isNull(mapValue)) {
-            LOG.warn("environmentLock not found!");
-            return false;
-        }
-        LOG.debug("comparing {} with {}", decisionFactors, mapValue);
-
-        return !SharedRepository.isQueued(environmentId)
-                || !mapValue.getValue0().equals(traceId);
-    }
+    return !SharedRepository.isQueued(environmentId)
+      || !mapValue.getValue0().equals(traceId);
+  }
 }
diff --git a/packages/operator/src/main/resources/META-INF/resources/index.html b/packages/operator/src/main/resources/META-INF/resources/index.html
index 7a580929..d25ee559 100644
--- a/packages/operator/src/main/resources/META-INF/resources/index.html
+++ b/packages/operator/src/main/resources/META-INF/resources/index.html
@@ -249,8 +249,8 @@
 <div class="header-wrapper">
   <div class="grid">
     <div class="header">
-      <svg id="quarkus-logo-svg" data-name="Quarkus Logo" xmlns="http://www.w3.org/2000/svg"
-           viewBox="0 0 1280 195">
+      <svg data-name="Quarkus Logo" id="quarkus-logo-svg" viewBox="0 0 1280 195"
+           xmlns="http://www.w3.org/2000/svg">
         <defs>
           <style>.cls-1 {
             fill: #fff;
diff --git a/packages/operator/src/main/resources/application.properties b/packages/operator/src/main/resources/application.properties
index 3c0b9f11..f2458f91 100644
--- a/packages/operator/src/main/resources/application.properties
+++ b/packages/operator/src/main/resources/application.properties
@@ -27,8 +27,6 @@ operator.domain.name=
 app.instance=dev
 %dev.watcher.enabled=false
 watcher.enabled=true
-
 storage.class=gp2
 %dev.storage.class=gp2
-
 quarkus.swagger-ui.always-include=true
diff --git a/packages/operator/src/main/resources/openshift/environment-template.yaml b/packages/operator/src/main/resources/openshift/environment-template.yaml
index 3059b0ea..2ae8c9a8 100644
--- a/packages/operator/src/main/resources/openshift/environment-template.yaml
+++ b/packages/operator/src/main/resources/openshift/environment-template.yaml
@@ -82,7 +82,21 @@ objects:
         website: ${WEBSITE}
         environment: ${ENV}
         websiteVersion: ${WEBSITE_VERSION}
-  - kind: StatefulSet
+  - kind: PersistentVolumeClaim
+    metadata:
+      name: data-${WEBSITE}-${ENV}-${APP_INSTANCE_PREFIX}
+      annotations:
+        kubernetes.io/reclaimPolicy: Delete
+      labels:
+        paas.redhat.com/appcode: SPAS-001
+        app.kubernetes.io/managed-by: spaship
+    spec:
+      accessModes: [ "ReadWriteOnce" ]
+      storageClassName: "${STORAGE_CLASS}"
+      resources:
+        requests:
+          storage: 1Gi
+  - kind: Deployment
     apiVersion: apps/v1
     metadata:
       name: ${WEBSITE}-${ENV}
@@ -94,6 +108,8 @@ objects:
         #tracing: ${TRACE_ID}
         websiteVersion: ${WEBSITE_VERSION}
         app.kubernetes.io/managed-by: spaship
+        app.kubernetes.io/part-of: ${WEBSITE}
+        app.openshift.io/runtime: apache
     spec:
       selector:
         matchLabels:
@@ -126,7 +142,7 @@ objects:
                 - containerPort: 8080
               volumeMounts:
                 - mountPath: "/var/www/html/"
-                  name: data-${WEBSITE}-${APP_INSTANCE_PREFIX}
+                  name: data-${WEBSITE}-${ENV}-${APP_INSTANCE_PREFIX}
                   subpath: html
             - name: sidecar
               image: "${IMAGE_API}:${IMAGE_API_VERSION}"
@@ -159,28 +175,33 @@ objects:
                   value: "/app/data/"
               volumeMounts:
                 - mountPath: "/app/data/"
-                  name: data-${WEBSITE}-${APP_INSTANCE_PREFIX}
+                  name: data-${WEBSITE}-${ENV}-${APP_INSTANCE_PREFIX}
                   subpath: data
               envFrom:
                 - configMapRef:
                     name: sidecar-config-${WEBSITE}-${ENV}
+          volumes:
+            - name: data-${WEBSITE}-${ENV}-${APP_INSTANCE_PREFIX}
+              persistentVolumeClaim:
+                claimName: data-${WEBSITE}-${ENV}-${APP_INSTANCE_PREFIX}
 
           #volumes:
           #  - name: data
           #    emptyDir: { }
-      volumeClaimTemplates:
-        - metadata:
-            annotations:
-              kubernetes.io/reclaimPolicy: Delete
-            labels:
-              paas.redhat.com/appcode: SPAS-001
-            name: data-${WEBSITE}-${APP_INSTANCE_PREFIX}
-          spec:
-            accessModes: [ "ReadWriteOnce" ]
-            storageClassName: "${STORAGE_CLASS}"
-            resources:
-              requests:
-                storage: 1Gi
+  #      volumeClaimTemplates:
+  #        - metadata:
+  #            annotations:
+  #              kubernetes.io/reclaimPolicy: Delete
+  #            labels:
+  #              paas.redhat.com/appcode: SPAS-001
+  #              app.kubernetes.io/managed-by: spaship
+  #            name: data-${WEBSITE}-${APP_INSTANCE_PREFIX}
+  #          spec:
+  #            accessModes: [ "ReadWriteOnce" ]
+  #            storageClassName: "${STORAGE_CLASS}"
+  #            resources:
+  #              requests:
+  #                storage: 1Gi
 
   - kind: Ingress
     apiVersion: networking.k8s.io/v1


Test patch:
diff --git a/packages/operator/spa-deployment-operator/templates/tests/test-connection.yaml b/packages/operator/spa-deployment-operator/templates/tests/test-connection.yaml
index aac87f4c..9ceb66aa 100644
--- a/packages/operator/spa-deployment-operator/templates/tests/test-connection.yaml
+++ b/packages/operator/spa-deployment-operator/templates/tests/test-connection.yaml
@@ -10,6 +10,6 @@ spec:
   containers:
     - name: wget
       image: busybox
-      command: ['wget']
-      args: ['{{ include "spa-deployment-operator.fullname" . }}:{{ .Values.service.port }}']
+      command: [ 'wget' ]
+      args: [ '{{ include "spa-deployment-operator.fullname" . }}:{{ .Values.service.port }}' ]
   restartPolicy: Never
diff --git a/packages/operator/src/test/java/io/spaship/GreetingResourceTest.java b/packages/operator/src/test/java/io/spaship/GreetingResourceTest.java
index d6bc3e29..50c01382 100644
--- a/packages/operator/src/test/java/io/spaship/GreetingResourceTest.java
+++ b/packages/operator/src/test/java/io/spaship/GreetingResourceTest.java
@@ -6,13 +6,13 @@ import static org.hamcrest.CoreMatchers.is;
 //@QuarkusTest
 public class GreetingResourceTest {
 
-    //@Test
-    public void testHelloEndpoint() {
-        given()
-                .when().get("/api/hello")
-                .then()
-                .statusCode(200)
-                .body(is("Hello RESTEasy"));
-    }
+  //@Test
+  public void testHelloEndpoint() {
+    given()
+      .when().get("/api/hello")
+      .then()
+      .statusCode(200)
+      .body(is("Hello RESTEasy"));
+  }
 
-}
\ No newline at end of file
+}
diff --git a/packages/operator/src/test/java/io/spaship/NativeGreetingResourceIT.java b/packages/operator/src/test/java/io/spaship/NativeGreetingResourceIT.java
index b4fadd86..c6c7cfb1 100644
--- a/packages/operator/src/test/java/io/spaship/NativeGreetingResourceIT.java
+++ b/packages/operator/src/test/java/io/spaship/NativeGreetingResourceIT.java
@@ -3,5 +3,5 @@ package io.spaship;
 //@NativeImageTest
 public class NativeGreetingResourceIT extends GreetingResourceTest {
 
-    // Execute the same tests but in native mode.
-}
\ No newline at end of file
+  // Execute the same tests but in native mode.
+}
diff --git a/packages/operator/src/test/java/io/spaship/RandomTest.java b/packages/operator/src/test/java/io/spaship/RandomTest.java
index 725efeca..d1a71c3b 100644
--- a/packages/operator/src/test/java/io/spaship/RandomTest.java
+++ b/packages/operator/src/test/java/io/spaship/RandomTest.java
@@ -7,49 +7,49 @@ import org.slf4j.LoggerFactory;
 
 public class RandomTest {
 
-    private static final Logger LOG = LoggerFactory.getLogger(RandomTest.class);
-
-    @Test
-    public void testMulti() {
-
-        Multi.createFrom().items(1, 2, 3, 4, 5, 6, 7, 8, 9)
-                .onItem()
-                .invoke(item -> {
-                    System.out.println("per " + item + " thread " + Thread.currentThread().getName());
-                    item = item * 10;
-                }).map(item -> {
-                    if (item == 5) {
-                        //throw new RuntimeException("congratz its an error");
-                    }
-                    System.out.println("second mapping chain, Thread " + Thread.currentThread().getName());
-                    return item * 10;
-                }).onFailure()
-                .recoverWithItem(11)
-                .onSubscription().invoke(() -> {
-                    try {
-                        Thread.sleep(2000);
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-                    System.out.println("subscribed " + Thread.currentThread().getName());
-                }).subscribe()
-                .with(item -> System.out.println("consuming  " + item + " from " + Thread.currentThread().getName()));
-
-        //scb.onComplete();
-    }
-
-
-    @Test
-    public void testSplit() {
-
-        String url = "http://172.30.48.16:8081";
-        String[] urlsPart = url.split(":");
-        System.out.println(urlsPart[0]);
-        System.out.println(urlsPart[1].replace("//", ""));
-        System.out.println(urlsPart[2]);
-        assert urlsPart.length == 3;
-
-
-    }
+  private static final Logger LOG = LoggerFactory.getLogger(RandomTest.class);
+
+  @Test
+  public void testMulti() {
+
+    Multi.createFrom().items(1, 2, 3, 4, 5, 6, 7, 8, 9)
+      .onItem()
+      .invoke(item -> {
+        System.out.println("per " + item + " thread " + Thread.currentThread().getName());
+        item = item * 10;
+      }).map(item -> {
+        if (item == 5) {
+          //throw new RuntimeException("congratz its an error");
+        }
+        System.out.println("second mapping chain, Thread " + Thread.currentThread().getName());
+        return item * 10;
+      }).onFailure()
+      .recoverWithItem(11)
+      .onSubscription().invoke(() -> {
+        try {
+          Thread.sleep(2000);
+        } catch (InterruptedException e) {
+          e.printStackTrace();
+        }
+        System.out.println("subscribed " + Thread.currentThread().getName());
+      }).subscribe()
+      .with(item -> System.out.println("consuming  " + item + " from " + Thread.currentThread().getName()));
+
+    //scb.onComplete();
+  }
+
+
+  @Test
+  public void testSplit() {
+
+    String url = "http://172.30.48.16:8081";
+    String[] urlsPart = url.split(":");
+    System.out.println(urlsPart[0]);
+    System.out.println(urlsPart[1].replace("//", ""));
+    System.out.println(urlsPart[2]);
+    assert urlsPart.length == 3;
+
+
+  }
 
 }
diff --git a/packages/operator/src/test/java/io/spaship/operator/service/SPAUploadHandlerTest.java b/packages/operator/src/test/java/io/spaship/operator/service/SPAUploadHandlerTest.java
index 28f06151..a827928f 100644
--- a/packages/operator/src/test/java/io/spaship/operator/service/SPAUploadHandlerTest.java
+++ b/packages/operator/src/test/java/io/spaship/operator/service/SPAUploadHandlerTest.java
@@ -20,91 +20,91 @@ import java.util.zip.ZipFile;
 //@QuarkusTest
 class SPAUploadHandlerTest {
 
-    private static final Logger LOG = LoggerFactory.getLogger(SPAUploadHandlerTest.class);
-    String absolutePathOfTestFile = "/home/arkaprovo/IdeaProjects/spa-deployment-operator/src/test/resources/large-dir.zip";
-
-
-    private void pathToFileWayOne() throws URISyntaxException, IOException {
-
-        File spaDistribution = new File(absolutePathOfTestFile);
-        assert spaDistribution.exists();
-        ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath());
-        Enumeration<? extends ZipEntry> entries = zipFile.entries();
-
-
-        LocalDateTime start = LocalDateTime.now();
-        LOG.debug("started at {}", start);
-        InputStream inputStream = Collections
-                .list(entries)
-                .parallelStream()
-                .filter(file -> file.getName().equals(".spaship"))
-                .findFirst().map(entry -> {
-                    try {
-                        LOG.debug("file loaded into memory");
-                        return zipFile.getInputStream(entry);
-                    } catch (IOException e) {
-                        throw new RuntimeException(e.getMessage());
-                    }
-                }).orElse(null);
-
-        Objects.requireNonNull(inputStream, ".spaship not found");
-        String spaMapping;
-        try (inputStream) {
-            spaMapping = IOUtils.toString(inputStream, Charset.defaultCharset());
+  private static final Logger LOG = LoggerFactory.getLogger(SPAUploadHandlerTest.class);
+  String absolutePathOfTestFile = "/home/arkaprovo/IdeaProjects/spa-deployment-operator/src/test/resources/large-dir.zip";
+
+
+  private void pathToFileWayOne() throws URISyntaxException, IOException {
+
+    File spaDistribution = new File(absolutePathOfTestFile);
+    assert spaDistribution.exists();
+    ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath());
+    Enumeration<? extends ZipEntry> entries = zipFile.entries();
+
+
+    LocalDateTime start = LocalDateTime.now();
+    LOG.debug("started at {}", start);
+    InputStream inputStream = Collections
+      .list(entries)
+      .parallelStream()
+      .filter(file -> file.getName().equals(".spaship"))
+      .findFirst().map(entry -> {
+        try {
+          LOG.debug("file loaded into memory");
+          return zipFile.getInputStream(entry);
+        } catch (IOException e) {
+          throw new RuntimeException(e.getMessage());
         }
+      }).orElse(null);
 
-        LocalDateTime end = LocalDateTime.now();
-        LOG.debug("ended {}", end);
-        var difference = Duration.between(start, end).toMillis();
-        LOG.debug(".spaship content is {}", spaMapping);
-        LOG.debug("time taken {}", difference);
-
+    Objects.requireNonNull(inputStream, ".spaship not found");
+    String spaMapping;
+    try (inputStream) {
+      spaMapping = IOUtils.toString(inputStream, Charset.defaultCharset());
     }
 
-    private void pathToFileWayTwo() throws URISyntaxException, IOException {
-
-        File spaDistribution = new File(absolutePathOfTestFile);
-        assert spaDistribution.exists();
-        ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath());
-        Enumeration<? extends ZipEntry> entries = zipFile.entries();
-
-
-        LocalDateTime start = LocalDateTime.now();
-        LOG.debug("started at {}", start);
-        InputStream inputStream = Collections
-                .list(entries)
-                .stream()
-                .filter(file -> file.getName().equals(".spaship"))
-                .findFirst().map(entry -> {
-                    try {
-                        LOG.debug("file loaded into memory");
-                        return zipFile.getInputStream(entry);
-                    } catch (IOException e) {
-                        throw new RuntimeException(e.getMessage());
-                    }
-                }).orElse(null);
-
-        Objects.requireNonNull(inputStream, ".spaship not found");
-        String spaMapping;
-        try (inputStream) {
-            spaMapping = IOUtils.toString(inputStream, Charset.defaultCharset());
+    LocalDateTime end = LocalDateTime.now();
+    LOG.debug("ended {}", end);
+    var difference = Duration.between(start, end).toMillis();
+    LOG.debug(".spaship content is {}", spaMapping);
+    LOG.debug("time taken {}", difference);
+
+  }
+
+  private void pathToFileWayTwo() throws URISyntaxException, IOException {
+
+    File spaDistribution = new File(absolutePathOfTestFile);
+    assert spaDistribution.exists();
+    ZipFile zipFile = new ZipFile(spaDistribution.getAbsolutePath());
+    Enumeration<? extends ZipEntry> entries = zipFile.entries();
+
+
+    LocalDateTime start = LocalDateTime.now();
+    LOG.debug("started at {}", start);
+    InputStream inputStream = Collections
+      .list(entries)
+      .stream()
+      .filter(file -> file.getName().equals(".spaship"))
+      .findFirst().map(entry -> {
+        try {
+          LOG.debug("file loaded into memory");
+          return zipFile.getInputStream(entry);
+        } catch (IOException e) {
+          throw new RuntimeException(e.getMessage());
         }
+      }).orElse(null);
 
-        LocalDateTime end = LocalDateTime.now();
-        LOG.debug("ended {}", end);
-        var difference = Duration.between(start, end).toMillis();
-        LOG.debug(".spaship content is {}", spaMapping);
-        LOG.debug("time taken {}", difference);
-
+    Objects.requireNonNull(inputStream, ".spaship not found");
+    String spaMapping;
+    try (inputStream) {
+      spaMapping = IOUtils.toString(inputStream, Charset.defaultCharset());
     }
 
-    //@Test
-    void readZipFileOne() throws URISyntaxException, IOException {
-        pathToFileWayOne();
-    }
+    LocalDateTime end = LocalDateTime.now();
+    LOG.debug("ended {}", end);
+    var difference = Duration.between(start, end).toMillis();
+    LOG.debug(".spaship content is {}", spaMapping);
+    LOG.debug("time taken {}", difference);
 
-    //@Test
-    void readZipFileTwo() throws URISyntaxException, IOException {
-        pathToFileWayTwo();
-    }
+  }
+
+  //@Test
+  void readZipFileOne() throws URISyntaxException, IOException {
+    pathToFileWayOne();
+  }
+
+  //@Test
+  void readZipFileTwo() throws URISyntaxException, IOException {
+    pathToFileWayTwo();
+  }
 }