Skip to content

Commit 044075f

Browse files
update helm
1 parent b3dd5eb commit 044075f

File tree

3 files changed

+82
-41
lines changed

3 files changed

+82
-41
lines changed

app/components/InstallationComponent.tsx

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,32 @@ curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/heads
7676
label: "Helm (Kubernetes)",
7777
language: "bash",
7878
description:
79-
"For Kubernetes deployments, clone the repository and use the official Helm chart. This will create a StatefulSet with persistent storage and LoadBalancer service on port 80. Config uses by default LoadBalancer, but has predefined values for Ingress and HTTPRoute as well.",
79+
"For Kubernetes deployments, install directly from the OCI registry. Choose your preferred access method: ClusterIP with port-forward for development, LoadBalancer for cloud environments, or Ingress for domain-based access.",
8080
code: "",
8181
codeBlocks: [
8282
{
83-
label: "Clone the repository",
84-
code: `git clone https://github.com/RostislavDugin/postgresus.git
85-
cd postgresus`,
83+
label: "With ClusterIP + port-forward (development)",
84+
code: `helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \\
85+
-n postgresus --create-namespace
86+
87+
kubectl port-forward svc/postgresus-service 4005:4005 -n postgresus
88+
# Access at http://localhost:4005`,
8689
},
8790
{
88-
label: "Install the Helm chart",
89-
code: `helm install postgresus ./deploy/helm -n postgresus --create-namespace`,
91+
label: "With LoadBalancer (cloud environments)",
92+
code: `helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \\
93+
-n postgresus --create-namespace \\
94+
--set service.type=LoadBalancer
95+
96+
kubectl get svc postgresus-service -n postgresus
97+
# Access at http://<EXTERNAL-IP>:4005`,
9098
},
9199
{
92-
label: "Get the external IP",
93-
code: `kubectl get svc -n postgresus`,
100+
label: "With Ingress (domain-based access)",
101+
code: `helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus \\
102+
-n postgresus --create-namespace \\
103+
--set ingress.enabled=true \\
104+
--set ingress.hosts[0].host=backup.example.com`,
94105
},
95106
],
96107
},
@@ -198,13 +209,13 @@ export default function InstallationComponent() {
198209
)}
199210

200211
{/* Description */}
201-
<div className="mb-4 text-base md:text-lg max-w-[600px]">
212+
<div className="mb-4 text-base md:text-lg max-w-[650px]">
202213
{currentInstallation.description}
203214
</div>
204215

205216
{/* Multiple code blocks (for Helm) */}
206217
{hasCodeBlocks ? (
207-
<div className="space-y-4 max-w-[600px]">
218+
<div className="space-y-4 max-w-[650px]">
208219
{currentInstallation.codeBlocks!.map((block, index) => (
209220
<div key={index}>
210221
<p className="mb-2 text-sm font-medium text-gray-700">
@@ -232,7 +243,7 @@ export default function InstallationComponent() {
232243
</div>
233244
) : (
234245
/* Single code block with copy button */
235-
<div className="relative max-w-[600px]">
246+
<div className="relative max-w-[650px]">
236247
<pre className="rounded-lg bg-gray-100 p-4 pr-16 text-sm">
237248
<code className="block whitespace-pre-wrap wrap-break-word">
238249
{getCurrentCode()}

app/installation/page.tsx

Lines changed: 58 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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://&lt;EXTERNAL-IP&gt;</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>

public/llms.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ Content: How to configure Teams webhook notifications
9797
- Automatic restart on system reboot
9898

9999
4. **Helm (Kubernetes)**
100-
- Clone repository first: git clone https://github.com/RostislavDugin/postgresus.git
100+
- Install directly from OCI registry (no need to clone repository)
101101
- Official Helm chart for Kubernetes deployments
102102
- StatefulSet with persistent storage
103-
- Config uses by default LoadBalancer, but has predefined values for Ingress and HTTPRoute as well
103+
- Multiple access options: ClusterIP with port-forward, LoadBalancer, Ingress, HTTPRoute
104104
- Configurable ingress with TLS support
105105
- Health checks with liveness/readiness probes
106106

0 commit comments

Comments
 (0)