Repository: provectus/kafka-ui
Issue: Implement a workflow to bring up a temp demo external env with separate app instances
Labels: status/accepted
scope/infrastructure
type/feature

Implement a mechanism to bring up a separate public feature testing environment:
1. Every each app should have a separate instance
2. Manual workflow via github actions' run button (master branch)
3. Add additional connectors which produce decent amount of messages, e.g. twitter connector.
4. VPN is not required but static single-user credentials are (same as #1144).


Issue comments:

Pull request review comments:
I don't think we that we need this actions, we can use latest tag
It is not "Branch" , 
Do we need to deploy DEMO env from Specific Branch ? 
Please re-think about using demo env name instead of branch
Removed build job. Changed infra repo for using dockerhub kafka-ui image with the latest tag.
Changed the logics to use input var ENV_NAME to be used instead of branch name.
Changed the logics to use input var ENV_NAME to be used instead of branch name.

Patch that resolved the issue:
diff --git a/.github/workflows/separate_env_public_create.yml b/.github/workflows/separate_env_public_create.yml
new file mode 100644
index 00000000000..eb59e55f7ad
--- /dev/null
+++ b/.github/workflows/separate_env_public_create.yml
@@ -0,0 +1,31 @@
+name: Separate environment create
+on:
+  workflow_dispatch:
+    inputs:
+      ENV_NAME:
+        description: 'Will be used as subdomain in the public URL.'
+        required: true
+        default: 'demo'
+
+jobs:
+  separate-env-create:
+    runs-on: ubuntu-latest
+    steps:
+      - name: clone
+        run: |
+          git clone https://kafka-ui-infra:${{ secrets.KAFKA_UI_INFRA_TOKEN }}@gitlab.provectus.com/provectus-internals/kafka-ui-infra.git
+
+      - name: separate env create
+        run: |
+          cd kafka-ui-infra/aws-infrastructure4eks/argocd/scripts
+          bash separate_env_create.sh ${{ github.event.inputs.ENV_NAME }} ${{ secrets.FEATURE_TESTING_UI_PASSWORD }}
+          git config --global user.email "kafka-ui-infra@provectus.com"
+          git config --global user.name "kafka-ui-infra"
+          git add -A
+          git commit -m "separate env added: ${{ github.event.inputs.ENV_NAME }}" && git push || true
+
+      - name: echo separate environment public link
+        run: |
+          echo "Please note, separate environment creation takes up to 5-10 minutes."
+          echo "Separate environment will be available at http://${{ github.event.inputs.ENV_NAME }}.kafka-ui.provectus.io"
+          echo "Username: admin"
diff --git a/.github/workflows/separate_env_public_remove.yml b/.github/workflows/separate_env_public_remove.yml
new file mode 100644
index 00000000000..19084801377
--- /dev/null
+++ b/.github/workflows/separate_env_public_remove.yml
@@ -0,0 +1,24 @@
+name: Separate environment remove
+on:
+  workflow_dispatch:
+    inputs:
+      ENV_NAME:
+        description: 'Will be used to remove previously deployed separate environment.'
+        required: true
+        default: 'demo'
+
+jobs:
+  separate-env-remove:
+    runs-on: ubuntu-latest
+    steps:
+      - name: clone
+        run: |
+          git clone https://kafka-ui-infra:${{ secrets.KAFKA_UI_INFRA_TOKEN }}@gitlab.provectus.com/provectus-internals/kafka-ui-infra.git
+      - name: separate environment remove
+        run: |
+          cd kafka-ui-infra/aws-infrastructure4eks/argocd/scripts
+          bash separate_env_remove.sh ${{ github.event.inputs.ENV_NAME }}
+          git config --global user.email "kafka-ui-infra@provectus.com"
+          git config --global user.name "kafka-ui-infra"
+          git add -A
+          git commit -m "separate env removed: ${{ github.event.inputs.ENV_NAME }}" && git push || true


Test patch: