Skip to content

Atscale Helm chart for Kubernetes deployment via Google Marketplace. Copyright Atscale Inc.

Notifications You must be signed in to change notification settings

AtScaleInc/atscale-googlemarketplace-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to run atscale from google marketplace


Prerequisites

You'll need the following tools in your development environment. If you are using Cloud Shell, gcloud, kubectl, Docker, and Git are installed in your environment by default.

You will also need the following resources.

  • Domain name and access to DNS
  • TLS Certificate
  • TLS Key

Installation


After selecting our chart from google marketplace and clicking on the deploy button. You should be greeted with 2 options:

Deploy via command line

You can use Google Cloud Shell or a local workstation to complete the following steps.

Open in Cloud Shell

  • Configure gcloud as a Docker credential helper:
gcloud auth configure-docker

Create a Google Kubernetes Engine cluster

  • Create a new cluster from the command line:
gcloud container clusters create cluster-1 --location=us-central1 --num-nodes=4
  • Configure kubectl to connect to the new cluster.
gcloud auth login
gcloud container clusters get-credentials cluster-1 --region us-central1
  • Clone the Atscale Google Marketplace Repo
git clone https://github.com/AtScaleInc/atscale-googlemarketplace-stack

Installation

  • Install Google's kubernetes application crd
kubectl apply -f "https://raw.githubusercontent.com/GoogleCloudPlatform/marketplace-k8s-app-tools/master/crd/app-crd.yaml"

You need to run this command once.

The Application resource is defined by the Kubernetes SIG-apps community. The source code can be found on github.com/kubernetes-sigs/application.

Install Atscale

  • Set image values
export REGISTRY="marketplace.gcr.io"
export REPOSITORY="atscale-public/atscale"
export TAG="2024.1.1"
  • Set your environment details
export DOMAIN="your.domain.name.com"
export TLSCRT="$(base64 -w 0 -i /tmp/tls.crt)"
export TLSKEY="$(base64 -w 0 -i /tmp/tls.key)"

{{< alert context="info" text="Instead of TLSCRT and TLSKEY you can use global.atscale.tls.existingSecret" />}}

  • Generate the manifest
