diff --git a/stable/artifactory/CHANGELOG.md b/stable/artifactory/CHANGELOG.md index cbc22e24f..3deb8dad6 100644 --- a/stable/artifactory/CHANGELOG.md +++ b/stable/artifactory/CHANGELOG.md @@ -1,6 +1,10 @@ # JFrog Artifactory Chart Changelog All changes to this chart will be documented in this file. +## [107.133.16] - Mar 11, 2026 +* Exposed `artifactory.podManagementPolicy` in values.yaml (default: `OrderedReady`). Set to `Parallel` to allow independent pod scaling without waiting for each pod to become Ready +* Updated `artifactory-pdb.yaml`: a PDB is now created when any of `podManagementPolicy: Parallel`, `artifactory.minAvailable`, or `artifactory.maxUnavailable` is set. When `Parallel` is set or `maxUnavailable` is explicitly provided, the PDB uses `maxUnavailable` (defaulting to `1` if not set). Otherwise `minAvailable` is used. A PDB spec cannot have both fields set simultaneously + ## [107.133.15] - Mar 11, 2026 * Added Azure Workload Identity Support. Refer [here](https://jfrog.com/help/r/jfrog-installation-setup-documentation/azure-workload-identity) * Added `JF_ARTIFACTORY_TOMCAT_MAINTENANCECONNECTOR_HOST` to support httpGet probes for artifactory container diff --git a/stable/artifactory/Chart.yaml b/stable/artifactory/Chart.yaml index dffc670be..7de1fe31c 100644 --- a/stable/artifactory/Chart.yaml +++ b/stable/artifactory/Chart.yaml @@ -21,4 +21,4 @@ name: artifactory sources: - https://github.com/jfrog/charts type: application -version: 107.133.15 +version: 107.133.16 diff --git a/stable/artifactory/README.md b/stable/artifactory/README.md index f4b82c042..36bd48d06 100644 --- a/stable/artifactory/README.md +++ b/stable/artifactory/README.md @@ -47,6 +47,22 @@ For more details on configuring the filestore, Refer [here](https://jfrog.com/he helm upgrade --install artifactory jfrog/artifactory --set artifactory.replicaCount=3,artifactory.persistence.type=cluster-file-system --namespace artifactory --create-namespace ``` +#### Pod Management Policy +By default the Artifactory StatefulSet uses `OrderedReady` pod management, meaning pods start sequentially and each must be `Ready` before the next begins. In HA deployments this can slow down scale-up and rolling restarts. Set `artifactory.podManagementPolicy` to `Parallel` to allow all pods to start and stop independently: +```bash +helm upgrade --install artifactory jfrog/artifactory --set artifactory.podManagementPolicy=Parallel --namespace artifactory +``` +> **Note:** `podManagementPolicy` is an immutable StatefulSet field. Changing it on an existing deployment requires deleting the StatefulSet with `--cascade=orphan` before upgrading. + +#### Pod Disruption Budget +A PodDisruptionBudget is created when `artifactory.minAvailable` is set. When `artifactory.podManagementPolicy` is `Parallel`, the PDB switches to `maxUnavailable` (controlled by `artifactory.maxUnavailable`, default: `1`) instead: +```bash +helm upgrade --install artifactory jfrog/artifactory --set artifactory.podManagementPolicy=Parallel,artifactory.maxUnavailable=1 --namespace artifactory +``` + + +``` + ### Apply Sizing configurations to the Chart Note that sizings with more than one replica require an enterprise license for HA . Refer [here](https://jfrog.com/help/r/jfrog-installation-setup-documentation/high-availability) To apply the chart with recommended sizing configurations : diff --git a/stable/artifactory/templates/artifactory-pdb.yaml b/stable/artifactory/templates/artifactory-pdb.yaml index 68876d23b..5b6c2a97a 100644 --- a/stable/artifactory/templates/artifactory-pdb.yaml +++ b/stable/artifactory/templates/artifactory-pdb.yaml @@ -1,4 +1,4 @@ -{{- if .Values.artifactory.minAvailable -}} +{{- if or (eq .Values.artifactory.podManagementPolicy "Parallel") .Values.artifactory.minAvailable .Values.artifactory.maxUnavailable -}} {{- if semverCompare " 1. This is only supported in Artifactory 7.25.x (appVersions) and above. replicaCount: 1 - # minAvailable: 1 + ## Note that by default we use appVersion to get image tag/version image: @@ -363,6 +363,9 @@ artifactory: labels: {} updateStrategy: type: RollingUpdate + podManagementPolicy: OrderedReady + # minAvailable: 1 + # maxUnavailable: 1 # When podManagementPolicy is Parallel and maxUnavailable is not set, defaults to 1 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ schedulerName: ## Create a priority class for the Artifactory pod or use an existing one