diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..063fcfe --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +## Description + + + +## Related Issues + + + +## Changes + + + +## Screenshots (if applicable) + + + +## Checklist + +- [ ] I have tested these changes thoroughly. +- [ ] My code follows the project's coding style. +- [ ] I have added appropriate comments to my code, especially in complex areas. diff --git a/CHANGELOG.md b/CHANGELOG.md index ccea9ed..2410629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ `graphdb.auth.security.enabled` property, which prevents users from disabling security via the Workbench or REST API. - Added encryption at rest configuration +- Added `publishNotReadyAddresses` to `service`, `headlessService`, `proxy.service` and `proxy.headlessService`. + Headless services default to `true` to allow cluster nodes to communicate before readiness probes pass, + enabling proper startup sequencing during rolling upgrades. ## Version 12.4.0 diff --git a/README.md b/README.md index e206e69..7b34aec 100644 --- a/README.md +++ b/README.md @@ -424,6 +424,7 @@ IMPORTANT: This is generated by helm-docs, do not attempt modifying it on hand a | headlessService.labels | object | `{}` | | | headlessService.ports.http | int | `7200` | | | headlessService.ports.rpc | int | `7300` | | +| headlessService.publishNotReadyAddresses | bool | `true` | | | image.digest | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | | | image.pullSecrets | list | `[]` | | @@ -557,6 +558,7 @@ IMPORTANT: This is generated by helm-docs, do not attempt modifying it on hand a | proxy.headlessService.labels | object | `{}` | | | proxy.headlessService.ports.http | int | `7200` | | | proxy.headlessService.ports.rpc | int | `7300` | | +| proxy.headlessService.publishNotReadyAddresses | bool | `true` | | | proxy.initContainerDataPermissions.enabled | bool | `false` | | | proxy.initContainerDataPermissions.securityContext.runAsNonRoot | bool | `false` | | | proxy.initContainerDataPermissions.securityContext.runAsUser | int | `0` | | @@ -625,6 +627,7 @@ IMPORTANT: This is generated by helm-docs, do not attempt modifying it on hand a | proxy.service.loadBalancerSourceRanges | list | `[]` | | | proxy.service.nodePort | string | `""` | | | proxy.service.ports.http | int | `7200` | | +| proxy.service.publishNotReadyAddresses | bool | `false` | | | proxy.service.type | string | `"ClusterIP"` | | | proxy.startupProbe.failureThreshold | int | `120` | | | proxy.startupProbe.httpGet.path | string | `"/proxy/ready"` | | @@ -672,6 +675,7 @@ IMPORTANT: This is generated by helm-docs, do not attempt modifying it on hand a | service.loadBalancerSourceRanges | list | `[]` | | | service.nodePort | string | `""` | | | service.ports.http | int | `7200` | | +| service.publishNotReadyAddresses | bool | `false` | | | service.type | string | `"ClusterIP"` | | | serviceAccount.annotations | object | `{}` | | | serviceAccount.create | bool | `false` | | diff --git a/templates/graphdb/service-headless.yaml b/templates/graphdb/service-headless.yaml index b5ebc54..1c56153 100644 --- a/templates/graphdb/service-headless.yaml +++ b/templates/graphdb/service-headless.yaml @@ -15,6 +15,7 @@ metadata: {{- end }} spec: clusterIP: None + publishNotReadyAddresses: {{ .Values.headlessService.publishNotReadyAddresses }} selector: {{- include "graphdb.selectorLabels" . | nindent 4 }} ports: diff --git a/templates/graphdb/service.yaml b/templates/graphdb/service.yaml index 06045bd..137c513 100644 --- a/templates/graphdb/service.yaml +++ b/templates/graphdb/service.yaml @@ -15,6 +15,7 @@ metadata: {{- end }} spec: type: {{ .Values.service.type }} + publishNotReadyAddresses: {{ .Values.service.publishNotReadyAddresses }} selector: {{- include "graphdb.selectorLabels" . | nindent 4 }} {{- if .Values.service.externalTrafficPolicy }} diff --git a/templates/proxy/service-headless.yaml b/templates/proxy/service-headless.yaml index f6b080d..53e0c4f 100644 --- a/templates/proxy/service-headless.yaml +++ b/templates/proxy/service-headless.yaml @@ -15,6 +15,7 @@ metadata: {{- end }} spec: clusterIP: None + publishNotReadyAddresses: {{ .Values.proxy.headlessService.publishNotReadyAddresses }} selector: {{- include "graphdb-proxy.selectorLabels" . | nindent 4 }} ports: diff --git a/templates/proxy/service.yaml b/templates/proxy/service.yaml index cb62b51..cf2ce49 100644 --- a/templates/proxy/service.yaml +++ b/templates/proxy/service.yaml @@ -15,6 +15,7 @@ metadata: {{- end }} spec: type: {{ .Values.proxy.service.type }} + publishNotReadyAddresses: {{ .Values.proxy.service.publishNotReadyAddresses }} selector: {{- include "graphdb-proxy.selectorLabels" . | nindent 4 }} {{- if .Values.proxy.service.externalTrafficPolicy }} diff --git a/values.yaml b/values.yaml index cd2cbb0..e87a720 100644 --- a/values.yaml +++ b/values.yaml @@ -679,6 +679,8 @@ service: externalIPs: [] # Additional ports to expose with the Service. extraPorts: [] + # Indicates that DNS records are created for not-ready Pods. + publishNotReadyAddresses: false # Configurations for GraphDB headless Service. # This Service is deployed regardless of the amount of .Values.replicas, so it exists for both single node and for cluster mode. @@ -701,6 +703,9 @@ headlessService: rpc: 7300 # Additional ports to expose with the Service. extraPorts: [] + # Indicates that DNS records are created for not-ready Pods. + # Enabled so cluster nodes can communicate before readiness probes pass, allowing proper startup sequencing during rolling upgrades. + publishNotReadyAddresses: true ############################## # Persistence Configurations # @@ -1418,6 +1423,8 @@ proxy: externalIPs: [] # Additional proxy ports to expose with the Service. extraPorts: [] + # Indicates that DNS records are created for not-ready Pods. + publishNotReadyAddresses: false # GraphDB cluster proxy headless Service configurations. # Ref: https://kubernetes.io/docs/concepts/services-networking/service/ @@ -1439,6 +1446,10 @@ proxy: rpc: 7300 # Additional proxy ports to expose with the Service. extraPorts: [] + # Indicates that DNS records are created for not-ready Pods. + # Enabled so cluster nodes can communicate before readiness probes pass, allowing proper startup sequencing during rolling upgrades. + # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishnotreadyaddresses + publishNotReadyAddresses: true ############################## # Persistence Configurations #