Beast Core 6 Deployment Guide - On-Premises
  • 16 Jul 2024
  • 2 Minutes to read
  • Dark
    Light
  • PDF

Beast Core 6 Deployment Guide - On-Premises

  • Dark
    Light
  • PDF

Article summary

Assumptions:

   Existing Kubernetes Infrastructure

   Tooling Installed & Configured

#! /bin/bash

registry="361975120841.dkr.ecr.us-east-2.amazonaws.com"
for f in ./*.tar;
do
  loadOutput=$(docker load --input $f)
  image=$(echo $loadOutput | awk '{ print $3 }')
  echo "Original image tag:" $image
  repoAndTag=${image##*/}
  newImage="$registry"/"$repoAndTag"
  echo "New image tag:" $newImage
  docker tag $image $newImage
  docker push $newImage
done

Generate Data Artifact

Package the beast-code-experience Helm chart, USS Never Sleeps workspace, image .tars, and docker load script into data_artifact.zip

Create Dedicated Storage ( Docker Desktop Examples )

1. Refer to https://kubernetes.io/docs/concepts/storage/persistent-volumes & https://kubernetes.io/docs/concepts/storage/storage-classes

Example Docker Desktop Objects :

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: "bc6-pvc"
spec:
  storageClassName: hostpath
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

apiVersion: v1
kind: Pod
metadata:
  name: bc6-pv
spec:
  containers:
    - name: bc6
      image: alpine:3
      command: ["sleep", "infinity"]
      volumeMounts:
        - name: bc6
          mountPath: "/bc6-pv"
  volumes:
    - name: bce6
      persistentVolumeClaim:
        claimName: "bc6-pvc"
        readOnly: false

Copy Workspace

  1. Extract data_artifact.zip

  2. Verify your current directory contains the workspace provided

  3. Run:

 kubectl cp bc6-workspace bc6-pv:/bc6-pv -n bc6

  1. To interactively verify:

   kubectl exec --stdin --tty bc6-pv -n bc6 -- sh

Create Ingress Controller

Refer to https://kubernetes.github.io/ingress-nginx/deploy

Configure values.yaml

In values.yaml , change imageDefaults.registry to the registry from which you pull images ( remove harbor.hulk.beast-code.com/bcas )

If the images are hosted locally, set this value to "localhost"

If the images are hosted from IronBank, set this value to "registry1.dso.mil/ironbank/beast-code"

Generate override-values.yaml

platformOverride: &platform "aggregator-svc"

aggregator:
  enabled: true
  aggregateServices:
    - name: workspace-service
      host: workspace-service-svc
    - name: search-service
      host: search-service-svc
    - name: dwg-service
      host: dwg-service-svc

Configure Ingress

In override-values.yaml , Append to the end of the file:

If deploying to a remote cluster, set hostnameOverride to your cluster domain name

bcore-shell-host:
  ingress:
    enabled: true
    hostnameOverride: "localhost"

Configure Plugins

In override-values.yaml , Append to the end of the file:

bcore-shell-plugin:
  platformService: *platform
  subPlugins:
    - name: system-viewer
      host: system-viewer-plugin-svc
    - name: document-viewer
      host: document-viewer-plugin-svc
    - name: search-plugin
      host: search-plugin-svc

persistenceOverride: &persistence
  enabled: true
  existingClaim: "bc6-pvc"

workspaceOverride: &workspace
  workspaceClass:
    folderName: "bc6-workspace"

search-plugin:
  enabled: true
  searchServiceOverride: *platform

system-viewer-plugin:
  enabled: true
  workspaceServiceEndpoint: *platform
  subPlugins:
    visualizers:
      - repository: visualizer-system-designation
        tag: ""
        display: System Designation
        default: true
  geometry-selector-plugin:
    workspaceServiceEndpoint: *platform
    searchServiceEndpoint: *platform
  dwg-service:
    persistence: *persistence
    workspace: *workspace

document-viewer-plugin:
  enabled: true
  documentViewer:
    workspaceServiceEndpoint: *platform

details-pane-plugin:
  enabled: true
  platformService: *platform
  subPlugins:
    - name: dv-details
      host: document-details-pane-sub-plugin-svc

document-details-pane-sub-plugin:
  enabled: true
  workspaceServiceEndpoint: *platform

search-service:
  enabled: true
  persistence: *persistence
  workspace: *workspace

workspace-service:
  enabled: true
  persistence: *persistence
  workspace: *workspace

Install beast-core-experience Helm Chart

1. Verify your current directory contains the Helm chart and both values.yaml & override-values.yaml

2. Run:

helm upgrade --install bc6 -n bc6 -f values.yaml -f override-values.yaml

Enable Atlas ( Optional )

1. In override-values.yaml , Append to details-pane-plugin:

atlasService: "atlas-service-svc"

2. In override-values.yaml , Append to system-viewer-plugin:

 atlasServiceEndpoint: "atlas-service-svc"
  subPlugins:
    visualizers:
      - host: "atlas-visualizer-js-svc"
        display: "Atlas Visualizer"
        default: false

3. In override-values.yaml , Append to the end of the file:

atlas-visualizer-js:
  enabled: true
  AtlasServiceEndpoint: "atlas-service-svc"

atlas-service:
  enabled: true
  persistence: *persistence
  workspace: *workspace

4. Run:

helm upgrade --install bc6 -n bc6 -f values.yaml -f override-values.yaml


Was this article helpful?