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
After selecting our chart from google marketplace and clicking on the deploy button.
You should be greeted with 2 options:
You can use Google Cloud Shell or a local workstation to complete the following steps.
- Configure
gcloudas a Docker credential helper:
gcloud auth configure-docker- Create a new cluster from the command line:
gcloud container clusters create cluster-1 --location=us-central1 --num-nodes=4- Configure
kubectlto 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- 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.
- 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 atscalekubectl get service -n atscale kong-proxyIn 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
For further help with atscale go to help.atscale.com