kubernetes_django_postgres_redis icon indicating copy to clipboard operation
kubernetes_django_postgres_redis copied to clipboard

Is there really a need to make your own postgres image?

Open mbaragiola opened this issue 7 years ago • 2 comments

Hello @waprin, thanks for making this project. I have encountered some issues making my own test project on minikube for Django and looking for solutions I found yours.

You make your own postgres image: https://github.com/waprin/kubernetes_django_postgres_redis/blob/master/kubernetes_configs/postgres/postgres_image/Dockerfile

But as described on https://hub.docker.com/_/postgres/, you could set those environment variables with no need of making your own image:

apiVersion: v1
kind: Service
metadata:
  name: postgres-master
  labels:
    app: postgres
    tier: backend
    role: master
spec:
  selector:
    app: postgres
    tier: backend
    role: master
  ports:
    - port: 5432
      targetPort: 5432
  clusterIP: None
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: postgres-data
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi
  hostPath:
    path: /data/postgres-data/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgresdata-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
apiVersion: v1
kind: Secret
metadata:
  name: postgres-secret
type: Opaque
data:
  username: dGVzdGluZwo=
  password: dGVzdGluZwo=
  database: dGVzdGluZwo=
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: postgres-master
spec:
  replicas: 1
  progressDeadlineSeconds: 600
  minReadySeconds: 15
  revisionHistoryLimit: 5
  template:
    metadata:
      labels:
        app: postgres
        role: master
        tier: backend
    spec:
      containers:
      - image: postgres:9.6-alpine
        imagePullPolicy: "IfNotPresent"
        name: master
        env:
        - name: PGDATA
          value: /var/lib/postgresql/data/pgdata
        - name: POSTGRES_USER
          valueFrom:
            secretKeyRef:
              name: postgres-secret
              key: username
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              name: postgres-secret
              key: password
        - name: POSTGRES_DB
          valueFrom:
            secretKeyRef:
              name: postgres-secret
              key: database
        ports:
        - containerPort: 5432
          name: postgres-master
        volumeMounts:
        - name: postgres-data
          mountPath: "/var/lib/postgresql/data"
      volumes:
        - name: postgres-data
          persistentVolumeClaim:
            claimName: postgresdata-claim

What are your thoughts on this? Thanks again.

mbaragiola avatar Aug 17 '17 12:08 mbaragiola

Yep it was probably a mistake, need to take another pass at this repo.

waprin avatar Aug 17 '17 18:08 waprin

To whoever inspired be the snippet above, please note that 'dGVzdGluZwo=' is a base64 version of 'testing\n', not 'testing'. Don't get a bite. :-)

tuttle avatar Mar 14 '21 23:03 tuttle