22
33## Installation
44
5+ Install directly from the OCI registry (no need to clone the repository):
6+
57``` bash
6- helm install postgresus ./deploy/helm -n postgresus --create-namespace
8+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace
79```
810
9- After installation, get the external IP:
11+ ## Accessing Postgresus
12+
13+ By default, the chart creates a ClusterIP service. Use port-forward to access:
1014
1115``` bash
12- kubectl get svc -n postgresus
16+ kubectl port-forward svc/postgresus-service 4005:4005 -n postgresus
1317```
1418
15- Access Postgresus at ` http://<EXTERNAL-IP> ` (port 80) .
19+ Then open ` http://localhost:4005 ` in your browser .
1620
1721## Configuration
1822
@@ -27,14 +31,14 @@ Access Postgresus at `http://<EXTERNAL-IP>` (port 80).
2731| ` image.pullPolicy ` | Image pull policy | ` Always ` |
2832| ` replicaCount ` | Number of replicas | ` 1 ` |
2933
30- ### Resources
34+ ### Service
3135
32- | Parameter | Description | Default Value |
33- | --------------------------- | -------------- | ------------- |
34- | ` resources.requests.memory ` | Memory request | ` 1Gi ` |
35- | ` resources.requests.cpu ` | CPU request | ` 500m ` |
36- | ` resources.limits.memory ` | Memory limit | ` 1Gi ` |
37- | ` resources.limits.cpu ` | CPU limit | ` 500m ` |
36+ | Parameter | Description | Default Value |
37+ | -------------------------- | --------- -------------- | ------------- |
38+ | ` service.type ` | Service type | ` ClusterIP ` |
39+ | ` service.port ` | Service port | ` 4005 ` |
40+ | ` service.targetPort ` | Container port | ` 4005 ` |
41+ | ` service.headless.enabled ` | Enable headless service | ` true ` |
3842
3943### Storage
4044
@@ -46,93 +50,76 @@ Access Postgresus at `http://<EXTERNAL-IP>` (port 80).
4650| ` persistence.size ` | Storage size | ` 10Gi ` |
4751| ` persistence.mountPath ` | Mount path | ` /postgresus-data ` |
4852
49- ### Service
50-
51- | Parameter | Description | Default Value |
52- | -------------------------- | ----------------------- | -------------- |
53- | ` service.type ` | Service type | ` LoadBalancer ` |
54- | ` service.port ` | External port | ` 80 ` |
55- | ` service.targetPort ` | Container port | ` 4005 ` |
56- | ` service.headless.enabled ` | Enable headless service | ` true ` |
57-
58- ### Traffic Exposure (3 Options)
59-
60- The chart supports 3 ways to expose Postgresus:
61-
62- | Method | Use Case | Default |
63- | ------ | -------- | ------- |
64- | ** LoadBalancer/NodePort** | Simple cloud clusters | Enabled |
65- | ** Ingress** | Traditional nginx/traefik ingress controllers | Disabled |
66- | ** HTTPRoute (Gateway API)** | Modern gateways (Istio, Envoy, Cilium) | Disabled |
53+ ### Resources
6754
68- #### Ingress
55+ | Parameter | Description | Default Value |
56+ | --------------------------- | -------------- | ------------- |
57+ | ` resources.requests.memory ` | Memory request | ` 1Gi ` |
58+ | ` resources.requests.cpu ` | CPU request | ` 500m ` |
59+ | ` resources.limits.memory ` | Memory limit | ` 1Gi ` |
60+ | ` resources.limits.cpu ` | CPU limit | ` 500m ` |
6961
70- | Parameter | Description | Default Value |
71- | ----------------------- | ----------------- | ------------------------ |
72- | ` ingress.enabled ` | Enable Ingress | ` false ` |
73- | ` ingress.className ` | Ingress class | ` nginx ` |
74- | ` ingress.hosts[0].host ` | Hostname | ` postgresus.example.com ` |
75- | ` ingress.tls ` | TLS configuration | ` [] ` |
62+ ## External Access Options
7663
77- #### HTTPRoute (Gateway API )
64+ ### Option 1: Port Forward (Default )
7865
79- | Parameter | Description | Default Value |
80- | --------------------- | -------------------------- | ---------------------------------- |
81- | ` route.enabled ` | Enable HTTPRoute | ` false ` |
82- | ` route.apiVersion ` | Gateway API version | ` gateway.networking.k8s.io/v1 ` |
83- | ` route.hostnames ` | Hostnames for the route | ` ["postgresus.example.com"] ` |
84- | ` route.parentRefs ` | Gateway references | ` [] ` |
85- | ` route.annotations ` | Route annotations | ` {} ` |
66+ Best for development or quick access:
8667
87- ### Health Checks
68+ ``` bash
69+ kubectl port-forward svc/postgresus-service 4005:4005 -n postgresus
70+ ```
8871
89- | Parameter | Description | Default Value |
90- | ------------------------ | ---------------------- | ------------- |
91- | ` livenessProbe.enabled ` | Enable liveness probe | ` true ` |
92- | ` readinessProbe.enabled ` | Enable readiness probe | ` true ` |
72+ Access at ` http://localhost:4005 `
9373
94- ## Examples
74+ ### Option 2: NodePort
9575
96- ### Basic Installation (LoadBalancer on port 80)
76+ For direct access via node IP:
9777
98- Default installation exposes Postgresus via LoadBalancer on port 80:
78+ ``` yaml
79+ # nodeport-values.yaml
80+ service :
81+ type : NodePort
82+ port : 4005
83+ targetPort : 4005
84+ nodePort : 30080
85+ ` ` `
9986
10087` ` ` bash
101- helm install postgresus ./deploy/helm -n postgresus --create-namespace
88+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace -f nodeport-values.yaml
10289```
10390
104- Access via ` http://<EXTERNAL -IP> `
91+ Access at ` http://<NODE -IP>:30080 `
10592
106- ### Using NodePort
93+ ### Option 3: LoadBalancer
10794
108- If your cluster doesn't support LoadBalancer :
95+ For cloud environments with load balancer support :
10996
11097``` yaml
111- # nodeport -values.yaml
98+ # loadbalancer -values.yaml
11299service :
113- type : NodePort
100+ type : LoadBalancer
114101 port : 80
115102 targetPort : 4005
116- nodePort : 30080
117103` ` `
118104
119105` ` ` bash
120- helm install postgresus ./deploy/helm -n postgresus --create-namespace -f nodeport-values.yaml
106+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace -f loadbalancer-values.yaml
107+ ```
108+
109+ Get the external IP:
110+
111+ ``` bash
112+ kubectl get svc -n postgresus
121113```
122114
123- Access via ` http://<NODE -IP>:30080 `
115+ Access at ` http://<EXTERNAL -IP> `
124116
125- ### Enable Ingress with HTTPS
117+ ### Option 4: Ingress
126118
127119For domain-based access with TLS:
128120
129121``` yaml
130122# ingress-values.yaml
131- service :
132- type : ClusterIP
133- port : 4005
134- targetPort : 4005
135-
136123ingress :
137124 enabled : true
138125 className : nginx
@@ -151,18 +138,15 @@ ingress:
151138` ` `
152139
153140` ` ` bash
154- helm install postgresus ./deploy/helm -n postgresus --create-namespace -f ingress-values.yaml
141+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace -f ingress-values.yaml
155142```
156143
157- ### HTTPRoute (Gateway API)
144+ ### Option 5: HTTPRoute (Gateway API)
158145
159146For clusters using Istio, Envoy Gateway, Cilium, or other Gateway API implementations:
160147
161148``` yaml
162149# httproute-values.yaml
163- service :
164- type : ClusterIP
165-
166150route :
167151 enabled : true
168152 hostnames :
@@ -173,10 +157,35 @@ route:
173157` ` `
174158
175159` ` ` bash
176- helm install postgresus ./deploy/helm -n postgresus --create-namespace -f httproute-values.yaml
160+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace -f httproute-values.yaml
177161```
178162
179- ### Custom Storage Size
163+ ## Ingress Configuration
164+
165+ | Parameter | Description | Default Value |
166+ | ----------------------- | ----------------- | ------------------------ |
167+ | ` ingress.enabled ` | Enable Ingress | ` false ` |
168+ | ` ingress.className ` | Ingress class | ` nginx ` |
169+ | ` ingress.hosts[0].host ` | Hostname | ` postgresus.example.com ` |
170+ | ` ingress.tls ` | TLS configuration | ` [] ` |
171+
172+ ## HTTPRoute Configuration
173+
174+ | Parameter | Description | Default Value |
175+ | ------------------ | ----------------------- | ------------------------------ |
176+ | ` route.enabled ` | Enable HTTPRoute | ` false ` |
177+ | ` route.apiVersion ` | Gateway API version | ` gateway.networking.k8s.io/v1 ` |
178+ | ` route.hostnames ` | Hostnames for the route | ` ["postgresus.example.com"] ` |
179+ | ` route.parentRefs ` | Gateway references | ` [] ` |
180+
181+ ## Health Checks
182+
183+ | Parameter | Description | Default Value |
184+ | ------------------------ | ---------------------- | ------------- |
185+ | ` livenessProbe.enabled ` | Enable liveness probe | ` true ` |
186+ | ` readinessProbe.enabled ` | Enable readiness probe | ` true ` |
187+
188+ ## Custom Storage Size
180189
181190``` yaml
182191# storage-values.yaml
@@ -186,5 +195,17 @@ persistence:
186195` ` `
187196
188197` ` ` bash
189- helm install postgresus ./deploy/helm -n postgresus --create-namespace -f storage-values.yaml
198+ helm install postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus --create-namespace -f storage-values.yaml
199+ ```
200+
201+ ## Upgrade
202+
203+ ``` bash
204+ helm upgrade postgresus oci://ghcr.io/rostislavdugin/charts/postgresus -n postgresus
205+ ```
206+
207+ ## Uninstall
208+
209+ ``` bash
210+ helm uninstall postgresus -n postgresus
190211```
0 commit comments