Categories
gcp JFrog Kubernetes

JFrog Distribution on GKE with Google SQL

Series

This is part of a series of JFrog blogs that will help guide you through installing their new Unified Platform.

General

https://github.com/jfrog/charts/tree/master/stable/distribution

Add repo

helm repo add jfrog https://charts.jfrog.io

Update repo

helm repo update

Join Key & JFrog URL

https://www.jfrog.com/confluence/display/JFROG/General+Security+Settings#GeneralSecuritySettings-ViewingtheJoinKey

In order to install Distribution, you will need at least one Join Key and JFrog URL from the Artifactory installation.

Go to Artifactory.

Security → Settings

Under Connection details, enter your password and click Unlock.

Copy the Join Key.

export JOIN_KEY=[YOUR_JOIN_KEY]
export JFROG_URL=https://yourdomain.com

Helm

--set distribution.joinKey=${JOIN_KEY} \
--set distribution.jfrogUrl=${JFROG_URL} \

Master Key

Create Master Key

export MASTER_KEY=$(openssl rand -hex 32)

Helm

--set distribution.masterKey=${MASTER_KEY} \

Google SQL

Create a Google PostgreSQL 9.6 database with a user and database named distribution.

export POSTGRES_HOST=[DATABASE_IP]
export POSTGRES_PORT=5432
export POSTGRES_DATABASE=distribution
export POSTGRES_USERNAME=distribution
export POSTGRES_PASSWORD=[DATABASE_PASSWORD]
export DIST_POSTGRES_CONN_URL="postgresql://${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}"

Helm

--set postgresql.enabled=false \
--set database.url="${DIST_POSTGRES_CONN_URL}" \
--set database.user=${POSTGRES_USERNAME} \
--set database.password=${POSTGRES_PASSWORD} \

Redis

Create redis password.

export REDIS_PASSWORD=$(openssl rand -hex 32)

Helm

--set redis.password=${REDIS_PASSWORD} \

Resources & Limits

Add recommended resources and limits

I’m using the values-large.yaml option as the recommended resources and limits. You can choose from values-small.yaml, values-medium.yaml or values-large.yaml.

Download values-large.yaml.

wget https://raw.githubusercontent.com/jfrog/charts/master/stable/distribution/values-large.yaml

Install

helm install distribution \
  --set distribution.joinKey=${JOIN_KEY} \
--set distribution.jfrogUrl=${JFROG_URL} \ --set distribution.masterKey=${MASTER_KEY} \ --set postgresql.enabled=false \ --set database.url="${DIST_POSTGRES_CONN_URL}" \
--set database.user=${POSTGRES_USERNAME} \
--set database.password=${POSTGRES_PASSWORD} \ --set redis.password=${REDIS_PASSWORD} \ -f values-large.yaml \ --version 5.1.3 \ -n jfrog \
jfrog/distribution

Uninstall

helm uninstall distribution -n jfrog && sleep 90 && kubectl delete pvc -l app=distribution -n jfrog

Delete SQL database.

gcloud sql instances delete [INSTANCE_NAME]
Comments

By Tommy Elmesewdy

DevOps Engineer