Products | Versions |
---|---|
Spotfire Server | 12.4.0 |
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc $ sudo dnf install -y https://packages.microsoft.com/config/rhel/9.0/packages-microsoft-prod.rpm $ sudo dnf install azure-cli
$ sudo dnf -y upgrade $ sudo dnf -y install yum-utils $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing $ sudo systemctl enable docker $ sudo systemctl start docker $ sudo usermod -aG docker $USER $ newgrp docker $ exit $ exit
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" $ curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" $ echo "$(cat kubectl.sha256) kubectl" | sha256sum --check kubectl: OK $ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl $ kubectl version
$ sudo yum -y install git $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh $ helm --help
$ export AZ_APP_DISPLAY_NAME=SpotfireAzApp $ export AZ_GROUP_NAME=CompanyResourceGroup
$ export AZ_ACR_NAME=sfazacr $ export AKS_CLUSTER_NAME=azapps
$ rm -rf az-login-info.json $ az logout $ az login -u "sso-user@company.com" > az-login-info.json $ export AZ_TENANT_ID=$(jq .[].tenantId az-login-info.json | tr -d '"') $ export AZ_SUBSCRIPTION_ID=$(jq .[].id az-login-info.json | tr -d '"') $ rm -rf app-role-manifest.json $ echo -e \ "[{ \ \"allowedMemberTypes\": [ \ \"User\" \ ], \ \"description\": \"Admin App Role for Spotfire Server.\", \ \"displayName\": \"SpotfireAdmin\", \ \"isEnabled\": \"true\", \ \"value\": \"admin\" \ }]" | jq . > app-role-manifest.json $ rm -rf az-app-manifest.json $ az ad app create \ --display-name $AZ_APP_DISPLAY_NAME \ --app-roles "@app-role-manifest.json" \ --enable-access-token-issuance true \ --enable-id-token-issuance true > az-app-manifest.json $ rm -rf az-sp-info.json $ az ad sp create-for-rbac \ --name $AZ_APP_DISPLAY_NAME \ --role "Contributor" \ --scopes /subscriptions/$AZ_SUBSCRIPTION_ID/resourceGroups/$AZ_GROUP_NAME > az-sp-info.json $ export AZ_APP_SECRET=$(jq .password az-sp-info.json | tr -d '"') $ export AZ_SERVICE_PRINCIPAL_ID=$(jq .appId az-sp-info.json | tr -d '"')
$ az role assignment create \ --role "AcrPush" \ --scope /subscriptions/$AZ_SUBSCRIPTION_ID/resourceGroups/$AZ_GROUP_NAME \ --assignee $AZ_SERVICE_PRINCIPAL_ID $ az role assignment create \ --role "AcrPull" \ --scope /subscriptions/$AZ_SUBSCRIPTION_ID/resourceGroups/$AZ_GROUP_NAME \ --assignee $AZ_SERVICE_PRINCIPAL_ID $ az role assignment create \ --role "User Access Administrator" \ --scope /subscriptions/$AZ_SUBSCRIPTION_ID/resourceGroups/$AZ_GROUP_NAME \ --assignee $AZ_SERVICE_PRINCIPAL_ID
$ az login \ --service-principal \ --username=$AZ_SERVICE_PRINCIPAL_ID \ --password=$AZ_APP_SECRET \ --tenant=$AZ_TENANT_ID $ az acr create \ --name=$AZ_ACR_NAME \ --resource-group=$AZ_GROUP_NAME \ --sku=basic --output=json
$ export AKS_IP_RANGE=$(curl ifconfig.me)
$ az aks create \ --name $AKS_CLUSTER_NAME \ --resource-group $AZ_GROUP_NAME \ --os-sku AzureLinux \ --api-server-authorized-ip-ranges $AKS_IP_RANGE \ --generate-ssh-key
$ az aks update \ --name $AKS_CLUSTER_NAME \ --resource-group $AZ_GROUP_NAME \ --attach-acr $AZ_ACR_NAME
$ az aks get-credentials \ --overwrite-existing \ --resource-group=$AZ_GROUP_NAME \ --name=$AKS_CLUSTER_NAME $ kubectl get node NAME STATUS ROLES AGE VERSION aks-nodepool1-10599113-vmss000000 Ready agent 2m4s v1.25.6 aks-nodepool1-10599113-vmss000001 Ready agent 2m1s v1.25.6 aks-nodepool1-10599113-vmss000002 Ready agent 2m7s v1.25.6
$ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm install vanilla-tssdb bitnami/postgresql $ export POSTGRES_PASSWORD=$(kubectl get secret \ --namespace default vanilla-tssdb-postgresql \ -o jsonpath="{.data.postgres-password}" | base64 -d)
$ git clone https://github.com/TIBCOSoftware/spotfire-cloud-deployment-kit.git -b v1.4.0
$ ls -al ~/spotfire-cloud-deployment-kit/containers/downloads/ total 1868370 drwxr-xr-x 2 myuser svc_dev_str_server_admins 10 Jul 10 09:31 . drwxr-xr-x 13 myuser svc_dev_str_server_admins 15 Jul 10 09:31 .. -rw-r--r-- 1 myuser svc_dev_str_server_admins 52 Jul 10 09:31 .gitignore -rwxr-xr-x 1 myuser svc_dev_str_server_admins 248434933 Jul 10 09:31 Spotfire.Dxp.netcore-linux.sdn -rwxr-xr-x 1 myuser svc_dev_str_server_admins 150882007 Jul 10 09:31 Spotfire.Dxp.PythonServiceLinux.sdn -rwxr-xr-x 1 myuser svc_dev_str_server_admins 419967725 Jul 10 09:31 Spotfire.Dxp.sdn -rwxr-xr-x 1 myuser svc_dev_str_server_admins 128760600 Jul 10 09:31 Spotfire.Dxp.TerrServiceLinux.sdn -rwxr-xr-x 1 myuser svc_dev_str_server_admins 318626713 Jul 10 09:31 TIB_sfire_server_12.4.0_languagepack-multi.zip -rwxr-xr-x 1 myuser svc_dev_str_server_admins 267634757 Jul 10 09:31 tsnm-12.4.0.x86_64.tar.gz -rwxr-xr-x 1 myuser svc_dev_str_server_admins 376060615 Jul 10 09:32 tss-12.4.0.x86_64.tar.gz
$ cd ~/spotfire-cloud-deployment-kit/containers $ make build
$ az acr login -n $AZ_ACR_NAME $ make REGISTRY=$AZ_ACR_NAME.azurecr.io push
$ cd ../helm/ $ make
$ cd charts/spotfire-server/ $ TOKEN=$(az acr login --name $AZ_ACR_NAME --expose-token --output tsv --query accessToken) $ docker login $AZ_ACR_NAME.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN $ helm install tss1240azure . \ --set acceptEUA=true \ --set global.spotfire.image.registry="$AZ_ACR_NAME.azurecr.io" \ --set global.spotfire.image.pullPolicy="Always" \ --set database.bootstrap.databaseUrl="jdbc:postgresql://vanilla-tssdb-postgresql.default.svc.cluster.local/" \ --set database.create-db.databaseUrl="jdbc:postgresql://vanilla-tssdb-postgresql.default.svc.cluster.local/" \ --set database.create-db.adminUsername="postgres" \ --set database.create-db.adminPassword="$POSTGRES_PASSWORD" \ --set database.create-db.enabled=true \ --set configuration.site.publicAddress="http://localhost"
Here, we have set the helm release name to something descriptive: 'tss1240azure' (to indicate that this is a Spotfire Server 12.4.0 deployment, and it runs in Azure).
$ export SPOTFIREADMIN_PASSWORD=$(kubectl get secrets \ --namespace default tss1240azure-spotfire-server \ -o jsonpath="{.data.SPOTFIREADMIN_PASSWORD}" | base64 --decode) $ echo $SPOTFIREADMIN_PASSWORD i036eadkxlfJ
$ kubectl port-forward --address 0.0.0.0 --namespace default service/tss1240azure-haproxy 8081:80
Github: Cloud Deployment Kit for TIBCO Spotfire