#!/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. # 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 \ 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