diff --git a/.postgres/initdb.sql b/.postgres/initdb.sql new file mode 100644 index 0000000..5be376e --- /dev/null +++ b/.postgres/initdb.sql @@ -0,0 +1,8 @@ +CREATE USER gitea WITH PASSWORD 'changeme'; +CREATE DATABASE gitea WITH OWNER gitea; + +CREATE USER grafana WITH password 'changeme'; +CREATE DATABASE grafana WITH OWNER grafana; + +CREATE USER nextcloud WITH PASSWORD 'changeme'; +CREATE DATABASE nextcloud WITH OWNER nextcloud; diff --git a/clean-dev-cluster.sh b/clean-dev-cluster.sh index b0a3e17..ed6cf2c 100755 --- a/clean-dev-cluster.sh +++ b/clean-dev-cluster.sh @@ -2,5 +2,5 @@ k3d cluster delete local docker rm -f registry-localhost -docker rm -f mariadb-localhost +docker rm -f postgres-localhost docker rm -f nfs-localhost diff --git a/kustomize/bases/gitea/gitea-deployment.yaml b/kustomize/bases/gitea/gitea-deployment.yaml index e7713ac..aac77a2 100644 --- a/kustomize/bases/gitea/gitea-deployment.yaml +++ b/kustomize/bases/gitea/gitea-deployment.yaml @@ -30,26 +30,26 @@ spec: - name: SSH_DOMAIN value: ${GITEA_EXTERNAL_HOST} - name: DB_TYPE - value: mysql + value: postgres - name: DB_HOST valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: host - name: DB_NAME valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: database - name: DB_USER valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: username - name: DB_PASSWD valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: password ports: - name: http diff --git a/kustomize/bases/gitea/kustomization.yaml b/kustomize/bases/gitea/kustomization.yaml index 932157a..9da6395 100644 --- a/kustomize/bases/gitea/kustomization.yaml +++ b/kustomize/bases/gitea/kustomization.yaml @@ -3,11 +3,11 @@ resources: - ingress.yaml secretGenerator: - - name: mariadb-credentials-secret + - name: postgres-credentials-secret type: Opaque behavior: create literals: - - host=mariadb-localhost:3306 + - host=172.18.1.2:5432 - database=gitea - username=gitea - password=changeme diff --git a/kustomize/bases/grafana/grafana-deployment.yaml b/kustomize/bases/grafana/grafana-deployment.yaml index e72b298..27d7ae3 100644 --- a/kustomize/bases/grafana/grafana-deployment.yaml +++ b/kustomize/bases/grafana/grafana-deployment.yaml @@ -22,26 +22,26 @@ spec: - name: GF_AUTH_ANONYMOUS_ORG_ROLE value: Admin - name: GF_DATABASE_TYPE - value: mysql + value: postgres - name: GF_DATABASE_HOST valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: host - name: GF_DATABASE_NAME valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: database - name: GF_DATABASE_USER valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: username - name: GF_DATABASE_PASSWORD valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: password ports: - name: http diff --git a/kustomize/bases/grafana/kustomization.yaml b/kustomize/bases/grafana/kustomization.yaml index a88142f..2d18da9 100644 --- a/kustomize/bases/grafana/kustomization.yaml +++ b/kustomize/bases/grafana/kustomization.yaml @@ -8,11 +8,11 @@ configMapGenerator: - datasources.yaml=provision/datasources.yaml secretGenerator: - - name: mariadb-credentials-secret + - name: postgres-credentials-secret type: Opaque behavior: create literals: - - host=mariadb-localhost:3306 + - host=172.18.1.2:5432 - database=grafana - username=grafana - password=changeme diff --git a/kustomize/bases/mariadb/kustomization.yaml b/kustomize/bases/mariadb/kustomization.yaml deleted file mode 100644 index 463776c..0000000 --- a/kustomize/bases/mariadb/kustomization.yaml +++ /dev/null @@ -1,10 +0,0 @@ -resources: - - mariadb-statefulset.yaml - -secretGenerator: - - name: mariadb-credentials-secret - type: Opaque - literals: - - database=mariadb - - username=mariadb - - password=replaceme diff --git a/kustomize/bases/mariadb/mariadb-statefulset.yaml b/kustomize/bases/mariadb/mariadb-statefulset.yaml deleted file mode 100644 index 6e1c223..0000000 --- a/kustomize/bases/mariadb/mariadb-statefulset.yaml +++ /dev/null @@ -1,63 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: mariadb -spec: - selector: - matchLabels: - app: mariadb - serviceName: mariadb - template: - metadata: - labels: - app: mariadb - spec: - containers: - - name: mariadb - image: mariadb:10.5.2 - env: - - name: MYSQL_DATABASE - valueFrom: - secretKeyRef: - name: mariadb-credentials-secret - key: database - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: mariadb-credentials-secret - key: username - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: mariadb-credentials-secret - key: password - - name: MYSQL_RANDOM_ROOT_PASSWORD - value: "yes" - ports: - - name: mariadb - containerPort: 3306 - volumeMounts: - - name: mariadb-pvc - mountPath: /var/lib/mysql - volumeClaimTemplates: - - metadata: - name: mariadb-pvc - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: Service -metadata: - name: mariadb - labels: - app: mariadb -spec: - selector: - app: mariadb - ports: - - name: mariadb - port: 3306 diff --git a/kustomize/bases/nextcloud/kustomization.yaml b/kustomize/bases/nextcloud/kustomization.yaml index 91d8416..6f33143 100644 --- a/kustomize/bases/nextcloud/kustomization.yaml +++ b/kustomize/bases/nextcloud/kustomization.yaml @@ -4,11 +4,11 @@ resources: - ingress.yaml secretGenerator: - - name: mariadb-credentials-secret + - name: postgres-credentials-secret type: Opaque behavior: create literals: - - host=mariadb-localhost:3306 + - host=172.18.1.2:5432 - database=nextcloud - username=nextcloud - password=changeme diff --git a/kustomize/bases/nextcloud/nextcloud-deployment.yaml b/kustomize/bases/nextcloud/nextcloud-deployment.yaml index 64c4a5d..9d9693d 100644 --- a/kustomize/bases/nextcloud/nextcloud-deployment.yaml +++ b/kustomize/bases/nextcloud/nextcloud-deployment.yaml @@ -19,25 +19,25 @@ spec: env: - name: TRUSTED_PROXIES value: 10.0.0.0/8 - - name: MYSQL_HOST + - name: POSTGRES_HOST valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: host - - name: MYSQL_DATABASE + - name: POSTGRES_DATABASE valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: database - - name: MYSQL_USER + - name: POSTGRES_USER valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: username - - name: MYSQL_PASSWORD + - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: mariadb-credentials-secret + name: postgres-credentials-secret key: password ports: - name: http diff --git a/kustomize/namespaces/gitea/kustomization.yaml b/kustomize/namespaces/gitea/kustomization.yaml index d155ebb..34eb892 100644 --- a/kustomize/namespaces/gitea/kustomization.yaml +++ b/kustomize/namespaces/gitea/kustomization.yaml @@ -1,6 +1,6 @@ bases: - ../../bases/gitea - # - ../../base/mariadb + # - ../../base/postgres resources: - namespace.yaml diff --git a/kustomize/namespaces/grafana/kustomization.yaml b/kustomize/namespaces/grafana/kustomization.yaml index 205954c..ae10ff8 100644 --- a/kustomize/namespaces/grafana/kustomization.yaml +++ b/kustomize/namespaces/grafana/kustomization.yaml @@ -1,6 +1,6 @@ bases: - ../../bases/grafana - # - ../../base/mariadb + # - ../../base/postgres resources: - namespace.yaml diff --git a/kustomize/namespaces/nextcloud/kustomization.yaml b/kustomize/namespaces/nextcloud/kustomization.yaml index 494a201..47c56ac 100644 --- a/kustomize/namespaces/nextcloud/kustomization.yaml +++ b/kustomize/namespaces/nextcloud/kustomization.yaml @@ -1,6 +1,6 @@ bases: - ../../bases/nextcloud - # - ../../base/mariadb + # - ../../base/postgres resources: - namespace.yaml diff --git a/setup-dev-cluster.sh b/setup-dev-cluster.sh index 7d013cd..ec3692f 100755 --- a/setup-dev-cluster.sh +++ b/setup-dev-cluster.sh @@ -39,23 +39,26 @@ if ! docker ps -a | grep registry-localhost &>/dev/null; then docker run -d \ --name registry-localhost \ --net "k3d-$cluster_name" \ + --ip 172.18.1.1 \ --volume local_registry:/var/lib/registry \ --restart always \ -p 5000:5000 \ registry:2 fi -# local mariadb database -if ! docker ps -a | grep mariadb-localhost &>/dev/null; then - docker volume create local_mariadb +# local postgres database +if ! docker ps -a | grep postgres-localhost &>/dev/null; then + docker volume create local_postgres docker run -d \ - --name mariadb-localhost \ + --name postgres-localhost \ --net "k3d-$cluster_name" \ - --volume local_mariadb:/var/lib/mysql \ + --ip 172.18.1.2 \ + --volume local_postgres:/var/lib/postgresql/data \ + --volume "$PWD/.postgres/initdb.sql:/docker-entrypoint-initdb.d/initdb.sql:ro" \ --restart always \ - --env MYSQL_ROOT_PASSWORD=changeme \ - -p 3306:3306 \ - mariadb:10.5 + --env POSTGRES_PASSWORD=changeme \ + -p 5432:5432 \ + postgres:9.6 sleep 10 fi @@ -65,6 +68,7 @@ if ! docker ps -a | grep nfs-localhost &>/dev/null; then docker run -d \ --name nfs-localhost \ --net "k3d-$cluster_name" \ + --ip 172.18.1.3 \ --volume nfs_local:/data \ --volume /lib/modules:/lib/modules:ro \ --restart always \ @@ -78,22 +82,6 @@ if ! docker ps -a | grep nfs-localhost &>/dev/null; then sleep 10 fi -docker exec mariadb-localhost mysql -vv -uroot -pchangeme -e " -CREATE DATABASE IF NOT EXISTS gitea; -CREATE USER IF NOT EXISTS 'gitea'@'%' IDENTIFIED BY 'changeme'; -GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'%'; - -CREATE DATABASE IF NOT EXISTS grafana; -CREATE USER IF NOT EXISTS 'grafana'@'%' IDENTIFIED BY 'changeme'; -GRANT ALL PRIVILEGES ON grafana.* TO 'grafana'@'%'; - -CREATE DATABASE IF NOT EXISTS nextcloud; -CREATE USER IF NOT EXISTS 'nextcloud'@'%' IDENTIFIED BY 'changeme'; -GRANT ALL PRIVILEGES ON grafana.* TO 'nextcloud'@'%'; - -FLUSH PRIVILEGES; -" - k3d kubeconfig merge "$cluster_name" --switch-context >/dev/null kubectl apply -f "$auto_deploy_manifest" kubectl get nodes