@@ -60,14 +60,25 @@ sudo curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/
6060 - ./postgresus-data:/postgresus-data
6161 restart: unless-stopped` ;
6262
63- const helmClone = `git clone https ://github.com/RostislavDugin/ postgresus.git
64- cd postgresus`;
63+ const helmInstallClusterIP = `helm install postgresus oci ://ghcr.io/rostislavdugin/charts/ postgresus \\
64+ -n postgresus --create-namespace `;
6565
66- const helmInstall = `helm install postgresus ./deploy/helm -n postgresus --create-namespace` ;
66+ const helmPortForward = `kubectl port-forward svc/postgresus-service 4005:4005 -n postgresus
67+ # Access at http://localhost:4005` ;
6768
68- const helmGetSvc = `kubectl get svc -n postgresus` ;
69+ const helmInstallLoadBalancer = `helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \\
70+ -n postgresus --create-namespace \\
71+ --set service.type=LoadBalancer` ;
6972
70- const helmUpgrade = `helm upgrade postgresus ./deploy/helm -n postgresus` ;
73+ const helmGetSvc = `kubectl get svc postgresus-service -n postgresus
74+ # Access at http://<EXTERNAL-IP>:4005` ;
75+
76+ const helmInstallIngress = `helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \\
77+ -n postgresus --create-namespace \\
78+ --set ingress.enabled=true \\
79+ --set ingress.hosts[0].host=backup.example.com` ;
80+
81+ const helmUpgrade = `helm upgrade postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus` ;
7182
7283 return (
7384 < >
@@ -265,36 +276,49 @@ cd postgresus`;
265276 < h2 id = "option-4-helm" > Option 4: Kubernetes with Helm</ h2 >
266277
267278 < p >
268- For Kubernetes deployments, use the official Helm chart. This
269- will create a StatefulSet with persistent storage and
270- LoadBalancer service on port 80. Config uses by default
271- LoadBalancer, but has predefined values for Ingress and
272- HTTPRoute as well.
279+ For Kubernetes deployments, install directly from the OCI
280+ registry. Choose your preferred access method based on your
281+ environment.
273282 </ p >
274283
275- < p > First, clone the repository:</ p >
284+ < h3 id = "helm-clusterip" >
285+ With ClusterIP + port-forward (development)
286+ </ h3 >
287+
288+ < div className = "relative my-6" >
289+ < pre className = "overflow-x-auto rounded-lg bg-gray-900 p-4 text-sm text-gray-100" >
290+ < code > { helmInstallClusterIP } </ code >
291+ </ pre >
292+ < div className = "absolute right-2 top-2" >
293+ < CopyButton text = { helmInstallClusterIP } />
294+ </ div >
295+ </ div >
296+
297+ < p > Access via port-forward:</ p >
276298
277299 < div className = "relative my-6" >
278300 < pre className = "overflow-x-auto rounded-lg bg-gray-900 p-4 text-sm text-gray-100" >
279- < code > { helmClone } </ code >
301+ < code > { helmPortForward } </ code >
280302 </ pre >
281303 < div className = "absolute right-2 top-2" >
282- < CopyButton text = { helmClone } />
304+ < CopyButton text = { helmPortForward } />
283305 </ div >
284306 </ div >
285307
286- < p > Then install the Helm chart:</ p >
308+ < h3 id = "helm-loadbalancer" >
309+ With LoadBalancer (cloud environments)
310+ </ h3 >
287311
288312 < div className = "relative my-6" >
289313 < pre className = "overflow-x-auto rounded-lg bg-gray-900 p-4 text-sm text-gray-100" >
290- < code > { helmInstall } </ code >
314+ < code > { helmInstallLoadBalancer } </ code >
291315 </ pre >
292316 < div className = "absolute right-2 top-2" >
293- < CopyButton text = { helmInstall } />
317+ < CopyButton text = { helmInstallLoadBalancer } />
294318 </ div >
295319 </ div >
296320
297- < p > Get the external IP:</ p >
321+ < p > Get the external IP and access Postgresus :</ p >
298322
299323 < div className = "relative my-6" >
300324 < pre className = "overflow-x-auto rounded-lg bg-gray-900 p-4 text-sm text-gray-100" >
@@ -305,23 +329,29 @@ cd postgresus`;
305329 </ div >
306330 </ div >
307331
308- < p >
309- Access Postgresus at < code > http://<EXTERNAL-IP></ code > { " " }
310- (port 80).
311- </ p >
332+ < h3 id = "helm-ingress" > With Ingress (domain-based access)</ h3 >
333+
334+ < div className = "relative my-6" >
335+ < pre className = "overflow-x-auto rounded-lg bg-gray-900 p-4 text-sm text-gray-100" >
336+ < code > { helmInstallIngress } </ code >
337+ </ pre >
338+ < div className = "absolute right-2 top-2" >
339+ < CopyButton text = { helmInstallIngress } />
340+ </ div >
341+ </ div >
312342
313343 < p >
314- See the{ " " }
344+ For more options (NodePort, TLS, HTTPRoute for Gateway API), see
345+ the{ " " }
315346 < a
316347 href = "https://github.com/RostislavDugin/postgresus/tree/main/deploy/helm"
317348 target = "_blank"
318349 rel = "noopener noreferrer"
319350 className = "text-blue-600 hover:text-blue-700"
320351 >
321352 Helm chart documentation
322- </ a > { " " }
323- for all configuration options including NodePort, Ingress with
324- HTTPS, custom storage and more.
353+ </ a >
354+ .
325355 </ p >
326356
327357 < h2 id = "getting-started" > Getting started</ h2 >
@@ -404,9 +434,9 @@ cd postgresus`;
404434 </ div >
405435
406436 < p >
407- If you have custom values, add < code > -f values.yaml</ code > to
408- the command. Helm will perform a rolling update to the new
409- version.
437+ If you have custom values, add < code > -f values.yaml</ code > or
438+ use < code > --set </ code > flags to preserve your configuration.
439+ Helm will perform a rolling update to the new version.
410440 </ p >
411441
412442 < h2 id = "troubleshooting" > Troubleshooting</ h2 >
0 commit comments