Add Crunchydata PGO
This commit is contained in:
		
							
								
								
									
										8
									
								
								postgres-clusters/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								postgres-clusters/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# Postgres clusters
 | 
			
		||||
 | 
			
		||||
This is namespace for Postgres clusters managed by operator-bundle
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
kubectl create namespace postgres-clusters
 | 
			
		||||
kubectl apply -n postgres-clusters -f application.yaml
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										102
									
								
								postgres-clusters/application.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								postgres-clusters/application.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: codemowers.io/v1alpha1
 | 
			
		||||
kind: ClusterPostgresDatabaseClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: dedicated
 | 
			
		||||
spec:
 | 
			
		||||
  targetNamespace: postgres-clusters
 | 
			
		||||
  description: "Dedicated Postgres cluster"
 | 
			
		||||
  replicas: 3
 | 
			
		||||
  routers: 2
 | 
			
		||||
  storageClass: postgres
 | 
			
		||||
  podSpec:
 | 
			
		||||
    nodeSelector:
 | 
			
		||||
      dedicated: storage
 | 
			
		||||
    tolerations:
 | 
			
		||||
      - effect: NoSchedule
 | 
			
		||||
        key: dedicated
 | 
			
		||||
        operator: Equal
 | 
			
		||||
        value: storage
 | 
			
		||||
---
 | 
			
		||||
apiVersion: codemowers.io/v1alpha1
 | 
			
		||||
kind: ClusterPostgresDatabaseClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: shared
 | 
			
		||||
spec:
 | 
			
		||||
  targetCluster: shared
 | 
			
		||||
  targetNamespace: postgres-clusters
 | 
			
		||||
  description: "Shared Postgres cluster"
 | 
			
		||||
  replicas: 3
 | 
			
		||||
  routers: 2
 | 
			
		||||
  storageClass: postgres
 | 
			
		||||
  podSpec:
 | 
			
		||||
    nodeSelector:
 | 
			
		||||
      dedicated: storage
 | 
			
		||||
    tolerations:
 | 
			
		||||
      - effect: NoSchedule
 | 
			
		||||
        key: dedicated
 | 
			
		||||
        operator: Equal
 | 
			
		||||
        value: storage
 | 
			
		||||
---
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
  namespace: postgres-clusters
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels: &selector
 | 
			
		||||
      app: pgweb
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels: *selector
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
        - name: pgweb
 | 
			
		||||
          image: sosedoff/pgweb
 | 
			
		||||
          command:
 | 
			
		||||
            - /usr/bin/pgweb
 | 
			
		||||
            - --bind=0.0.0.0
 | 
			
		||||
            - --sessions
 | 
			
		||||
            - --no-ssh
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
  namespace: postgres-clusters
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    app: pgweb
 | 
			
		||||
  ports:
 | 
			
		||||
    - protocol: TCP
 | 
			
		||||
      port: 8081
 | 
			
		||||
      targetPort: 8081
 | 
			
		||||
---
 | 
			
		||||
apiVersion: networking.k8s.io/v1
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
  namespace: postgres-clusters
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/ingress.class: traefik
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.tls: "true"
 | 
			
		||||
    external-dns.alpha.kubernetes.io/target: traefik.k-space.ee
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.middlewares: traefik-sso@kubernetescrd
 | 
			
		||||
spec:
 | 
			
		||||
  rules:
 | 
			
		||||
    - host: pgweb.k-space.ee
 | 
			
		||||
      http:
 | 
			
		||||
        paths:
 | 
			
		||||
          - pathType: Prefix
 | 
			
		||||
            path: "/"
 | 
			
		||||
            backend:
 | 
			
		||||
              service:
 | 
			
		||||
                name: pgweb
 | 
			
		||||
                port:
 | 
			
		||||
                  number: 8081
 | 
			
		||||
  tls:
 | 
			
		||||
    - hosts:
 | 
			
		||||
        - "*.k-space.ee"
 | 
			
		||||
							
								
								
									
										1
									
								
								postgres-operator/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								postgres-operator/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
postgres-operator-examples
 | 
			
		||||
							
								
								
									
										8
									
								
								postgres-operator/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								postgres-operator/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# Postgres operator
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
git clone https://github.com/CrunchyData/postgres-operator-examples
 | 
			
		||||
helm template -n postgres-operator postgres-operator-examples/helm/install --include-crds --set debug=false > application.yml
 | 
			
		||||
kubectl create namespace postgres-operator
 | 
			
		||||
