NOTE: This is the GA release of the JFrog Platform chart (Backward compatibility with versions < 10.0.0 is not supported)
NOTE: From 11.x, Insights and Pipelines are no longer part of the JFrog Platform chart. To continue using these products, use the 10.x version of the Jfrog Platform chart.
- Kubernetes 1.19+
- Artifactory Enterprise(+) trial license get one from here or Pro trial license get one from here
This chart will do the following:
- Deploy JFrog Platform (Artifactory, Xray, Catalog, Curation, JAS, Worker and Distribution). Fully customizable.
- Deploy a PostgreSQL database using the bitnami/postgresql chart (can be changed) NOTE: For production grade installations it is recommended to use an external PostgreSQL.
- Deploy a Rabbitmq using the bitnami/rabbitmq chart (can be changed)
- Deploy an optional Nginx server
Before installing JFrog helm charts, you need to add the JFrog helm repository to your helm client
helm repo add jfrog https://charts.jfrog.io
helm repo update
To install the chart with the release name jfrog-platform
helm upgrade --install jfrog-platform jfrog/jfrog-platform --namespace jfrog-platform --create-namespace
The JFrog Platform deployment architecture and its sizing requirements are described here. Note that sizings with more than one replica (HA) require an E/E+ license. To apply the chart with recommended sizing configurations : For example , for small sizings :
helm upgrade --install jfrog-platform jfrog/jfrog-platform -f sizing/platform-small.yaml --namespace platform --create-namespace
NOTE: If you are using bundled PostgreSQL, before upgrading the JFrog Platform chart, follow these steps:
- Get the current version of PostgreSQL in your installation,
kubectl get pod jfrog-platform-postgresql-0 -n jfrog-platform -o jsonpath="{.spec.containers[*].image}";
- Copy the version from the output and set the following in your customvalues.yaml file,
postgresql:
image:
tag: <postgres_version>
databaseUpgradeReady: true
- Run the upgrade command using your customvalues.yaml file,
helm upgrade --install jfrog-platform jfrog/jfrog-platform -f customvalues.yaml --namespace jfrog-platform --create-namespace
For high availability of Artifactory, set the replica count to be equal or higher than 2. Recommended is 3.
# Start artifactory with 3 replicas per service
helm upgrade --install jfrog-platform --set artifactory.artifactory.replicaCount=3 --namespace jfrog-platform --create-namespace
The JFrog platform chart requires an artifactory license. There are three ways to manage the license. Artifactory UI, REST API, or a Kubernetes Secret.
The easier and recommended way is the Artifactory UI. Using the Kubernetes Secret or REST API is for advanced users and is better suited for automation.
IMPORTANT: You should use only one of the following methods. Switching between them while a cluster is running might disable your Artifactory!
Once primary cluster is running, open Artifactory UI and insert the license(s) in the UI. See HA installation and setup for more details. Note that you should enter all licenses at once, with each license is separated by a newline. If you add the licenses one at a time, you may get redirected to a node without a license and the UI won't load for that node.
You can add licenses via REST API (https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-InstallHAClusterLicenses). Note that the REST API expects "\n" for the newlines in the licenses.
You can deploy the Artifactory license(s) as a Kubernetes secret. Prepare a text file with the license(s) written in it. If writing multiple licenses (must be in the same file), it's important to put two new lines between each license block!
# Create the Kubernetes secret (assuming the local license file is 'art.lic')
kubectl create secret generic artifactory-cluster-license --from-file=./art.lic
# Create a customvalues.yaml file
artifactory:
enabled: true
artifactory:
license:
secret: artifactory-cluster-license
dataKey: art.lic
# Apply the values file during install
helm upgrade --install jfrog-platform jfrog/jfrog-platform -f customvalues.yaml --namespace jfrog-platform --create-namespace
NOTE: This method is relevant for initial deployment only! Once Artifactory is deployed, you should not keep passing these parameters as the license is already persisted into Artifactory's storage (they will be ignored). Updating the license should be done via Artifactory UI or REST API.
customvalues.yaml
artifactory:
enabled: true
artifactory:
license:
licenseKey: |-
<LICENSE_KEY1>
<LICENSE_KEY2>
<LICENSE_KEY3>
helm upgrade --install jfrog-platform jfrog/jfrog-platform -f customvalues.yaml --namespace jfrog-platform --create-namespace
NOTE: This method is relevant for initial deployment only! Once Artifactory is deployed, you should not keep passing these parameters as the license is already persisted into Artifactory's storage (they will be ignored). Updating the license should be done via Artifactory UI or REST API. If you want to keep managing the artifactory license using the same method, you can use the copyOnEveryStartup example shown in the values.yaml file
This chart would provide flexibility to enable one or more of the jfrog products.
- Xray
- Distribution
- Worker
- Catalog
- Curation
- JAS
For example to enable distribution with artifactory, you can refer the following yaml and pass it during install. customvalues.yaml
distribution:
enabled: true
helm upgrade --install jfrog-platform jfrog/jfrog-platform -f customvalues.yaml --namespace jfrog-platform --create-namespace
helm uninstall jfrog-platform --namespace jfrog-platform
This will completely delete your Jfrog Platform chart. NOTE: The removal of the helm release will not completely remove the persistent volumes. You need to explicitly remove them.