Files
awesome-kubernetes/site/crunchydata/index.html

3365 lines
106 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Enterprise-grade curated portal for the modern Cloud Native ecosystem. High-density, AI-driven selection of top-tier resources.">
<meta name="author" content="Nubenetes">
<link rel="canonical" href="https://nubenetes.com/crunchydata/">
<link rel="prev" href="../serverless/">
<link rel="next" href="../databases/">
<link rel="icon" href="../images/favicon-ultra.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>Crunchydata - Nubenetes V2 | The AI's Cut</title>
<link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap">
<link rel="stylesheet" href="../static/extra.css">
<link rel="stylesheet" href="../static/v2_elite.css?v=2.3.44">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#crunchy-data-postgresql-operator" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="Nubenetes V2 | The AI&#39;s Cut" class="md-header__button md-logo" aria-label="Nubenetes V2 | The AI's Cut" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Nubenetes V2 | The AI's Cut
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Crunchydata
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 11c0 5.55-3.84 10.74-9 12-5.16-1.26-9-6.45-9-12V5l9-4 9 4zm-9 10c3.75-1 7-5.46 7-9.78V6.3l-7-3.12L5 6.3v4.92C5 15.54 8.25 20 12 21m-3-6.67c1.76 2.17 5.13 2.24 6.97.07.23-.27.08-.68-.26-.74a4.5 4.5 0 0 1-3.18-2.2 4.5 4.5 0 0 1-.32-3.86.453.453 0 0 0-.51-.6c-3.34.62-4.89 4.61-2.7 7.33"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/nubenetes/awesome-kubernetes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
nubenetes/awesome-kubernetes
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="https://nubenetes.com/v1/" class="md-tabs__link">
🔙 Back to V1 (Exhaustive)
</a>
</li>
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
The 2026 Vision
</a>
</li>
<li class="md-tabs__item">
<a href="../tags/" class="md-tabs__link">
Technical Tags
</a>
</li>
<li class="md-tabs__item">
<a href="../videos/" class="md-tabs__link">
Agentic Video Hub
</a>
</li>
<li class="md-tabs__item">
<a href="../ai-agents-mcp/" class="md-tabs__link">
AI
</a>
</li>
<li class="md-tabs__item">
<a href="../about/" class="md-tabs__link">
Architectural Foundations
</a>
</li>
<li class="md-tabs__item">
<a href="../chaos-engineering/" class="md-tabs__link">
Platform & Site Reliability
</a>
</li>
<li class="md-tabs__item">
<a href="../ansible/" class="md-tabs__link">
Hardened Infrastructure
</a>
</li>
<li class="md-tabs__item">
<a href="../GoogleCloudPlatform/" class="md-tabs__link">
Cloud Providers (Hyperscalers)
</a>
</li>
<li class="md-tabs__item">
<a href="../caching/" class="md-tabs__link">
Networking & Service Mesh
</a>
</li>
<li class="md-tabs__item">
<a href="../container-managers/" class="md-tabs__link">
The Container Stack
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="./" class="md-tabs__link">
Data & Advanced Analytics
</a>
</li>
<li class="md-tabs__item">
<a href="../argo/" class="md-tabs__link">
Engineering Pipeline
</a>
</li>
<li class="md-tabs__item">
<a href="../ChromeDevTools/" class="md-tabs__link">
Developer Ecosystem
</a>
</li>
<li class="md-tabs__item">
<a href="../appointment-scheduling/" class="md-tabs__link">
Career & Industry
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="Nubenetes V2 | The AI&#39;s Cut" class="md-nav__button md-logo" aria-label="Nubenetes V2 | The AI's Cut" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
Nubenetes V2 | The AI's Cut
</label>
<div class="md-nav__source">
<a href="https://github.com/nubenetes/awesome-kubernetes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
nubenetes/awesome-kubernetes
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="https://nubenetes.com/v1/" class="md-nav__link">
<span class="md-ellipsis">
🔙 Back to V1 (Exhaustive)
</span>
</a>
</li>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
The 2026 Vision
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../tags/" class="md-nav__link">
<span class="md-ellipsis">
Technical Tags
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../videos/" class="md-nav__link">
<span class="md-ellipsis">
Agentic Video Hub
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../ai-agents-mcp/" class="md-nav__link">
<span class="md-ellipsis">
AI
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../about/" class="md-nav__link">
<span class="md-ellipsis">
Architectural Foundations
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../chaos-engineering/" class="md-nav__link">
<span class="md-ellipsis">
Platform & Site Reliability
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../ansible/" class="md-nav__link">
<span class="md-ellipsis">
Hardened Infrastructure
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../GoogleCloudPlatform/" class="md-nav__link">
<span class="md-ellipsis">
Cloud Providers (Hyperscalers)
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../caching/" class="md-nav__link">
<span class="md-ellipsis">
Networking & Service Mesh
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../container-managers/" class="md-nav__link">
<span class="md-ellipsis">
The Container Stack
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" checked>
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="">
<span class="md-ellipsis">
Data & Advanced Analytics
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
Data & Advanced Analytics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Crunchydata
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Crunchydata
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#table-of-contents" class="md-nav__link">
<span class="md-ellipsis">
Table of Contents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#application-development" class="md-nav__link">
<span class="md-ellipsis">
Application Development
</span>
</a>
<nav class="md-nav" aria-label="Application Development">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#python" class="md-nav__link">
<span class="md-ellipsis">
Python
</span>
</a>
<nav class="md-nav" aria-label="Python">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#object-relational-mapping" class="md-nav__link">
<span class="md-ellipsis">
Object-Relational Mapping
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#architectural-foundations" class="md-nav__link">
<span class="md-ellipsis">
Architectural Foundations
</span>
</a>
<nav class="md-nav" aria-label="Architectural Foundations">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#kubernetes-tools" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Tools
</span>
</a>
<nav class="md-nav" aria-label="Kubernetes Tools">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#general-reference" class="md-nav__link">
<span class="md-ellipsis">
General Reference
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#cloud-native" class="md-nav__link">
<span class="md-ellipsis">
Cloud Native
</span>
</a>
<nav class="md-nav" aria-label="Cloud Native">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#gke" class="md-nav__link">
<span class="md-ellipsis">
GKE
</span>
</a>
<nav class="md-nav" aria-label="GKE">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#postgresql-operator" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL Operator
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#kubernetes-operators" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Operators
</span>
</a>
<nav class="md-nav" aria-label="Kubernetes Operators">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#legacy-operators" class="md-nav__link">
<span class="md-ellipsis">
Legacy Operators
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#multi-tenancy" class="md-nav__link">
<span class="md-ellipsis">
Multi-Tenancy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#postgresql-operator-1" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL Operator (1)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#postgresql-scaling" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL Scaling
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#kubernetes-storage" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Storage
</span>
</a>
<nav class="md-nav" aria-label="Kubernetes Storage">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#rook-ceph" class="md-nav__link">
<span class="md-ellipsis">
Rook Ceph
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#openshift" class="md-nav__link">
<span class="md-ellipsis">
OpenShift
</span>
</a>
<nav class="md-nav" aria-label="OpenShift">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#high-availability" class="md-nav__link">
<span class="md-ellipsis">
High Availability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#operator-lifecycle-manager" class="md-nav__link">
<span class="md-ellipsis">
Operator Lifecycle Manager
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#postgresql-operator-2" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL Operator (2)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#postgresql" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL
</span>
</a>
<nav class="md-nav" aria-label="PostgreSQL">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#backup-and-recovery" class="md-nav__link">
<span class="md-ellipsis">
Backup and Recovery
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#container-images" class="md-nav__link">
<span class="md-ellipsis">
Container Images
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#high-availability-1" class="md-nav__link">
<span class="md-ellipsis">
High Availability (1)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-deployment" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Deployment
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#scalability" class="md-nav__link">
<span class="md-ellipsis">
Scalability
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#container-orchestration" class="md-nav__link">
<span class="md-ellipsis">
Container Orchestration
</span>
</a>
<nav class="md-nav" aria-label="Container Orchestration">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-swarm" class="md-nav__link">
<span class="md-ellipsis">
Docker Swarm
</span>
</a>
<nav class="md-nav" aria-label="Docker Swarm">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#postgresql-deployment" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL Deployment
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#data-infrastructure" class="md-nav__link">
<span class="md-ellipsis">
Data Infrastructure
</span>
</a>
<nav class="md-nav" aria-label="Data Infrastructure">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bare-metal-provisioning" class="md-nav__link">
<span class="md-ellipsis">
Bare Metal Provisioning
</span>
</a>
<nav class="md-nav" aria-label="Bare Metal Provisioning">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#kubernetes-installation" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Installation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#database-operators" class="md-nav__link">
<span class="md-ellipsis">
Database Operators
</span>
</a>
<nav class="md-nav" aria-label="Database Operators">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#postgresql-1" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL (1)
</span>
</a>
<nav class="md-nav" aria-label="PostgreSQL (1)">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#backup-and-recovery-1" class="md-nav__link">
<span class="md-ellipsis">
Backup and Recovery (1)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#connection-pooling" class="md-nav__link">
<span class="md-ellipsis">
Connection Pooling
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#database-administration" class="md-nav__link">
<span class="md-ellipsis">
Database Administration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#developer-experience" class="md-nav__link">
<span class="md-ellipsis">
Developer Experience
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#gitops-implementation" class="md-nav__link">
<span class="md-ellipsis">
GitOps Implementation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#high-availability-2" class="md-nav__link">
<span class="md-ellipsis">
High Availability (2)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#installation" class="md-nav__link">
<span class="md-ellipsis">
Installation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#multi-cluster" class="md-nav__link">
<span class="md-ellipsis">
Multi-Cluster
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#packaging-and-cd" class="md-nav__link">
<span class="md-ellipsis">
Packaging and CD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#performance-tuning" class="md-nav__link">
<span class="md-ellipsis">
Performance Tuning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#platform-integration" class="md-nav__link">
<span class="md-ellipsis">
Platform Integration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#release-highlights" class="md-nav__link">
<span class="md-ellipsis">
Release Highlights
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#scheduling-and-affinity" class="md-nav__link">
<span class="md-ellipsis">
Scheduling and Affinity
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#security" class="md-nav__link">
<span class="md-ellipsis">
Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#source-code" class="md-nav__link">
<span class="md-ellipsis">
Source Code
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#storage-management" class="md-nav__link">
<span class="md-ellipsis">
Storage Management
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#developer-ecosystem" class="md-nav__link">
<span class="md-ellipsis">
Developer Ecosystem
</span>
</a>
<nav class="md-nav" aria-label="Developer Ecosystem">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#reference-portals" class="md-nav__link">
<span class="md-ellipsis">
Reference Portals
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#database" class="md-nav__link">
<span class="md-ellipsis">
Database
</span>
</a>
<nav class="md-nav" aria-label="Database">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#postgresql-2" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL (2)
</span>
</a>
<nav class="md-nav" aria-label="PostgreSQL (2)">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#data-ingestion" class="md-nav__link">
<span class="md-ellipsis">
Data Ingestion
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#data-replication" class="md-nav__link">
<span class="md-ellipsis">
Data Replication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#database-administration-1" class="md-nav__link">
<span class="md-ellipsis">
Database Administration (1)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#developer-tutorials" class="md-nav__link">
<span class="md-ellipsis">
Developer Tutorials
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#enterprise-solutions" class="md-nav__link">
<span class="md-ellipsis">
Enterprise Solutions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#high-availability-3" class="md-nav__link">
<span class="md-ellipsis">
High Availability (3)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#open-source-repositories" class="md-nav__link">
<span class="md-ellipsis">
Open Source Repositories
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#performance-tuning-1" class="md-nav__link">
<span class="md-ellipsis">
Performance Tuning (1)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#database-migration" class="md-nav__link">
<span class="md-ellipsis">
Database Migration
</span>
</a>
<nav class="md-nav" aria-label="Database Migration">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#oracle-to-postgres" class="md-nav__link">
<span class="md-ellipsis">
Oracle to Postgres
</span>
</a>
<nav class="md-nav" aria-label="Oracle to Postgres">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#data-architecture" class="md-nav__link">
<span class="md-ellipsis">
Data Architecture
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#migration-tools" class="md-nav__link">
<span class="md-ellipsis">
Migration Tools
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#observability" class="md-nav__link">
<span class="md-ellipsis">
Observability
</span>
</a>
<nav class="md-nav" aria-label="Observability">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#postgresql-3" class="md-nav__link">
<span class="md-ellipsis">
PostgreSQL (3)
</span>
</a>
<nav class="md-nav" aria-label="PostgreSQL (3)">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#database-monitoring" class="md-nav__link">
<span class="md-ellipsis">
Database Monitoring
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#long-term-storage" class="md-nav__link">
<span class="md-ellipsis">
Long-Term Storage
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#platform-security" class="md-nav__link">
<span class="md-ellipsis">
Platform Security
</span>
</a>
<nav class="md-nav" aria-label="Platform Security">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#access-control" class="md-nav__link">
<span class="md-ellipsis">
Access Control
</span>
</a>
<nav class="md-nav" aria-label="Access Control">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#service-accounts" class="md-nav__link">
<span class="md-ellipsis">
Service Accounts
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../databases/" class="md-nav__link">
<span class="md-ellipsis">
Databases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../message-queue/" class="md-nav__link">
<span class="md-ellipsis">
Message Queue
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../newsql/" class="md-nav__link">
<span class="md-ellipsis">
Newsql
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nosql/" class="md-nav__link">
<span class="md-ellipsis">
NoSQL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../yaml/" class="md-nav__link">
<span class="md-ellipsis">
Yaml
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../argo/" class="md-nav__link">
<span class="md-ellipsis">
Engineering Pipeline
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../ChromeDevTools/" class="md-nav__link">
<span class="md-ellipsis">
Developer Ecosystem
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../appointment-scheduling/" class="md-nav__link">
<span class="md-ellipsis">
Career & Industry
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/nubenetes/awesome-kubernetes/edit/master/v2-docs/crunchydata.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
</a>
<a href="https://github.com/nubenetes/awesome-kubernetes/raw/master/v2-docs/crunchydata.md" title="View source of this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
</a>
<h1 id="crunchy-data-postgresql-operator">Crunchy Data PostgreSQL Operator<a class="headerlink" href="#crunchy-data-postgresql-operator" title="Permanent link">&para;</a></h1>
<div class="admonition tip">
<p class="admonition-title">Nubenetes V2 Elite Portal</p>
<p>You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the <a href="/v1/crunchydata/"><strong>V1 Historical Archive</strong></a>.</p>
</div>
<div class="admonition info">
<p class="admonition-title">Architectural Context</p>
<p>Detailed reference for Crunchy Data PostgreSQL Operator in the context of Data &amp; Advanced Analytics.</p>
</div>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">&para;</a></h2>
<ol>
<li><a href="#application-development">Application Development</a></li>
<li><a href="#python">Python</a><ul>
<li><a href="#object-relational-mapping">Object-Relational Mapping</a></li>
</ul>
</li>
<li><a href="#architectural-foundations">Architectural Foundations</a></li>
<li><a href="#kubernetes-tools">Kubernetes Tools</a><ul>
<li><a href="#general-reference">General Reference</a></li>
</ul>
</li>
<li><a href="#cloud-native">Cloud Native</a></li>
<li><a href="#gke">GKE</a><ul>
<li><a href="#postgresql-operator">PostgreSQL Operator</a></li>
</ul>
</li>
<li><a href="#kubernetes-operators">Kubernetes Operators</a><ul>
<li><a href="#legacy-operators">Legacy Operators</a></li>
<li><a href="#multi-tenancy">Multi-Tenancy</a></li>
<li><a href="#postgresql-operator-1">PostgreSQL Operator</a></li>
<li><a href="#postgresql-scaling">PostgreSQL Scaling</a></li>
</ul>
</li>
<li><a href="#kubernetes-storage">Kubernetes Storage</a><ul>
<li><a href="#rook-ceph">Rook Ceph</a></li>
</ul>
</li>
<li><a href="#openshift">OpenShift</a><ul>
<li><a href="#high-availability">High Availability</a></li>
<li><a href="#operator-lifecycle-manager">Operator Lifecycle Manager</a></li>
<li><a href="#postgresql-operator-2">PostgreSQL Operator</a></li>
</ul>
</li>
<li><a href="#postgresql">PostgreSQL</a><ul>
<li><a href="#backup-and-recovery">Backup and Recovery</a></li>
<li><a href="#container-images">Container Images</a></li>
<li><a href="#high-availability-1">High Availability</a></li>
<li><a href="#kubernetes-deployment">Kubernetes Deployment</a></li>
<li><a href="#scalability">Scalability</a></li>
</ul>
</li>
<li><a href="#container-orchestration">Container Orchestration</a></li>
<li><a href="#docker-swarm">Docker Swarm</a><ul>
<li><a href="#postgresql-deployment">PostgreSQL Deployment</a></li>
</ul>
</li>
<li><a href="#data-infrastructure">Data Infrastructure</a></li>
<li><a href="#bare-metal-provisioning">Bare Metal Provisioning</a><ul>
<li><a href="#kubernetes-installation">Kubernetes Installation</a></li>
</ul>
</li>
<li><a href="#database-operators">Database Operators</a><ul>
<li><a href="#postgresql-1">PostgreSQL</a></li>
<li><a href="#backup-and-recovery-1">Backup and Recovery</a></li>
<li><a href="#connection-pooling">Connection Pooling</a></li>
<li><a href="#database-administration">Database Administration</a></li>
<li><a href="#developer-experience">Developer Experience</a></li>
<li><a href="#gitops-implementation">GitOps Implementation</a></li>
<li><a href="#high-availability-2">High Availability</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#multi-cluster">Multi-Cluster</a></li>
<li><a href="#packaging-and-cd">Packaging and CD</a></li>
<li><a href="#performance-tuning">Performance Tuning</a></li>
<li><a href="#platform-integration">Platform Integration</a></li>
<li><a href="#release-highlights">Release Highlights</a></li>
<li><a href="#scheduling-and-affinity">Scheduling and Affinity</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#source-code">Source Code</a></li>
<li><a href="#storage-management">Storage Management</a></li>
</ul>
</li>
<li><a href="#developer-ecosystem">Developer Ecosystem</a><ul>
<li><a href="#reference-portals">Reference Portals</a></li>
</ul>
</li>
<li><a href="#database">Database</a></li>
<li><a href="#postgresql-2">PostgreSQL</a><ul>
<li><a href="#data-ingestion">Data Ingestion</a></li>
<li><a href="#data-replication">Data Replication</a></li>
<li><a href="#database-administration-1">Database Administration</a></li>
<li><a href="#developer-tutorials">Developer Tutorials</a></li>
<li><a href="#enterprise-solutions">Enterprise Solutions</a></li>
<li><a href="#high-availability-3">High Availability</a></li>
<li><a href="#open-source-repositories">Open Source Repositories</a></li>
<li><a href="#performance-tuning-1">Performance Tuning</a></li>
</ul>
</li>
<li><a href="#database-migration">Database Migration</a></li>
<li><a href="#oracle-to-postgres">Oracle to Postgres</a><ul>
<li><a href="#data-architecture">Data Architecture</a></li>
<li><a href="#migration-tools">Migration Tools</a></li>
</ul>
</li>
<li><a href="#observability">Observability</a></li>
<li><a href="#postgresql-3">PostgreSQL</a><ul>
<li><a href="#database-monitoring">Database Monitoring</a></li>
<li><a href="#long-term-storage">Long-Term Storage</a></li>
</ul>
</li>
<li><a href="#platform-security">Platform Security</a></li>
<li><a href="#access-control">Access Control</a><ul>
<li><a href="#service-accounts">Service Accounts</a></li>
</ul>
</li>
</ol>
<h2 id="application-development">Application Development<a class="headerlink" href="#application-development" title="Permanent link">&para;</a></h2>
<h3 id="python">Python<a class="headerlink" href="#python" title="Permanent link">&para;</a></h3>
<h4 id="object-relational-mapping">Object-Relational Mapping<a class="headerlink" href="#object-relational-mapping" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/composite-primary-keys-postgresql-and-django">info.crunchydata.com: Composite Primary Keys, PostgreSQL and Django</a> <span class='md-tag md-tag--warning'>[PYTHON CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Addresses the implementation limits of compound primary keys within Django ORM integration when using PostgreSQL. Explains mapping workarounds, schema-migration patterns, and clean architecture solutions.</li>
</ul>
<h2 id="architectural-foundations">Architectural Foundations<a class="headerlink" href="#architectural-foundations" title="Permanent link">&para;</a></h2>
<h3 id="kubernetes-tools">Kubernetes Tools<a class="headerlink" href="#kubernetes-tools" title="Permanent link">&para;</a></h3>
<h4 id="general-reference">General Reference<a class="headerlink" href="#general-reference" title="Permanent link">&para;</a></h4>
<ul>
<li><a href="https://dzone.com/articles/postgresql-ha-and-kubernetes">dzone: PostgreSQL HA and Kubernetes</a> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A curated technical resource and architectural guide covering dzone: PostgreSQL HA and Kubernetes in the Kubernetes Tools ecosystem.</li>
<li><a href="https://docs.openshift.com/container-platform/4.1/authentication/using-service-accounts-in-applications.html">ref1</a> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A curated technical resource and architectural guide covering ref1 in the Kubernetes Tools ecosystem.</li>
<li><a href="https://docs.openshift.com/container-platform/3.6/admin_guide/manage_scc.html">ref1</a> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A curated technical resource and architectural guide covering ref1 in the Kubernetes Tools ecosystem.</li>
<li><a href="https://access.crunchydata.com/documentation/postgres-operator/latest/operatorcli/pgo-overview">ref1</a> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A curated technical resource and architectural guide covering ref1 in the Kubernetes Tools ecosystem.</li>
<li><a href="https://dzone.com/articles/understanding-openshift-security-context-constrain">ref3</a> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A curated technical resource and architectural guide covering ref3 in the Kubernetes Tools ecosystem.</li>
</ul>
<h2 id="cloud-native">Cloud Native<a class="headerlink" href="#cloud-native" title="Permanent link">&para;</a></h2>
<h3 id="gke">GKE<a class="headerlink" href="#gke" title="Permanent link">&para;</a></h3>
<h4 id="postgresql-operator">PostgreSQL Operator<a class="headerlink" href="#postgresql-operator" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/install-postgres-operator-kubernetes-on-gke-ansible">info.crunchydata.com: Deploying the PostgreSQL Operator on GKE</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Teaches the deployment process of the Crunchy PostgreSQL Operator onto Google Kubernetes Engine (GKE) clusters using automated Ansible playbooks. Details storage class mappings and GKE-specific identity policies.</li>
</ul>
<h3 id="kubernetes-operators">Kubernetes Operators<a class="headerlink" href="#kubernetes-operators" title="Permanent link">&para;</a></h3>
<h4 id="legacy-operators">Legacy Operators<a class="headerlink" href="#legacy-operators" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2018)</strong> <a href="https://www.youtube.com/watch?v=gaXlrlz7GVc">Youtube: Crunchy PostgreSQL Operator for Kubernetes 3.4 Overview (2018)</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Demonstration video analyzing Crunchy PostgreSQL Operator version 3.4 patterns. Focuses on dynamic scale-out configurations, primary-replica promotion mechanics, and native command-line interface (pgo CLI) structures.</li>
<li><strong>(2017)</strong> <a href="https://www.youtube.com/watch?v=HX10WWTRiTY">Youtube: Demo of Crunchy Data Postgres Operator v1.0.0 (2017)</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A historical video demonstration of the first public iteration (v1.0.0) of the Crunchy PostgreSQL Operator. Illustrates raw container deployments and early persistent volume claim configurations under primitive Kubernetes schemas.</li>
</ul>
<h4 id="multi-tenancy">Multi-Tenancy<a class="headerlink" href="#multi-tenancy" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://thenewstack.io/advanced-kubernetes-namespace-management-with-the-postgresql-operator">thenewstack.io: Advanced Kubernetes Namespace Management with the PostgreSQL Operator 🌟</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Analyses advanced namespace orchestration patterns utilizing the Crunchy PostgreSQL Operator. Walks through configuring security boundaries and multi-tenant isolation policies across multiple database instances.</li>
</ul>
<h4 id="postgresql-operator-1">PostgreSQL Operator (1)<a class="headerlink" href="#postgresql-operator-1" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/news/crunchy-postgresql-for-kuberenetes-4.3">info.crunchydata.com: Crunchy PostgreSQL for Kubernetes 4.3 Released</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Release analysis profiling Crunchy PostgreSQL Operator v4.3. Highlights enhancements such as automated multi-namespace support, security context constraints, and integrated pgAdmin deployment patterns.</li>
<li><strong>(2020)</strong> <a href="https://www.postgresql.org/about/news/crunchy-postgresql-operator-45-enhanced-monitoring-custom-annotations-postgresql-13-2086">postgresql.org: Crunchy PostgreSQL Operator 4.5: Enhanced Monitoring, Custom Annotations, PostgreSQL 13 🌟</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Community release documentation of Crunchy PostgreSQL Operator v4.5. Focuses on support configurations for PostgreSQL 13, pod custom annotations, and major Prometheus exporter stack upgrades.</li>
<li><strong>(2019)</strong> <a href="https://www.crunchydata.com/blog/crunchy-postgres-kubernetes-operator-4.0">crunchydata blog: What's New in Crunchy PostgreSQL Operator 4.0</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Archival post announcing the release of Crunchy PostgreSQL Operator v4.0. Highlights early custom resource design paradigms, scaling improvements, and the transition of core tasks toward Patroni and pgBackRest systems.</li>
</ul>
<h4 id="postgresql-scaling">PostgreSQL Scaling<a class="headerlink" href="#postgresql-scaling" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2019)</strong> <a href="https://opensource.com/article/19/2/scaling-postgresql-kubernetes-operators">opensource.com: Scaling PostgreSQL with Kubernetes Operators 🌟</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explores the technical theory of the Kubernetes Operator pattern applied to database state management. Illustrates how operators capture advanced human tasks like database scaling, backups, and minor migrations.</li>
</ul>
<h3 id="kubernetes-storage">Kubernetes Storage<a class="headerlink" href="#kubernetes-storage" title="Permanent link">&para;</a></h3>
<h4 id="rook-ceph">Rook Ceph<a class="headerlink" href="#rook-ceph" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/crunchy-postgresql-operator-with-rook-ceph-storage">info.crunchydata.com: Using the PostgreSQL Operator with Rook Ceph Storage</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Architectural integration review detailing the implementation of Rook Ceph storage solutions to back Crunchy PostgreSQL Operator deployments. Analyzes performance characteristics, scale configurations, and replication safety parameters.</li>
</ul>
<h3 id="openshift">OpenShift<a class="headerlink" href="#openshift" title="Permanent link">&para;</a></h3>
<h4 id="high-availability">High Availability<a class="headerlink" href="#high-availability" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.youtube.com/watch?v=9jbR9lZuSU0">youtube: OCB: High Availability PostgreSQL and more on OpenShift - Jonathan Katz (Crunchy Data) 🌟</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Video presentation exploring the deployment of enterprise-grade, highly-available PostgreSQL patterns on OpenShift using Patroni. Analyzes storage profiles, automated routing, and backup schedules.</li>
</ul>
<h4 id="operator-lifecycle-manager">Operator Lifecycle Manager<a class="headerlink" href="#operator-lifecycle-manager" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2019)</strong> <a href="https://www.youtube.com/watch?v=X4vuktlK0Tg">Youtube: OpenShift Meetup Tokyo #05 - Operator and Operator Lifecycle Manager on OpenShift (2019, openshift 4.1)</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Technical deep dive from a Tokyo meetup illustrating deployment workflows with Operator Lifecycle Manager (OLM) on OpenShift 4.1. Describes package manifest curation and cross-namespace operator scheduling controls.</li>
</ul>
<h4 id="postgresql-operator-2">PostgreSQL Operator (2)<a class="headerlink" href="#postgresql-operator-2" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/getting-started-with-postgresql-operator-4.3-in-openshift">info.crunchydata.com: Getting Started with PostgreSQL Operator 4.3 in OpenShift</a> <span class='md-tag md-tag--warning'>[SHELL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An identical operational reference detailing step-by-step procedures to provision PostgreSQL Operator 4.3 instances inside secure, multi-tenant OpenShift execution clusters.</li>
</ul>
<h3 id="postgresql">PostgreSQL<a class="headerlink" href="#postgresql" title="Permanent link">&para;</a></h3>
<h4 id="backup-and-recovery">Backup and Recovery<a class="headerlink" href="#backup-and-recovery" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/pgbackrest-performing-backups-on-a-standby-cluster">info.crunchydata.com: pgBackRest - Performing Backups on a Standby Cluster</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An optimization manual guiding configuration patterns to run resource-heavy pgBackRest backup jobs directly from standby replicas, minimizing performance degradation on primary database targets.</li>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/schedule-postgresql-backups-and-retention-with-kubernetes">info.crunchydata.com: Scheduled PostgreSQL Backups and Retention Policies with Kubernetes</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Details declarative backup execution schemas and Point-in-Time Recovery (PITR) configurations using pgBackRest within the operator framework. Highlights bucket retention controls and storage backup tier optimizations.</li>
</ul>
<h4 id="container-images">Container Images<a class="headerlink" href="#container-images" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2026)</strong> <a href="https://access.crunchydata.com/documentation/crunchy-postgres-containers/latest">Documentation: Crunchy Data Container Suite 🌟</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Highly detailed documentation defining construction parameters for Crunchy Data's hardened database container images. Covers security boundaries, pgBackRest, Patroni integrations, and environment variable configuration sets.</li>
</ul>
<h4 id="high-availability-1">High Availability (1)<a class="headerlink" href="#high-availability-1" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/deploy-high-availability-postgresql-on-kubernetes">info.crunchydata.com: Deploy High-Availability PostgreSQL Clusters on Kubernetes by Example</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A complete operational blueprint detailing high-availability PostgreSQL configurations. Uses Patroni and distributed consensus backends to prevent split-brain issues, orchestrate automated failover scenarios, and manage virtual IPs.</li>
</ul>
<h4 id="kubernetes-deployment">Kubernetes Deployment<a class="headerlink" href="#kubernetes-deployment" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2018)</strong> <a href="https://www.slideshare.net/vyruss000/deploying-postgresql-on-kubernetes">slideshare.net: Deploying PostgreSQL on Kubernetes</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A historical presentation reviewing early-generation deployment techniques of running stateful PostgreSQL relational databases within dynamic, ephemeral Kubernetes pods, noting historical volume storage limits and lifecycle challenges.</li>
</ul>
<h4 id="scalability">Scalability<a class="headerlink" href="#scalability" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2019)</strong> <a href="https://www.slideshare.net/jkatz05/operating-postgresql-at-scale-with-kubernetes-137132067">slideshare.net: Operating PostgreSQL at Scale with Kubernetes</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Historical presentation analyzing architecture strategies for scale-out database layouts on Kubernetes clusters. Reviews connection pool limits, write scale patterns, read-replica mechanics, and early volume-resize strategies.</li>
</ul>
<h2 id="container-orchestration">Container Orchestration<a class="headerlink" href="#container-orchestration" title="Permanent link">&para;</a></h2>
<h3 id="docker-swarm">Docker Swarm<a class="headerlink" href="#docker-swarm" title="Permanent link">&para;</a></h3>
<h4 id="postgresql-deployment">PostgreSQL Deployment<a class="headerlink" href="#postgresql-deployment" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2019)</strong> <a href="https://www.crunchydata.com/blog/an-easy-recipe-for-creating-a-postgresql-cluster-with-docker-swarm">info.crunchydata.com: An Easy Recipe for Creating a PostgreSQL Cluster with Docker Swarm</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Historical tutorial outlining containerized high-availability PostgreSQL configurations using Docker Swarm. Covers Swarm Secrets, internal routing, and environment setup paradigms.</li>
</ul>
<h2 id="data-infrastructure">Data Infrastructure<a class="headerlink" href="#data-infrastructure" title="Permanent link">&para;</a></h2>
<h3 id="bare-metal-provisioning">Bare Metal Provisioning<a class="headerlink" href="#bare-metal-provisioning" title="Permanent link">&para;</a></h3>
<h4 id="kubernetes-installation">Kubernetes Installation<a class="headerlink" href="#kubernetes-installation" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/kube-cluster-from-scratch-on-rocky-8">blog.crunchydata.com: Kubernetes + Postgres Cluster From Scratch on Rocky 8</a> <span class='md-tag md-tag--warning'>[SHELL CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A duplicate guide mapping out Rocky Linux 8 operating system optimization, package registration, Kubeadm installation, and operator provisioning. It emphasizes disk partition strategies and container runtime configurations that ensure stable I/O performance (IOPS) required for heavy, production-grade stateful workloads.</li>
</ul>
<h3 id="database-operators">Database Operators<a class="headerlink" href="#database-operators" title="Permanent link">&para;</a></h3>
<h4 id="postgresql-1">PostgreSQL (1)<a class="headerlink" href="#postgresql-1" title="Permanent link">&para;</a></h4>
<h5 id="backup-and-recovery-1">Backup and Recovery (1)<a class="headerlink" href="#backup-and-recovery-1" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/announcing-google-cloud-storage-gcs-support-for-pgbackrest">blog.crunchydata.com: Announcing Google Cloud Storage (GCS) Support for pgBackRest</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Details the integration of Google Cloud Storage (GCS) as a native backup target for pgBackRest within the Postgres operator ecosystem. Extending storage targets beyond traditional AWS S3 endpoints enables resilient multi-cloud disaster recovery options. The architecture leverages high-throughput GCS API calls for reliable, low-overhead transaction log archiving.</li>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator">blog.crunchydata.com: pgBackRest Point-In-Time Recovery Using Crunchy PostgreSQL Operator</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Outlines point-in-time recovery (PITR) workflows using the integrated pgBackRest utility in Crunchy PostgreSQL Operator environments. Modern disaster recovery plans require precise WAL replay capabilities to minimize recovery point objectives (RPO). This guide explains how to define backup targets and restore parameters declaratively inside the operator CRD.</li>
</ul>
<h5 id="connection-pooling">Connection Pooling<a class="headerlink" href="#connection-pooling" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/your-guide-to-connection-management-in-postgres">blog.crunchydata.com: Your Guide to Connection Management in Postgres 🌟</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Deep dive into connection management architectures, specifically focusing on PgBouncer configurations managed by PostgreSQL operators. Because microservice application scaling leads to volatile client connection counts, using an intermediate pooler prevents PostgreSQL server resource exhaustion. Incorporating poolers is a fundamental requirement to maintain query performance at scale.</li>
</ul>
<h5 id="database-administration">Database Administration<a class="headerlink" href="#database-administration" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2020)</strong> <a href="https://access.crunchydata.com/documentation/crunchy-postgres-containers/4.3.0/container-specifications/crunchy-pgadmin4">crunchy-pgadmin4</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Details container specification sheets for the crunchy-pgadmin4 image, including configuration variables and resource layouts. Historically, pgAdmin 4 was manually provisioned as a containerized sidecar or standalone service to provide database GUIs (Curator Insight). Current deployment strategies prefer integrated, operator-managed tooling and secure proxy pipelines.</li>
<li><strong>(2020)</strong> <a href="https://access.crunchydata.com/documentation/crunchy-postgres-containers/4.3.0/examples/administration/pgadmin4">pgAdmin 4</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Outlines early configuration models and environment mappings for pgAdmin 4 instances running in Kubernetes clusters. This resource demonstrates how to configure volume mounts and ingress rules for user sessions. For modern enterprise production, automated telemetry models (Prometheus/Grafana) are prioritized over graphical administrative consoles.</li>
</ul>
<h5 id="developer-experience">Developer Experience<a class="headerlink" href="#developer-experience" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/announcing-postgres-container-apps-easy-deploy-postgres-apps">blog.crunchydata.com: Announcing Postgres Container Apps: Easy Deploy Postgres Apps</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Introduces Postgres Container Apps, a set of templated blueprints designed to simplify database-backed service deployments on Kubernetes. Standard database integrations often suffer from environmental schema synchronization and secret-mounting failures. These starter packs align service-to-database interfaces, improving local debugging and automated delivery pipelines.</li>
</ul>
<h5 id="gitops-implementation">GitOps Implementation<a class="headerlink" href="#gitops-implementation" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/gitops-postgres-kubernetes">info.crunchydata.com: Using GitOps to Self-Manage Postgres in Kubernetes 🌟</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Integrates declarative GitOps workflows (e.g., ArgoCD/Flux) with the Crunchy Postgres Operator on Kubernetes. Contrasting early manual operator deployments (Curator Insight) with modern automated synchronization loops (Live Grounding), this architecture pattern establishes highly auditable, automated database provisioning. This ensures database configuration and storage states reconcile transparently with git-defined manifests.</li>
</ul>
<h5 id="high-availability-2">High Availability (2)<a class="headerlink" href="#high-availability-2" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/active-active-postgres-federation-on-kubernetes">blog.crunchydata.com: Active-Active PostgreSQL Federation on Kubernetes</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> — Investigates architectural techniques for implementing active-active PostgreSQL database federation on top of Kubernetes. While active-passive replication is the standard for high availability (Curator Insight), active-active multi-region federation delivers massive read/write scalability at the cost of complex conflict resolution (Live Grounding). This represents an emerging frontier for global cloud-native systems.</li>
</ul>
<h5 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2020)</strong> <a href="https://access.crunchydata.com/documentation/postgres-operator/4.3.0/installation/postgres-operator">The PostgreSQL Operator Installer with kubectl</a> <span class='md-tag md-tag--warning'>[SHELL CONTENT]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Documents installation paths for Crunchy PostgreSQL Operator v4.3.0, mapping Bash-based installations and Ansible playbooks. While highly detailed during early operator adoption (Curator Insight), these manual installation mechanisms and custom CLI commands have been deprecated in modern, helm-driven operator ecosystems (Live Grounding). It is retained only for historical system maintenance.</li>
</ul>
<h5 id="multi-cluster">Multi-Cluster<a class="headerlink" href="#multi-cluster" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/multi-kubernetes-cluster-postgresql-deployments">blog.crunchydata.com: Multi-Kubernetes Cluster PostgreSQL Deployments</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explores deploying PostgreSQL clusters that span across multiple independent Kubernetes control planes. By configuring cross-cluster network routes, this design establishes highly resilient disaster recovery sites capable of handling total region outages. Live production systems frequently pair this multi-cluster layout with Service Meshes to guarantee secure cross-site database replication.</li>
</ul>
<h5 id="packaging-and-cd">Packaging and CD<a class="headerlink" href="#packaging-and-cd" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/gitops-postgres-kubernetes-helm">blog.crunchydata.com: Helm, GitOps and the Postgres Operator</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explains how to package the Crunchy Postgres Operator using Helm charts integrated directly within automated GitOps pipelines. By mapping Helm template parameters to GitOps controller environments, it overcomes traditional Helm hook limitations for stateful workloads. Modern production standards leverage this setup to seamlessly deploy database custom resource definitions (CRDs) across multi-tenant clusters.</li>
</ul>
<h5 id="performance-tuning">Performance Tuning<a class="headerlink" href="#performance-tuning" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/tentative-smarter-query-optimization-in-postgres-starts-with-pg_stat_statements">blog.crunchydata.com: Query Optimization in Postgres with pg_stat_statements</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explains how to optimize database execution patterns within Kubernetes using the <code>pg_stat_statements</code> extension. Modern PostgreSQL operators inject this utility by default, exposing run-time metrics directly to telemetry agents. This programmatic feedback loop provides platform engineers with the real-time query analysis required to automate index tuning and limit resource bottlenecks.</li>
</ul>
<h5 id="platform-integration">Platform Integration<a class="headerlink" href="#platform-integration" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2020)</strong> <a href="https://www.youtube.com/watch?v=9wuUXi6Qbis&amp;ab_channel=MichaelBornholdtNielsen">youtube: Install and use Crunchy PostgreSQLfor OpenShift operator for simple todo app on OpenShift 🌟</a> <span class='md-tag md-tag--warning'>[SHELL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A practical video guide detailing the deployment of the Crunchy PostgreSQL Operator on Red Hat OpenShift to power a simple containerized web application. This walkthrough illustrates basic operator setup and pod status validation through the console interface. While useful for rapid developer prototyping, production installations bypass manual UI clicks in favor of declarative GitOps workflows.</li>
<li><strong>(2019)</strong> <a href="https://www.redhat.com/en/blog/leveraging-the-crunchy-postgresql">Crunchy PostgreSQL and Openshift</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Evaluates running Crunchy PostgreSQL Operator inside Red Hat OpenShift, highlighting platform compatibility and enterprise support options. OpenShift's default strict security contexts require deep operator integration to prevent privilege escalation. This study demonstrates the deployment of highly secure, resilient database clusters in enterprise PaaS environments.</li>
</ul>
<h5 id="release-highlights">Release Highlights<a class="headerlink" href="#release-highlights" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/crunchy-postgres-operator-4.6.0">blog.crunchydata.com: Crunchy Postgres Operator 4.6.0 🌟</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Documents the historical release of Crunchy PostgreSQL Operator v4.6, highlighting improved multi-namespace support and security configurations. Although v4.6 was once touted as the baseline for production readiness (Curator Insight), current cloud-native architecture standards have pivoted entirely to the declarative v5.x operator branch (Live Grounding). It serves primarily as a migration guide for legacy footprints.</li>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/news/next-generation-crunchy-postgres-for-kubernetes-released">blog.crunchydata.com: Next Generation Crunchy Postgres for Kubernetes 5.0 Released</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Announces the major architecture redesign of Crunchy Postgres for Kubernetes v5.0, transitioning to a fully declarative reconciliation controller. Unlike legacy v4 versions that required external tools to drive state transitions (Curator Insight), v5 relies entirely on Kubernetes native API constructs to maintain database health (Live Grounding). It is currently the industry-standard version for production PostgreSQL operations.</li>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/postgresql-14-on-kubernetes">blog.crunchydata.com: PostgreSQL 14 on Kubernetes (with examples!)</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Showcases deployment patterns and performance improvements of running PostgreSQL 14 in containerized environments. It highlights scale optimizations, nested JSON enhancements, and parallel query executions. Leveraging modern operators enables painless, declarative major version migrations of active production instances.</li>
</ul>
<h5 id="scheduling-and-affinity">Scheduling and Affinity<a class="headerlink" href="#scheduling-and-affinity" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/kubernetes-pod-tolerations-and-postgresql-deployment-strategies">blog.crunchydata.com: Kubernetes Pod Tolerations and Postgres Deployment Strategies 🌟</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Analyzes Kubernetes scheduling rules, focusing on taints, tolerations, and anti-affinity parameters optimized for PostgreSQL. Placing databases on dedicated hardware isolated from transient application pods is crucial for preserving storage I/O throughput. This redundant guide reiterates the absolute necessity of strict node assignment strategies in production.</li>
</ul>
<h5 id="security">Security<a class="headerlink" href="#security" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/set-up-tls-for-postgresql-in-kubernetes">blog.crunchydata.com: Deploy PostgreSQL With TLS in Kubernetes</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Evaluates methods for implementing transport layer security (TLS) for PostgreSQL database streams in Kubernetes. Rather than relying on static, manually generated secrets (Curator Insight), live security standards mandate tight integration with Cert-Manager for dynamic, zero-downtime certificate rotation (Live Grounding). This pattern provides robust security compliance necessary for highly regulated microservice networks.</li>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/using-cert-manager-to-deploy-tls-for-postgres-on-kubernetes">blog.crunchydata.com: Using Cert Manager to Deploy TLS for Postgres on Kubernetes</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Details how to interface the cert-manager operator with Crunchy PostgreSQL deployments to automate TLS certificate lifecycles. Standardizing certificate issuance and automatic renewal eliminates risks of unexpected database communication outages. It represents a foundational best-practice for zero-trust microservice communications.</li>
</ul>
<h5 id="source-code">Source Code<a class="headerlink" href="#source-code" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2026)</strong> <a href="https://github.com/CrunchyData/postgres-operator"><mark>github.com/CrunchyData/postgres-operator</mark></a> <span class='md-tag md-tag--info'>⭐ 4421</span> <svg class="v2-sparkline" width="50" height="15" viewBox="0 0 50 15" style="vertical-align: middle; display: inline-block; margin-left: 6px;" title="Activity Trend"><defs><linearGradient id="spark-grad-902cdc92" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="rgba(34, 211, 238, 0.2)" /><stop offset="100%" stop-color="var(--md-accent-fg-color)" /></linearGradient></defs><path class="v2-sparkline-path" d="M 0 8 L 10 11 L 20 3 L 30 3 L 40 5 L 50 5" fill="none" stroke="url(#spark-grad-902cdc92)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /><circle cx="50" cy="5" r="2" fill="var(--md-accent-fg-color)" /></svg> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — The main GitHub repository containing the source code for the Crunchy Postgres Operator. Written in Go, this industry-leading project automates the deployment, scaling, failover, backup, and security operations of PostgreSQL instances on Kubernetes. It is actively updated to support modern Kubernetes API standards and enterprise clustering patterns.</li>
</ul>
<h5 id="storage-management">Storage Management<a class="headerlink" href="#storage-management" title="Permanent link">&para;</a></h5>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/resize-postgres-kubernetes-volume-instance-sets">blog.crunchydata.com: Can't Resize your Postgres Kubernetes Volume? No Problem!</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Provides architectural workarounds for resizing PostgreSQL storage volumes when utilizing storage backends that do not support dynamic online volume expansion. The guide explains replica-seeding migration techniques that transition primary database roles to new, larger storage instances without downtime. It is a critical operational guide for bare-metal or legacy virtualization footprints.</li>
</ul>
<h3 id="developer-ecosystem">Developer Ecosystem<a class="headerlink" href="#developer-ecosystem" title="Permanent link">&para;</a></h3>
<h4 id="reference-portals">Reference Portals<a class="headerlink" href="#reference-portals" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/announcing-the-crunchy-data-developer-portal">Announcing the Crunchy Data Developer Portal</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Announces the launch of Crunchy Data's Developer Portal, serving as an educational hub for running open-source relational databases in containerized ecosystems. It aggregates reference architectures, security practices, and deployment templates. This resource helps bridge the technical gap between software developers and database administrators.</li>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/developers">Crunchy Data Developer Portal</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Landing page of the Crunchy Data Developer Portal, providing direct access to technical documentation, integration guides, and training labs. Key modules focus on database scaling, backup retention policies, and high-availability configuration. It acts as a primary hands-on resource for teams transitioning database layers to Kubernetes.</li>
</ul>
<h2 id="database">Database<a class="headerlink" href="#database" title="Permanent link">&para;</a></h2>
<h3 id="postgresql-2">PostgreSQL (2)<a class="headerlink" href="#postgresql-2" title="Permanent link">&para;</a></h3>
<h4 id="data-ingestion">Data Ingestion<a class="headerlink" href="#data-ingestion" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/fast-csv-and-json-ingestion-in-postgresql-with-copy">info.crunchydata.com: Fast CSV and JSON Ingestion in PostgreSQL with COPY</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Examines ingestion optimizations comparing multi-row INSERT patterns against the PostgreSQL COPY command for large CSV and JSON datasets. Includes WAL-bypass guidelines and indexing constraints.</li>
</ul>
<h4 id="data-replication">Data Replication<a class="headerlink" href="#data-replication" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/synchronous-replication-in-the-postgresql-operator-for-kubernetes-guarding-against-transactions-loss">info.crunchydata.com: Guard Against Transaction Loss with PostgreSQL Synchronous Replication</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explores the technical trade-offs between asynchronous and synchronous replication profiles within PostgreSQL Kubernetes topologies. Analyzes WAL-level security limits, failover delays, and trade-offs regarding transaction write throughput.</li>
</ul>
<h4 id="database-administration-1">Database Administration (1)<a class="headerlink" href="#database-administration-1" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/deploy-pgadmin4-with-postgresql-on-kubernetes">info.crunchydata.com: Deploy pgAdmin4 with PostgreSQL on Kubernetes</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Guides the deployment of pgAdmin4 web client panels alongside database clusters inside Kubernetes. Reviews network ingress definitions, volume mounts, and credential injection mechanics.</li>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/d-meta">info.crunchydata.com: Quickly Document Your Postgres Database Using psql Meta-Commands</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Interactive tutorial on the utilization of native psql meta-commands to rapidly trace schema layouts, inspect index sizes, and generate database structure documentation directly via CLI commands.</li>
</ul>
<h4 id="developer-tutorials">Developer Tutorials<a class="headerlink" href="#developer-tutorials" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2026)</strong> <a href="https://www.crunchydata.com/developers/tutorials">learn.crunchydata.com 🌟</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Interactive educational portal offering structured developer exercises focused on core database engineering. Includes tasks on indexing optimizations, raw performance telemetry, and complex JSON data orchestration strategies in PostgreSQL.</li>
</ul>
<h4 id="enterprise-solutions">Enterprise Solutions<a class="headerlink" href="#enterprise-solutions" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2026)</strong> <a href="https://www.crunchydata.com">crunchydata.com</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Corporate entry point for Crunchy Data, a driving force behind enterprise-hardened, fully open-source PostgreSQL. Represents a suite of production support, compliance validation patterns, and cloud-native integration tools.</li>
</ul>
<h4 id="high-availability-3">High Availability (3)<a class="headerlink" href="#high-availability-3" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/active-active-on-kubernetes">info.crunchydata.com: Deploying Active-Active PostgreSQL on Kubernetes</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A duplicate evaluation of geographic replication solutions. Contrasts synchronous replication networks with active-active topologies to design low-latency, resilient multi-region database backends.</li>
</ul>
<h4 id="open-source-repositories">Open Source Repositories<a class="headerlink" href="#open-source-repositories" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2026)</strong> <a href="https://github.com/CrunchyData">github.com/CrunchyData</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Central organization repository host for Crunchy Data open-source projects, serving as the development hub for the highly utilized Crunchy PostgreSQL Operator, monitoring dashboards, and hardened container configurations.</li>
</ul>
<h4 id="performance-tuning-1">Performance Tuning (1)<a class="headerlink" href="#performance-tuning-1" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/postgresql-monitoring-for-application-developers-dba-stats">info.crunchydata.com: PostgreSQL Monitoring for Application Developers: The DBA Fundamentals</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Bridges developer workflows with DBA database troubleshooting techniques. Teaches query bottlenecks analysis, lock tracing, and execution performance optimizations using pg_stat_activity and pg_stat_statements.</li>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/tuning-your-postgres-database-for-high-write-loads">info.crunchydata.com: Tuning Your Postgres Database for High Write Loads</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Advanced tuning walkthrough optimizing engine parameters for write-intensive database profiles. Guides custom values configurations for shared_buffers, max_wal_size, and write-ahead log parameters.</li>
</ul>
<h2 id="database-migration">Database Migration<a class="headerlink" href="#database-migration" title="Permanent link">&para;</a></h2>
<h3 id="oracle-to-postgres">Oracle to Postgres<a class="headerlink" href="#oracle-to-postgres" title="Permanent link">&para;</a></h3>
<h4 id="data-architecture">Data Architecture<a class="headerlink" href="#data-architecture" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/migrating-from-oracle-to-postgresql-questions-and-considerations">info.crunchydata.com: Migrating from Oracle to PostgreSQL: Tips and Tricks</a> <span class='md-tag md-tag--warning'>[SQL CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explores schema migration assessments and planning parameters when shifting corporate workloads from Oracle to PostgreSQL. Compares PL/SQL compatibility concerns and procedural data processing workarounds.</li>
</ul>
<h4 id="migration-tools">Migration Tools<a class="headerlink" href="#migration-tools" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2021)</strong> <a href="https://www.crunchydata.com/blog/setup-ora2pg-for-oracle-to-postgres-migration">info.crunchydata.com: Setup ora2pg for Oracle to Postgres Migration</a> <span class='md-tag md-tag--warning'>[PERL CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Deep architectural setup guide for the open-source ora2pg utility. Teaches migration assessment score compilation, dynamic PL/SQL function translation, and automated data copy operations.</li>
</ul>
<h2 id="observability">Observability<a class="headerlink" href="#observability" title="Permanent link">&para;</a></h2>
<h3 id="postgresql-3">PostgreSQL (3)<a class="headerlink" href="#postgresql-3" title="Permanent link">&para;</a></h3>
<h4 id="database-monitoring">Database Monitoring<a class="headerlink" href="#database-monitoring" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/monitoring-postgresql-clusters-in-kubernetes">info.crunchydata.com: Monitoring PostgreSQL clusters in kubernetes</a> <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Details structural metric collection architectures for Kubernetes-hosted PostgreSQL. Describes the integration of specialized postgres_exporter containers to feed telemetry into Prometheus targets with visualized dashboard outputs.</li>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/setup-postgresql-monitoring-in-kubernetes">info.crunchydata.com: How to Setup PostgreSQL Monitoring in Kubernetes</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Hands-on implementation guide for deploying a scalable monitoring architecture for PostgreSQL. Instructs on integrating postgres_exporter configurations, configuring Prometheus scrape pools, and importing Grafana analytics interfaces.</li>
</ul>
<h4 id="long-term-storage">Long-Term Storage<a class="headerlink" href="#long-term-storage" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2020)</strong> <a href="https://www.crunchydata.com/blog/using-postgres-to-back-prometheus-for-your-postgresql-monitoring-1">info.crunchydata.com: Introducing the Postgres Prometheus Adapter</a> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An introduction to using the Postgres Prometheus Adapter to store Prometheus time-series metrics. Covers performance metrics, schema structures, and remote-write configurations.</li>
</ul>
<h2 id="platform-security">Platform Security<a class="headerlink" href="#platform-security" title="Permanent link">&para;</a></h2>
<h3 id="access-control">Access Control<a class="headerlink" href="#access-control" title="Permanent link">&para;</a></h3>
<h4 id="service-accounts">Service Accounts<a class="headerlink" href="#service-accounts" title="Permanent link">&para;</a></h4>
<ul>
<li><strong>(2019)</strong> <a href="https://www.redhat.com/en/blog/understanding-service-accounts-sccs">ref1</a> <span class='md-tag md-tag--warning'>[YAML CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explains OpenShift Service Accounts, Role-Based Access Control (RBAC), and Security Context Constraints (SCC). Understanding SCCs is vital when deploying complex operators that need custom security postures, such as stateful databases. This reference outlines how to grant specific system permissions safely, protecting multi-tenant clusters from security compromise.</li>
</ul>
<hr />
<p>💡 <strong>Explore Related:</strong> <a href="../yaml/">Yaml</a> | <a href="../newsql/">Newsql</a> | <a href="../nosql/">NoSQL</a></p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2026 Nubenetes Agentic Intelligence
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/nubenetes/awesome-kubernetes" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</a>
<a href="https://twitter.com/nubenetes" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg>
</a>
<a href="https://www.linkedin.com/groups/1937212/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.top", "navigation.tracking", "navigation.sections", "navigation.expand", "navigation.indexes", "search.suggest", "search.highlight", "search.share", "content.code.copy", "content.action.view", "content.action.edit", "content.tooltips", "navigation.prune", "toc.integrate"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
<script src="../static/v2_filter.js"></script>
</body>
</html>