{"id":11261,"date":"2018-05-18T18:06:22","date_gmt":"2018-05-18T16:06:22","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/"},"modified":"2018-05-18T18:06:22","modified_gmt":"2018-05-18T16:06:22","slug":"customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/","title":{"rendered":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift"},"content":{"rendered":"<p><b>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available.<\/b><\/p>\n<p>In the last two posts <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">we deployed an EDB database container and two pgpool instances<\/a> and then <a href=\"https:\/\/www.dbi-services.com\/blog\/scaling-the-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">scaled that up to include a read only replica<\/a>. In this post will use a <a href=\"https:\/\/docs.openshift.com\/container-platform\/3.9\/dev_guide\/configmaps.html\" target=\"_blank\" rel=\"noopener noreferrer\">ConfigMap<\/a> to adjust parameters in postgresql.conf as you will probably need to do that when you start using the EDB containers in your environment.<\/p>\n<p><!--more--><\/p>\n<p>A ConfigMap is an object that can be used to provide parameter\/values pairs to the container which then will be added to postgresql.conf file of the database containers. Creating a ConfigMap is quite easy, all you need to do is to create a file called &#8220;postgresql.conf.in&#8221; which lists all the parameters you want to get adjusted:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~$ cat \/opt\/ConfigMaps\/postgresql.conf.in\nwork_mem='12MB'\nshared_buffers='56MB'\n<\/pre>\n<p>In that case we want to adjust work_mem and shared_buffers, that&#8217;s it. To load that into OpenShift by using the oc command line utility:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [1,3,6]\">\ndwe@dwe:~$ oc create configmap postgres-map --from-file=\/opt\/ConfigMaps\/postgresql.conf.in\nconfigmap \"postgres-map\" created\n11:01:22 dwe@dwe:~$ oc get configmaps postgres-map\nNAME           DATA      AGE\npostgres-map   1         12m\ndwe@dwe:~$ oc get configmaps postgres-map -o yaml\napiVersion: v1\ndata:\n  postgresql.conf.in: |+\n    work_mem='12MB'\n    shared_buffers='56MB'\n\nkind: ConfigMap\nmetadata:\n  creationTimestamp: 2018-05-18T08:49:35Z\n  name: postgres-map\n  namespace: myproject\n  resourceVersion: \"16618\"\n  selfLink: \/api\/v1\/namespaces\/myproject\/configmaps\/postgres-map\n  uid: 63c3a154-5a78-11e8-992f-ca15bcd30222\n<\/pre>\n<p>The issue is now that our current template does not know anything about that ConfigMap. So either adjust it or create a new one like this (changes are highlighted):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [160,161,168,169,170]\">\ncat edb-as10-0-edb-cust.yaml\napiVersion: v1\nkind: Template\nmetadata:\n   name: edb-as10-custom\n   annotations:\n    description: \"Custom EDB Postgres Advanced Server 10.0 Deployment Config\"\n    tags: \"database,epas,postgres,postgresql\"\n    iconClass: \"icon-postgresql\"\nobjects:\n- apiVersion: v1 \n  kind: Service\n  metadata:\n    name: ${DATABASE_NAME}-service \n    labels:\n      role: loadbalancer\n      cluster: ${DATABASE_NAME}\n  spec:\n    selector:                  \n      lb: ${DATABASE_NAME}-pgpool\n    ports:\n    - name: lb \n      port: ${PGPORT}\n      targetPort: 9999\n    sessionAffinity: None\n    type: LoadBalancer\n- apiVersion: v1 \n  kind: DeploymentConfig\n  metadata:\n    name: ${DATABASE_NAME}-pgpool\n  spec:\n    replicas: 2\n    selector:\n      lb: ${DATABASE_NAME}-pgpool\n    strategy:\n      resources: {}\n      rollingParams:\n        intervalSeconds: 1\n        maxSurge: 25%\n        maxUnavailable: 25%\n        timeoutSeconds: 600\n        updatePeriodSeconds: 1\n      type: Rolling\n    template:\n      metadata:\n        labels:\n          lb: ${DATABASE_NAME}-pgpool\n          role: queryrouter\n          cluster: ${DATABASE_NAME}\n      spec:\n        containers:\n        - name: edb-pgpool\n          env:\n          - name: DATABASE_NAME\n            value: ${DATABASE_NAME} \n          - name: PGPORT\n            value: ${PGPORT} \n          - name: REPL_USER\n            value: ${REPL_USER} \n          - name: ENTERPRISEDB_PASSWORD\n            value: 'postgres' \n          - name: REPL_PASSWORD\n            value: 'postgres' \n          - name: ACCEPT_EULA\n            value: ${ACCEPT_EULA}\n          image: containers.enterprisedb.com\/edb\/edb-pgpool:v3.5\n          imagePullPolicy: IfNotPresent\n          readinessProbe:\n            exec:\n              command:\n              - \/var\/lib\/edb\/testIsReady.sh\n            initialDelaySeconds: 60\n            timeoutSeconds: 5\n    triggers:\n    - type: ConfigChange\n- apiVersion: v1\n  kind: DeploymentConfig\n  metadata:\n    name: ${DATABASE_NAME}-as10-0\n  spec:\n    replicas: 1\n    selector:\n      db: ${DATABASE_NAME}-as10-0 \n    strategy:\n      resources: {}\n      rollingParams:\n        intervalSeconds: 1\n        maxSurge: 25%\n        maxUnavailable: 25%\n        timeoutSeconds: 600\n        updatePeriodSeconds: 1\n      type: Rolling\n    template:\n      metadata:\n        creationTimestamp: null\n        labels:\n          db: ${DATABASE_NAME}-as10-0 \n          cluster: ${DATABASE_NAME}\n      spec:\n        containers:\n        - name: edb-as10 \n          env:\n          - name: DATABASE_NAME \n            value: ${DATABASE_NAME} \n          - name: DATABASE_USER \n            value: ${DATABASE_USER} \n          - name: DATABASE_USER_PASSWORD\n            value: 'postgres' \n          - name: ENTERPRISEDB_PASSWORD\n            value: 'postgres' \n          - name: REPL_USER\n            value: ${REPL_USER} \n          - name: REPL_PASSWORD\n            value: 'postgres' \n          - name: PGPORT\n            value: ${PGPORT} \n          - name: RESTORE_FILE\n            value: ${RESTORE_FILE} \n          - name: LOCALEPARAMETER\n            value: ${LOCALEPARAMETER}\n          - name: CLEANUP_SCHEDULE\n            value: ${CLEANUP_SCHEDULE}\n          - name: EFM_EMAIL\n            value: ${EFM_EMAIL}\n          - name: NAMESERVER\n            value: ${NAMESERVER}\n          - name: POD_NAMESPACE\n            valueFrom:\n              fieldRef:\n                fieldPath: metadata.namespace\n          - name: POD_NODE\n            valueFrom:\n              fieldRef:\n                fieldPath: spec.nodeName \n          - name: POD_IP\n            valueFrom:\n              fieldRef:\n                fieldPath: status.podIP \n          - name: ACCEPT_EULA\n            value: ${ACCEPT_EULA}\n          image: containers.enterprisedb.com\/edb\/edb-as:v10.3\n          imagePullPolicy: IfNotPresent \n          readinessProbe:\n            exec:\n              command:\n              - \/var\/lib\/edb\/testIsReady.sh\n            initialDelaySeconds: 60\n            timeoutSeconds: 5 \n          livenessProbe:\n            exec:\n              command:\n              - \/var\/lib\/edb\/testIsHealthy.sh\n            initialDelaySeconds: 600 \n            timeoutSeconds: 60 \n          ports:\n          - containerPort: ${PGPORT} \n          volumeMounts:\n          - name: ${PERSISTENT_VOLUME}\n            mountPath: \/edbvolume\n          - name: pg-initconf\n            mountPath: \/initconf\n        dnsPolicy: ClusterFirst\n        restartPolicy: Always\n        volumes:\n        - name: ${PERSISTENT_VOLUME}\n          persistentVolumeClaim:\n            claimName: ${PERSISTENT_VOLUME_CLAIM}\n        - name: pg-initconf\n          configMap:\n            name: postgres-map\n             \n    triggers:\n    - type: ConfigChange\nparameters:\n- name: DATABASE_NAME\n  displayName: Database Name\n  description: Name of Postgres database (leave edb for default)\n  value: 'edb'\n- name: DATABASE_USER\n  displayName: Default database user (leave enterprisedb for default)\n  description: Default database user\n  value: 'enterprisedb'\n- name: REPL_USER\n  displayName: Repl user\n  description: repl database user\n  value: 'repl'\n- name: PGPORT\n  displayName: Database Port\n  description: Database Port (leave 5444 for default)\n  value: \"5444\"\n- name: LOCALEPARAMETER\n  displayName: Locale\n  description: Locale of database\n  value: ''\n- name: CLEANUP_SCHEDULE\n  displayName: Host Cleanup Schedule\n  description: Standard cron schedule - min (0 - 59), hour (0 - 23), day of month (1 - 31), month (1 - 12), day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0). Leave it empty if you dont want to cleanup.\n  value: '0:0:*:*:*'\n- name: EFM_EMAIL\n  displayName: Email\n  description: Email for EFM\n  value: 'none@none.com'\n- name: NAMESERVER\n  displayName: Name Server for Email\n  description: Name Server for Email\n  value: '8.8.8.8'\n- name: PERSISTENT_VOLUME\n  displayName: Persistent Volume\n  description: Persistent volume name\n  value: ''\n  required: true\n- name: PERSISTENT_VOLUME_CLAIM \n  displayName: Persistent Volume Claim\n  description: Persistent volume claim name\n  value: ''\n  required: true\n- name: RESTORE_FILE\n  displayName: Restore File\n  description: Restore file location\n  value: ''\n- name: ACCEPT_EULA\n  displayName: Accept end-user license agreement (leave 'Yes' for default)\n  description: Indicates whether user accepts the end-user license agreement\n  value: 'Yes'\n  required: true\n<\/pre>\n<p>Once you imported that into OpenShift (check <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> if you don&#8217;t know how to do that) you get a new template you can deploy from:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\" alt=\"Selection_025\" width=\"1904\" height=\"846\" class=\"aligncenter size-full wp-image-23505\" \/><\/a><\/p>\n<p>When you create a new deployment of that one (again, check <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> if you don&#8217;t know how to do that) you will notice several things when you login to the container once it is up and running:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc rsh edb-as10-0-1-gk8dt\nsh-4.2$ psql postgres\npsql.bin (10.3.8)\nType \"help\" for help.\n\npostgres=# show work_mem;\n work_mem \n----------\n 12MB\n(1 row)\n\npostgres=# show shared_buffers ;\n shared_buffers \n----------------\n 56MB\n(1 row)\n<\/pre>\n<p>First of all and this is what we wanted: The PostgreSQL instance came up with the parameters we specified in the ConfigMap. When you look at the volumes present in the container there is a new one named after what we specified in the template:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ df -h\nFilesystem      Size  Used Avail Use% Mounted on\nnone             18G  4.0G   14G  24% \/\ntmpfs          1002M     0 1002M   0% \/dev\ntmpfs          1002M     0 1002M   0% \/sys\/fs\/cgroup\n\/dev\/sda1        18G  4.0G   14G  24% \/initconf\nshm              64M   12K   64M   1% \/dev\/shm\ntmpfs          1002M   16K 1002M   1% \/run\/secrets\/kubernetes.io\/serviceaccount\n<\/pre>\n<p>Inside that volume there is the postgresql.conf.in file we also specified in the template and that is linked to $PGDATA:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ ls -la \/initconf\ntotal 12\ndrwxrwsrwx  3 root 1000070000 4096 May 18 09:55 .\ndrwxr-xr-x 85 root root       4096 May 18 09:55 ..\ndrwxr-sr-x  2 root 1000070000 4096 May 18 09:55 ..2018_05_18_09_55_19.162613490\nlrwxrwxrwx  1 root root         31 May 18 09:55 ..data -&gt; ..2018_05_18_09_55_19.162613490\nlrwxrwxrwx  1 root root         25 May 18 09:55 postgresql.conf.in -&gt; ..data\/postgresql.conf.in\n<\/pre>\n<p>And finally we can confirm the content of that file:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ cat \/initconf\/postgresql.conf.in \nwork_mem='12MB'\nshared_buffers='56MB'\n<\/pre>\n<p>You can do the same for <a href=\"https:\/\/www.postgresql.org\/docs\/10\/static\/auth-pg-hba-conf.html\" target=\"_blank\" rel=\"noopener noreferrer\">pg_hba.conf<\/a> by creating a new ConfigMap for pg_hba.conf.in. In the next post we&#8217;ll look at how EDB Failover Manager is configured inside the containers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last two posts we deployed an EDB database container and two pgpool instances and then scaled that up to include a read only replica. In this post will use a ConfigMap to adjust parameters in [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":11262,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[601,713,1344,77],"type_dbi":[],"class_list":["post-11261","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-docker","tag-enterprisedb","tag-openshift","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift\" \/>\n<meta property=\"og:description\" content=\"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last two posts we deployed an EDB database container and two pgpool instances and then scaled that up to include a read only replica. In this post will use a ConfigMap to adjust parameters in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-18T16:06:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1904\" \/>\n\t<meta property=\"og:image:height\" content=\"846\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift\",\"datePublished\":\"2018-05-18T16:06:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\"},\"wordCount\":378,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\",\"keywords\":[\"Docker\",\"enterprisedb\",\"OpenShift\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\",\"name\":\"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\",\"datePublished\":\"2018-05-18T16:06:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png\",\"width\":1904,\"height\":846},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/","og_locale":"en_US","og_type":"article","og_title":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift","og_description":"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last two posts we deployed an EDB database container and two pgpool instances and then scaled that up to include a read only replica. In this post will use a ConfigMap to adjust parameters in [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/","og_site_name":"dbi Blog","article_published_time":"2018-05-18T16:06:22+00:00","og_image":[{"width":1904,"height":846,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift","datePublished":"2018-05-18T16:06:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/"},"wordCount":378,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png","keywords":["Docker","enterprisedb","OpenShift","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/","url":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/","name":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png","datePublished":"2018-05-18T16:06:22+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_025-5.png","width":1904,"height":846},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11261"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11261\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/11262"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11261"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}