peridot/hack/setup_external_dev_services

85 lines
4.1 KiB
Plaintext
Raw Normal View History

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.
#
# 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
# 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