diff --git a/apis/installer/v1alpha1/ace_ace_types.go b/apis/installer/v1alpha1/ace_ace_types.go index 7f9999fa2..cddf2bf78 100644 --- a/apis/installer/v1alpha1/ace_ace_types.go +++ b/apis/installer/v1alpha1/ace_ace_types.go @@ -315,6 +315,15 @@ type Settings struct { Firebase FirebaseSettings `json:"firebase"` // +optional Marketplace *MarketplaceSettings `json:"marketplace,omitempty"` + // +optional + PgPool *PgPoolSettings `json:"pgpool,omitempty"` +} + +type PgPoolSettings struct { + Enabled bool `json:"enabled"` + Version string `json:"version"` + Replicas int `json:"replicas"` + Resources core.ResourceRequirements `json:"resources"` } type DBSettings struct { diff --git a/apis/installer/v1alpha1/zz_generated.deepcopy.go b/apis/installer/v1alpha1/zz_generated.deepcopy.go index 0d829ae2e..1120712cb 100644 --- a/apis/installer/v1alpha1/zz_generated.deepcopy.go +++ b/apis/installer/v1alpha1/zz_generated.deepcopy.go @@ -8981,6 +8981,22 @@ func (in *PersistenceSpec) DeepCopy() *PersistenceSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PgPoolSettings) DeepCopyInto(out *PgPoolSettings) { + *out = *in + in.Resources.DeepCopyInto(&out.Resources) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgPoolSettings. +func (in *PgPoolSettings) DeepCopy() *PgPoolSettings { + if in == nil { + return nil + } + out := new(PgPoolSettings) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PlacementSpec) DeepCopyInto(out *PlacementSpec) { *out = *in @@ -11311,6 +11327,11 @@ func (in *Settings) DeepCopyInto(out *Settings) { *out = new(MarketplaceSettings) (*in).DeepCopyInto(*out) } + if in.PgPool != nil { + in, out := &in.PgPool, &out.PgPool + *out = new(PgPoolSettings) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Settings. diff --git a/catalog/ace.yaml b/catalog/ace.yaml index 923d41773..39fc7a0a8 100644 --- a/catalog/ace.yaml +++ b/catalog/ace.yaml @@ -1,3 +1,3 @@ -- ghcr.io/appscode-charts/ace-installer:v2026.5.22 -- ghcr.io/appscode-charts/ace:v2026.5.22 +- ghcr.io/appscode-charts/ace-installer:v2026.6.15-alpha +- ghcr.io/appscode-charts/ace:v2026.6.15-alpha - ghcr.io/appscode-charts/service-gateway:v2026.5.22 diff --git a/charts/ace-installer/Chart.yaml b/charts/ace-installer/Chart.yaml index 4cf6162a4..b08af8073 100644 --- a/charts/ace-installer/Chart.yaml +++ b/charts/ace-installer/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: ace-installer description: ACE Installer type: application -version: v2026.5.22 -appVersion: v2026.5.22 +version: v2026.6.15-alpha +appVersion: v2026.6.15-alpha kubeVersion: '>=1.28.0-0' annotations: charts.openshift.io/name: ace-installer diff --git a/charts/ace-installer/README.md b/charts/ace-installer/README.md index c09808bcd..d4f1756ea 100644 --- a/charts/ace-installer/README.md +++ b/charts/ace-installer/README.md @@ -7,8 +7,8 @@ ```bash $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update -$ helm search repo appscode/ace-installer --version=v2026.5.22 -$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 +$ helm search repo appscode/ace-installer --version=v2026.6.15-alpha +$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha ``` ## Introduction @@ -24,7 +24,7 @@ This chart deploys charts for ACE on a [Kubernetes](http://kubernetes.io) cluste To install/upgrade the chart with the release name `ace-installer`: ```bash -$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 +$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha ``` The command deploys charts for ACE on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -151,12 +151,12 @@ The following table lists the configurable parameters of the `ace-installer` cha Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: ```bash -$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 --set image.proxies.appscode=r.appscode.com +$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha --set image.proxies.appscode=r.appscode.com ``` Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: ```bash -$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.5.22 --values values.yaml +$ helm upgrade -i ace-installer appscode/ace-installer -n kubeops --create-namespace --version=v2026.6.15-alpha --values values.yaml ``` diff --git a/charts/ace/Chart.yaml b/charts/ace/Chart.yaml index c39627c9a..a892ce0c5 100644 --- a/charts/ace/Chart.yaml +++ b/charts/ace/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: ace description: A Helm chart for AppsCode Container Engine type: application -version: v2026.5.22 -appVersion: v2026.5.22 +version: v2026.6.15-alpha +appVersion: v2026.6.15-alpha home: https://github.com/appscode-cloud icon: https://cdn.appscode.com/images/products/bytebuilders/icons/android-icon-192x192.png sources: diff --git a/charts/ace/README.md b/charts/ace/README.md index 8fdd7fc54..8a805ca3d 100644 --- a/charts/ace/README.md +++ b/charts/ace/README.md @@ -7,8 +7,8 @@ ```bash $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update -$ helm search repo appscode/ace --version=v2026.5.22 -$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 +$ helm search repo appscode/ace --version=v2026.6.15-alpha +$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha ``` ## Introduction @@ -24,7 +24,7 @@ This chart deploys AppsCode Container Engine on a [Kubernetes](http://kubernetes To install/upgrade the chart with the release name `ace`: ```bash -$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 +$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha ``` The command deploys AppsCode Container Engine on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -131,6 +131,12 @@ The following table lists the configurable parameters of the `ace` chart and the | settings.db.auth.username | | postgres | | settings.db.auth.password | | "xyz" | | settings.db.logSQL | | false | +| settings.pgpool.enabled | | false | +| settings.pgpool.version | | "4.5.0" | +| settings.pgpool.replicas | | 2 | +| settings.pgpool.resources.limits.memory | | 512Mi | +| settings.pgpool.resources.requests.memory | | 256Mi | +| settings.pgpool.resources.requests.cpu | | 250m | | settings.cache.version | | "7.2.4" | | settings.cache.cacheInterval | | 60 | | settings.cache.persistence.size | | 10Gi | @@ -245,12 +251,12 @@ The following table lists the configurable parameters of the `ace` chart and the Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: ```bash -$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 --set gateway.tls.secret.name="ace-cert" +$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha --set gateway.tls.secret.name="ace-cert" ``` Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: ```bash -$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.5.22 --values values.yaml +$ helm upgrade -i ace appscode/ace -n ace --create-namespace --version=v2026.6.15-alpha --values values.yaml ``` diff --git a/charts/ace/templates/_helpers.tpl b/charts/ace/templates/_helpers.tpl index f1560fba6..25e5f8a72 100644 --- a/charts/ace/templates/_helpers.tpl +++ b/charts/ace/templates/_helpers.tpl @@ -173,8 +173,12 @@ Returns the ServiceMonitor labels Determine database host name */}} {{- define "settings.database.host" -}} +{{- if .Values.settings.pgpool.enabled -}} +{{- printf "%s-pgpool.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}} +{{- else -}} {{- printf "%s-db.%s.svc:5432" (include "ace.fullname" .) .Release.Namespace -}} {{- end -}} +{{- end -}} {{- define "settings.oauth2JWTSecret" -}} {{ .Values.settings.security.oauth2JWTSecret | default (randAlphaNum 43) }} diff --git a/charts/ace/templates/db/pgpool.yaml b/charts/ace/templates/db/pgpool.yaml new file mode 100644 index 000000000..769407bd9 --- /dev/null +++ b/charts/ace/templates/db/pgpool.yaml @@ -0,0 +1,47 @@ +{{- if .Values.settings.pgpool.enabled }} +apiVersion: kubedb.com/v1alpha2 +kind: Pgpool +metadata: + name: {{ include "ace.fullname" . }}-pgpool + namespace: {{ .Release.Namespace }} + labels: + {{- include "ace.labels" . | nindent 4 }} +spec: + version: "{{ .Values.settings.pgpool.version }}" + replicas: {{ .Values.settings.pgpool.replicas }} + postgresRef: + name: {{ include "ace.fullname" . }}-db + namespace: {{ .Release.Namespace }} + syncUsers: true + deletionPolicy: {{ .Values.settings.db.deletionPolicy }} + podTemplate: + spec: + containers: + - name: pgpool + resources: + {{- toYaml .Values.settings.pgpool.resources | nindent 10 }} + {{- if eq (include "distro.openshift" $) "true" }} + securityContext: + runAsGroup: {{ .Values.securityContext.runAsUser }} + runAsUser: {{ .Values.securityContext.runAsUser }} + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + securityContext: + fsGroup: {{ .Values.securityContext.runAsUser }} + runAsUser: {{ .Values.securityContext.runAsUser }} + runAsGroup: {{ .Values.securityContext.runAsUser }} + {{- end }} +{{- if .Values.global.monitoring }} + monitor: + agent: {{ .Values.global.monitoring.agent }} + prometheus: + serviceMonitor: + interval: 30s + labels: + {{- toYaml .Values.global.monitoring.serviceMonitor.labels | nindent 10 }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/ace/values.openapiv3_schema.yaml b/charts/ace/values.openapiv3_schema.yaml index 9abb223f2..1aa423163 100644 --- a/charts/ace/values.openapiv3_schema.yaml +++ b/charts/ace/values.openapiv3_schema.yaml @@ -24481,6 +24481,53 @@ properties: - apiURL - preSharedKey type: object + pgpool: + properties: + enabled: + type: boolean + replicas: + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + version: + type: string + required: + - enabled + - replicas + - resources + - version + type: object platform: properties: appName: diff --git a/charts/ace/values.yaml b/charts/ace/values.yaml index a1399098a..f03d512b1 100644 --- a/charts/ace/values.yaml +++ b/charts/ace/values.yaml @@ -270,6 +270,16 @@ settings: username: postgres password: "xyz" logSQL: false + pgpool: + enabled: false + version: "4.5.0" + replicas: 2 + resources: + limits: + memory: 512Mi + requests: + memory: 256Mi + cpu: 250m cache: version: "7.2.4" cacheInterval: 60