修改pqsql配置资源,待确认是否正确

This commit is contained in:
yoga 2022-07-06 00:58:53 +08:00
parent 413160b6bc
commit 96e766885b
14 changed files with 286 additions and 0 deletions

View File

@ -0,0 +1,22 @@
#!/bin/bash
set -e
set -u
function create_user_and_database() {
local database=$1
echo " Creating user and database '$database'"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER $database;
CREATE DATABASE $database;
GRANT ALL PRIVILEGES ON DATABASE $database TO $database;
EOSQL
}
if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then
echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES"
for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do
create_user_and_database $db
done
echo "Multiple databases created"
fi

View File

@ -0,0 +1,8 @@
CREATE USER keycloak; --kc1992
CREATE USER wikijs; --wikijsrocks
CREATE DATABASE keycloak;
GRANT ALL PRIVILEGES ON DATABASE logdata TO keycloak;
CREATE DATABASE wiki;
GRANT ALL PRIVILEGES ON DATABASE orderdata TO wikijs;

View File

@ -0,0 +1,84 @@
version: "3.9"
services:
keycloak:
image: jboss/keycloak:16.1.1
restart: unless-stopped
ports:
- 38080:8080
environment:
KEYCLOAK_USER: kcroot
KEYCLOAK_PASSWORD: "Hai_1992"
PROXY_ADDRESS_FORWARDING: 'true'
DB_VENDOR: POSTGRES
DB_ADDR: postgresql
DB_DATABASE: keycloak
DB_USER: postgres
DB_PASSWORD: kc1992
#volumes:
#- /home/ubuntu/.myDockerDir/Keycloak/etc/:/etc/
depends_on:
- postgresql
networks:
- docker_net
postgresql:
image: postgres:14.3
restart: unless-stopped
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: kc1992
command:
- 'postgres'
- '-c'
- 'max_connections=100'
- '-c'
- 'shared_buffers=256MB'
volumes:
- /home/ubuntu/.myDockerDir/Postgresql/data:/var/lib/postgresql/data
#- db-data:/var/lib/postgresql/data
- ./Postgresql/create_more.sql:/docker-entrypoint-initdb.d/create_more.sql
networks:
- docker_net
logging:
driver: "none"
wiki:
image: requarks/wiki
restart: unless-stopped
ports:
- 13444:3000
- 13443:3443
environment:
DB_TYPE: postgres
DB_HOST: postgresql
DB_PORT: 5432
DB_NAME: wiki
DB_USER: wikijs
DB_PASS: wikiPGsql1992
UPGRADE_COMPANION: 1
volumes:
- /share/DockerDir/wikijs/data/content:/wiki/data/content
depends_on:
- postgresql
networks:
- docker_net
wiki-update:
image: requarks/wiki-update-companion
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- postgresql
- wiki
networks:
- docker_net
networks:
docker_net:
external: true
volumes:
db-data:

View File

@ -1,2 +1,10 @@
# docker_template
- k8s
- adminer: 类似phpMyAdmin
---
- k8s的yml中可以定义多个资源内容用`---`行分隔

View File

@ -0,0 +1,26 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: adminer
name: adminer
spec:
replicas: 1
selector:
matchLabels:
app: adminer
template:
metadata:
labels:
app: adminer
spec:
containers:
- name: adminer
image: 'adminer'
ports:
- name: http-9000
protocol: TCP
containerPort: 9000
envFrom:
- configMapRef:
name: adminer

View File

@ -0,0 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: adminer
data:
ADMINER_DESIGN: pappu687
ADMINER_PLUGINS: tables-filter

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: adminer
spec:
selector:
app: adminer
ports:
- protocol: TCP
port: 9000
targetPort: http-9000

View File

@ -0,0 +1,18 @@
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: adminer
spec:
ingressClassName: nginx
rules:
- host: adminer.xyz.cn
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: adminer
port:
number: 9000

View File

@ -0,0 +1,41 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: postgres-prod
name: postgres-prod
spec:
replicas: 1
selector:
matchLabels:
app: postgres-prod
template:
metadata:
labels:
app: postgres-prod
spec:
containers:
- name: db
imagePullPolicy: IfNotPresent
image: 'postgres:14.2-alpine'
ports:
- name: tcp-5432
protocol: TCP
containerPort: 5432
envFrom:
- secretRef:
name: postgres-prod
volumeMounts:
- name: postgres-prod-data
readOnly: false
mountPath: /var/lib/postgresql/data
- name: wikijs-postgres-init
readOnly: true
mountPath: /docker-entrypoint-initdb.d
volumes:
- name: postgres-prod-data
persistentVolumeClaim:
claimName: postgres-prod-data
- name: wikijs-postgres-init
configMap:
name: wikijs-postgres-init

View File

@ -0,0 +1,19 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: wikijs-postgres-init
data:
init.sql: |-
CREATE DATABASE wikijs;
CREATE USER wikijs with password 'Wiki1992.920';
GRANT CONNECT ON DATABASE wikijs to wikijs;
GRANT USAGE ON SCHEMA public TO wikijs;
GRANT SELECT,update,INSERT,delete ON ALL TABLES IN SCHEMA public TO wikijs;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO wikijs;
CREATE DATABASE keycloak;
CREATE USER keycloak with password 'Wiki1992.920';
GRANT CONNECT ON DATABASE keycloak to keycloak;
GRANT USAGE ON SCHEMA public TO keycloak;
GRANT SELECT,update,INSERT,delete ON ALL TABLES IN SCHEMA public TO keycloak;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO keycloak;

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: postgres-prod
spec:
selector:
app: postgres-prod
ports:
- protocol: TCP
port: 5432
targetPort: tcp-5432

11
k8s/wikijs/k8s.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/env bash
# 0. namespace
# 1. define resource
kubectl apply -f wikijs-config.yaml configmap/postgres-config
# 2. define secret
kubectl apply -f wikijs-secret.yaml secret/postgres
# 3. Deploy the Service and Wiki.js application
# 4. apply access from outside

View File

@ -0,0 +1,11 @@
apiVersion: v1
data:
DB_HOST: "<Database Host>"
DB_PORT: "5432"
DB_USER: "wikijs"
DB_TYPE: "postgres"
DB_NAME: "wiki"
kind: ConfigMap
metadata:
name: postgres-config
namespace: wikijs

View File

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: postgres-prod
data:
POSTGRES_PASSWORD: 自行填写
type: Opaque