helm template atscale chart/atscale-gcp \
--set global.ingressDomain="${DOMAIN}" \
--set global.atscale.tls.tlsCRT="${TLSCRT}" \
--set global.atscale.tls.tlsKEY="${TLSKEY}" \
--set atscale.atscale-engine.image.repository="${REGISTRY}/${REPOSITORY}/atscale-engine" \
--set atscale.atscale-engine.image.tag="${TAG}" \
--set atscale.atscale-sml.image.repository="${REGISTRY}/${REPOSITORY}/atscale-sml" \
--set atscale.atscale-sml.image.tag="${TAG}" \
--set atscale.atscale-api.image.repository="${REGISTRY}/${REPOSITORY}/atscale-api" \
--set atscale.atscale-api.image.tag="${TAG}" \
--set atscale.atscale-entitlement.image.repository="${REGISTRY}/${REPOSITORY}/atscale-entitlement" \
--set atscale.atscale-entitlement.image.tag="${TAG}" \
--set atscale.kongproxy.image.repository="${REGISTRY}/${REPOSITORY}/kong" \
--set atscale.kongproxy.image.tag="${TAG}" \
--set atscale.kongproxy.ingressController.image.repository="${REGISTRY}/${REPOSITORY}/kong-ingress-controller" \
--set atscale.kongproxy.ingressController.image.tag="${TAG}" \
--set atscale.postgres.postgresql.image.registry="${REGISTRY}" \
--set atscale.postgres.postgresql.image.repository="${REPOSITORY}/postgres" \
--set atscale.postgres.postgresql.image.tag="${TAG}" \
--set atscale.postgres.pgpool.image.registry="${REGISTRY}" \
--set atscale.postgres.pgpool.image.repository="${REPOSITORY}/pgpool" \
--set atscale.postgres.pgpool.image.tag="${TAG}" \
--set atscale.postgres.metrics.image.registry="${REGISTRY}" \
--set atscale.postgres.metrics.image.repository="${REPOSITORY}/postgres-exporter" \
--set atscale.postgres.metrics.image.tag="${TAG}" \
--set atscale.redis.image.registry="${REGISTRY}" \
--set atscale.redis.image.repository="${REPOSITORY}/redis" \
--set atscale.redis.image.tag="${TAG}" \
--set atscale.keycloak.image.registry="${REGISTRY}" \
--set atscale.keycloak.image.repository="${REPOSITORY}/keycloak" \
--set atscale.keycloak.image.tag="${TAG}" \
--set atscale.git.image.registry="${REGISTRY}" \
--set atscale.git.image.repository="${REPOSITORY}/keycloak" \
--set atscale.git.image.tag="${TAG}" \
--set atscale.objectstorage.image.registry="${REGISTRY}" \
--set atscale.objectstorage.image.repository="${REPOSITORY}/objectstorage" \
--set atscale.objectstorage.image.tag="${TAG}" \
--set atscale.objectstorage.clientImage.registry="${REGISTRY}" \
--set atscale.objectstorage.clientImage.repository="${REPOSITORY}/objectstorageclient" \
--set atscale.objectstorage.clientImage.tag="${TAG}" \
--set objectstoragejob.image.registry="${REGISTRY}" \
--set objectstoragejob.image.repository="${REPOSITORY}/objectstoragejob" \
--set objectstoragejob.image.tag="${TAG}" \
--set atscale.grafana.image.registry="${REGISTRY}" \
--set atscale.grafana.image.repository="${REPOSITORY}/grafana" \
--set atscale.grafana.image.tag="${TAG}" \
--set atscale.promtail.image.registry="${REGISTRY}" \
--set atscale.promtail.image.repository="${REPOSITORY}/promtail" \
--set atscale.promtail.image.tag="${TAG}" \
--set atscale.telemetry.image.repository="${REGISTRY}/${REPOSITORY}/telemetry" \
--set atscale.telemetry.image.tag="${TAG}" \
--set atscale.tempo.tempo.image.registry="${REGISTRY}" \
--set atscale.tempo.tempo.image.repository="${REPOSITORY}/tempo" \
--set atscale.tempo.tempo.image.tag="${TAG}" \
--set atscale.tempo.queryFrontend.query.image.registry="${REGISTRY}" \
--set atscale.tempo.queryFrontend.query.image.repository="${REPOSITORY}/tempo-query" \
--set atscale.tempo.queryFrontend.query.image.tag="${TAG}" \
--set atscale.loki.loki.image.registry="${REGISTRY}" \
--set atscale.loki.loki.image.repository="${REPOSITORY}/loki" \
--set atscale.loki.loki.image.tag="${TAG}" \
--set atscale.loki.gateway.image.registry="${REGISTRY}" \
--set atscale.loki.gateway.image.repository="${REPOSITORY}/loki-gateway" \
--set atscale.loki.gateway.image.tag="${TAG}" \
--set atscale.loki.memcachedindexwrites.image.registry="${REGISTRY}" \
--set atscale.loki.memcachedindexwrites.image.repository="${REPOSITORY}/memcached" \
--set atscale.loki.memcachedindexwrites.image.tag="${TAG}" \
--set atscale.mimir.mimir.image.registry="${REGISTRY}" \
--set atscale.mimir.mimir.image.repository="${REPOSITORY}/mimir" \
--set atscale.mimir.mimir.image.tag="${TAG}" \
--set atscale.mimir.gateway.image.registry="${REGISTRY}" \
--set atscale.mimir.gateway.image.repository="${REPOSITORY}/mimir-gateway" \
--set atscale.mimir.gateway.image.tag="${TAG}" \
> atscale_manifest.yaml
  • Create the namespace
kubectl create namespace atscale
  • Apply the manifest to your Kubernetes cluster
kubectl apply -f "atscale_manifest.yaml" --namespace atscale

Get the service from the cluster

kubectl get service -n atscale kong-proxy

Generate an DNS A record

In your DNS provider setup an A record with TTL set to 300 The application should be accessible on your domain name after the DNS propagates


NEED HELP WITH ATSCALE?

For further help with atscale go to help.atscale.com

About

Atscale Helm chart for Kubernetes deployment via Google Marketplace. Copyright Atscale Inc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published