2022-07-07 20:11:50 +00:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
#
|
|
|
|
|
# Copyright (c) All respective contributors to the Peridot Project. All rights reserved.
|
|
|
|
|
# Copyright (c) 2021-2022 Rocky Enterprise Software Foundation, Inc. All rights reserved.
|
|
|
|
|
# Copyright (c) 2021-2022 Ctrl IQ, Inc. All rights reserved.
|
|
|
|
|
#
|
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
|
# modification, are permitted provided that the following conditions are met:
|
|
|
|
|
#
|
|
|
|
|
# 1. Redistributions of source code must retain the above copyright notice,
|
|
|
|
|
# this list of conditions and the following disclaimer.
|
|
|
|
|
#
|
|
|
|
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
|
|
|
# and/or other materials provided with the distribution.
|
|
|
|
|
#
|
|
|
|
|
# 3. Neither the name of the copyright holder nor the names of its contributors
|
|
|
|
|
# may be used to endorse or promote products derived from this software without
|
|
|
|
|
# specific prior written permission.
|
|
|
|
|
#
|
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
|
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
#
|
|
|
|
|
|
2023-03-10 15:47:24 +00:00
|
|
|
|
# TODO: Setup an bash error trap, to make errors from failing commands more
|
|
|
|
|
# visible and draw attention of the user to these errors.
|
|
|
|
|
|
2022-07-07 20:11:50 +00:00
|
|
|
|
# Install postgres
|
|
|
|
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
2023-03-10 15:47:24 +00:00
|
|
|
|
|
|
|
|
|
# Documentation and source of the used chart with all configuration parameters:
|
|
|
|
|
# https://artifacthub.io/packages/helm/bitnami/postgresql
|
|
|
|
|
# https://github.com/helm/charts/tree/master/stable/postgresql
|
|
|
|
|
|
|
|
|
|
# The postgresql helm chart requires the cluster to provide a PersistentVolume
|
|
|
|
|
# and places a PersisentVolumeClaim for this.
|
|
|
|
|
# Ensure that the cluster provides PersistentVolumes:
|
|
|
|
|
|
|
|
|
|
if kubectl get PersistentVolume -o json
|
|
|
|
|
| jq -e '.items | .[].status | select(.phase == "Bound")' ; then
|
|
|
|
|
echo "Ok found at least one PersistentVolume"
|
|
|
|
|
else
|
|
|
|
|
echo "The postgresql helm chart has a PersistentVolumeClaim (PVC)."
|
|
|
|
|
echo "The cluster needs to provide at one PersistentVolume (PV) for this."
|
|
|
|
|
echo "For information how to create a PersistentVolume, see:"
|
|
|
|
|
echo "https://github.com/felipecruz91/k8s-postgresql-persistent-volume#create-persistent-volume"
|
|
|
|
|
exit 5
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Note: The chart mounts the PV at persistence.mountPath,
|
|
|
|
|
# which defaults to /bitnami/postgresql and creates a directory /data in it.
|
|
|
|
|
# If it has no permission to create it, this error happens:
|
|
|
|
|
# mkdir: cannot create directory ‘/bitnami/postgresql/data’: Permission denied
|
|
|
|
|
# https://github.com/bitnami/charts/issues/1210
|
|
|
|
|
#
|
|
|
|
|
# Adding --set volumePermissions.enabled=true helps:
|
|
|
|
|
# https://github.com/bitnami/charts/issues/1210#issuecomment-1145923630
|
|
|
|
|
|
|
|
|
|
helm upgrade --install postgres bitnami/postgresql \
|
|
|
|
|
--set volumePermissions.enabled=true \
|
|
|
|
|
--set global.postgresql.auth.postgresPassword=postgres \
|
|
|
|
|
--set auth.postgresPassword=postgres \
|
|
|
|
|
--set auth.enablePostgresUser=true \
|
|
|
|
|
|
2022-07-07 20:11:50 +00:00
|
|
|
|
kubectl patch svc postgres-postgresql --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'
|
|
|
|
|
|
|
|
|
|
# Install localstack
|
|
|
|
|
helm repo add localstack-repo https://helm.localstack.cloud
|
|
|
|
|
helm upgrade --install localstack localstack-repo/localstack
|
|
|
|
|
|
|
|
|
|
# Install minio
|
|
|
|
|
helm install --set auth.rootUser=AKIAIOSFODNN7EXAMPLE,auth.rootPassword=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY minio bitnami/minio
|
|
|
|
|
|
|
|
|
|
# Install Temporal
|
|
|
|
|
helm install temporal infrastructure/dev-helm/temporal --timeout 15m -f infrastructure/dev-helm/temporal.values.yaml
|