kubectl apply -n postgres-operator --server-side -f application.yml
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										13720
									
								
								postgres-operator/application.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13720
									
								
								postgres-operator/application.yml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,67 +0,0 @@
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 3
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app: pgweb
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: pgweb
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
        - name: pgweb
 | 
			
		||||
          image: sosedoff/pgweb
 | 
			
		||||
          env:
 | 
			
		||||
            - name: PMA_PORT
 | 
			
		||||
              value: "3306"
 | 
			
		||||
            - name: PMA_HOSTS
 | 
			
		||||
              value: mariadb,mariadb.etherpad.svc.cluster.local
 | 
			
		||||
            - name: MYSQL_ROOT_PASSWORD
 | 
			
		||||
              value: password
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
  annotations:
 | 
			
		||||
    prometheus.io/scrape: 'true'
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    app: pgweb
 | 
			
		||||
  ports:
 | 
			
		||||
  - protocol: TCP
 | 
			
		||||
    port: 8081
 | 
			
		||||
    targetPort: 8081
 | 
			
		||||
---
 | 
			
		||||
apiVersion: networking.k8s.io/v1
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: pgweb
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/ingress.class: traefik
 | 
			
		||||
    cert-manager.io/cluster-issuer: default
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.middlewares: authelia-chain-k6-authelia-auth@kubernetescrd
 | 
			
		||||
    traefik.ingress.kubernetes.io/router.tls: "true"
 | 
			
		||||
    external-dns.alpha.kubernetes.io/target: traefik.k-space.ee
 | 
			
		||||
spec:
 | 
			
		||||
  rules:
 | 
			
		||||
  - host: postgres.k-space.ee
 | 
			
		||||
    http:
 | 
			
		||||
      paths:
 | 
			
		||||
      - pathType: Prefix
 | 
			
		||||
        path: "/"
 | 
			
		||||
        backend:
 | 
			
		||||
          service:
 | 
			
		||||
            name: pgweb
 | 
			
		||||
            port:
 | 
			
		||||
              number: 8081
 | 
			
		||||
  tls:
 | 
			
		||||
  - hosts:
 | 
			
		||||
    - postgres.k-space.ee
 | 
			
		||||
    secretName: postgres-tls
 | 
			
		||||
 | 
			
		||||
@@ -1,86 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: StatefulSet
 | 
			
		||||
metadata:
 | 
			
		||||
  name: postgres
 | 
			
		||||
spec:
 | 
			
		||||
  serviceName: postgres
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app: postgres
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: postgres
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: exporter
 | 
			
		||||
        image: prometheuscommunity/postgres-exporter:latest
 | 
			
		||||
        env:
 | 
			
		||||
        - name: DATA_SOURCE_NAME
 | 
			
		||||
          value: exporter@tcp(127.0.0.1)/
 | 
			
		||||
      - name: postgres
 | 
			
		||||
        image: postgres:latest
 | 
			
		||||
        securityContext:
 | 
			
		||||
          readOnlyRootFilesystem: true
 | 
			
		||||
          runAsNonRoot: true
 | 
			
		||||
          runAsUser: 999
 | 
			
		||||
        env:
 | 
			
		||||
        - name: POSTGRES_USER
 | 
			
		||||
          valueFrom:
 | 
			
		||||
            fieldRef:
 | 
			
		||||
              fieldPath: metadata.namespace
 | 
			
		||||
        - name: POSTGRES_DB
 | 
			
		||||
          valueFrom:
 | 
			
		||||
            fieldRef:
 | 
			
		||||
              fieldPath: metadata.namespace
 | 
			
		||||
        - name: POSTGRES_PASSWORD
 | 
			
		||||
          valueFrom:
 | 
			
		||||
            secretKeyRef:
 | 
			
		||||
              name: postgres-secrets
 | 
			
		||||
              key: POSTGRES_PASSWORD
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - mountPath: /var/lib/postgresql
 | 
			
		||||
          name: postgres-data
 | 
			
		||||
        - mountPath: /var/run/postgresql
 | 
			
		||||
          name: postgres-run
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: postgres-run
 | 
			
		||||
        emptyDir:
 | 
			
		||||
          medium: Memory
 | 
			
		||||
          sizeLimit: 1Mi
 | 
			
		||||
  volumeClaimTemplates:
 | 
			
		||||
  - metadata:
 | 
			
		||||
      name: postgres-data
 | 
			
		||||
    spec:
 | 
			
		||||
      storageClassName: longhorn
 | 
			
		||||
      accessModes:
 | 
			
		||||
        - ReadWriteOnce
 | 
			
		||||
      resources:
 | 
			
		||||
        requests:
 | 
			
		||||
          storage: 2Gi
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: postgres
 | 
			
		||||
spec:
 | 
			
		||||
  ports:
 | 
			
		||||
    - protocol: TCP
 | 
			
		||||
      port: 5432
 | 
			
		||||
  selector:
 | 
			
		||||
    app: postgres
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: postgres-exporter
 | 
			
		||||
  annotations:
 | 
			
		||||
    prometheus.io/scrape: 'true'
 | 
			
		||||
spec:
 | 
			
		||||
  ports:
 | 
			
		||||
    - protocol: TCP
 | 
			
		||||
      port: 9187
 | 
			
		||||
  selector:
 | 
			
		||||
    app: exporter
 | 
			
		||||
		Reference in New Issue
	
	Block a user