mirror of
https://github.com/cna-bootcamp/lifesub.git
synced 2026-06-13 04:59:10 +00:00
add manifest
This commit is contained in:
@@ -1,20 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 사용법 함수 정의
|
||||
usage() {
|
||||
echo "Usage: $0 <namespace>"
|
||||
echo "Example: $0 myapp-ns"
|
||||
echo "This script creates PostgreSQL databases for member, mysub, and recommend services in the specified namespace."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 파라미터 체크
|
||||
if [ $# -ne 1 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
NAMESPACE=$1
|
||||
|
||||
# Namespace 존재 여부 확인 후 생성
|
||||
if ! kubectl get namespace lifesub-ns &> /dev/null; then
|
||||
kubectl create namespace lifesub-ns
|
||||
if ! kubectl get namespace ${NAMESPACE} &> /dev/null; then
|
||||
echo "Creating namespace: ${NAMESPACE}"
|
||||
kubectl create namespace ${NAMESPACE}
|
||||
fi
|
||||
|
||||
# Namespace 전환
|
||||
kubens lifesub-ns
|
||||
echo "Switching to namespace: ${NAMESPACE}"
|
||||
kubens ${NAMESPACE}
|
||||
|
||||
# 각 서비스별 설정 및 배포
|
||||
# 각 서비스별 설치
|
||||
for service in member mysub recommend; do
|
||||
# values 파일 생성
|
||||
cat << EOF > values-${service}.yaml
|
||||
# PostgreSQL 아키텍처 설정
|
||||
echo "Installing PostgreSQL for ${service} service..."
|
||||
|
||||
# Helm으로 PostgreSQL 설치 - heredoc으로 직접 values 전달
|
||||
helm upgrade -i ${service} bitnami/postgresql --version 14.3.2 --values - <<EOF
|
||||
architecture: standalone
|
||||
# 글로벌 설정
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
@@ -24,14 +41,11 @@ global:
|
||||
username: "admin"
|
||||
password: "Passw0rd"
|
||||
storageClass: "managed"
|
||||
|
||||
# Primary 설정
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
@@ -39,21 +53,19 @@ primary:
|
||||
requests:
|
||||
memory: "0.5Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 네트워크 설정
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
postgresql: 5432
|
||||
# 보안 설정
|
||||
securityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
runAsUser: 1001
|
||||
EOF
|
||||
|
||||
# Service 파일 생성
|
||||
cat << EOF > svc-${service}.yaml
|
||||
echo "Creating external service for ${service}..."
|
||||
# External Service 생성 - heredoc으로 직접 manifest 적용
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
@@ -71,9 +83,6 @@ spec:
|
||||
type: LoadBalancer
|
||||
EOF
|
||||
|
||||
# Helm으로 PostgreSQL 설치
|
||||
helm upgrade -i ${service} -f values-${service}.yaml bitnami/postgresql --version 14.3.2
|
||||
done
|
||||
|
||||
# 외부 서비스 생성
|
||||
kubectl apply -f svc-${service}.yaml
|
||||
done
|
||||
echo "Installation completed successfully in namespace: ${NAMESPACE}"
|
||||
@@ -1,89 +0,0 @@
|
||||
# PostgreSQL 아키텍처 설정
|
||||
architecture: replication
|
||||
|
||||
# 글로벌 설정
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
postgresPassword: "Passw0rd"
|
||||
replicationPassword: "Passw0rd"
|
||||
database: "member"
|
||||
username: "admin"
|
||||
password: "Passw0rd"
|
||||
storageClass: "managed"
|
||||
|
||||
# Primary 설정
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "2Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# Secondary 설정
|
||||
readReplicas:
|
||||
replicaCount: 2
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# 네트워크 설정
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
postgresql: 5432
|
||||
|
||||
# 보안 설정
|
||||
securityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
runAsUser: 1001
|
||||
@@ -1,89 +0,0 @@
|
||||
# PostgreSQL 아키텍처 설정
|
||||
architecture: replication
|
||||
|
||||
# 글로벌 설정
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
postgresPassword: "Passw0rd"
|
||||
replicationPassword: "Passw0rd"
|
||||
database: "mysub"
|
||||
username: "admin"
|
||||
password: "Passw0rd"
|
||||
storageClass: "managed"
|
||||
|
||||
# Primary 설정
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "2Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# Secondary 설정
|
||||
readReplicas:
|
||||
replicaCount: 2
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# 네트워크 설정
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
postgresql: 5432
|
||||
|
||||
# 보안 설정
|
||||
securityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
runAsUser: 1001
|
||||
@@ -1,89 +0,0 @@
|
||||
# PostgreSQL 아키텍처 설정
|
||||
architecture: replication
|
||||
|
||||
# 글로벌 설정
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
postgresPassword: "Passw0rd"
|
||||
replicationPassword: "Passw0rd"
|
||||
database: "recommend"
|
||||
username: "admin"
|
||||
password: "Passw0rd"
|
||||
storageClass: "managed"
|
||||
|
||||
# Primary 설정
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "2Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# Secondary 설정
|
||||
readReplicas:
|
||||
replicaCount: 2
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# 네트워크 설정
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
postgresql: 5432
|
||||
|
||||
# 보안 설정
|
||||
securityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
runAsUser: 1001
|
||||
@@ -1,89 +0,0 @@
|
||||
# PostgreSQL 아키텍처 설정
|
||||
architecture: replication
|
||||
|
||||
# 글로벌 설정
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
postgresPassword: "Passw0rd"
|
||||
replicationPassword: "Passw0rd"
|
||||
database: "${DATABASE}"
|
||||
username: "admin"
|
||||
password: "Passw0rd"
|
||||
storageClass: "managed"
|
||||
|
||||
# Primary 설정
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "2Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# Secondary 설정
|
||||
readReplicas:
|
||||
replicaCount: 2
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: "managed"
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "0.5"
|
||||
|
||||
# 성능 최적화 설정
|
||||
extraEnvVars:
|
||||
- name: POSTGRESQL_SHARED_BUFFERS
|
||||
value: "1GB"
|
||||
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
|
||||
value: "3GB"
|
||||
- name: POSTGRESQL_MAX_CONNECTIONS
|
||||
value: "200"
|
||||
- name: POSTGRESQL_WORK_MEM
|
||||
value: "16MB"
|
||||
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
|
||||
value: "256MB"
|
||||
|
||||
# 고가용성 설정
|
||||
podAntiAffinityPreset: soft
|
||||
|
||||
# 네트워크 설정
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
postgresql: 5432
|
||||
|
||||
# 보안 설정
|
||||
securityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
runAsUser: 1001
|
||||
Reference in New Issue
Block a user