Confessions of a DevOps Frog: Automating Artifactory deployment to Kubernetes is Actually Easy!
Last updated on January 2, 2019
In our previous blog post, we described how Artifactory can serve as a Helm repository, and listed the best practices for using your Artifactory Helm repository to store your charts and deploy them to Kubernetes. Now we’ll demonstrate how easy it is to deploy your Artifactory as a single Artifactory instance and a multi-node Artifactory HA cluster using Helm and Kubernetes.
Kubernetes allows you to quickly and predictably deploy your applications, scale them on the fly, seamlessly roll out new features and efficiently utilize hardware resources. Simply a DevOps dream come true. JFrog fully supports deploying Artifactory to your Kubernetes cluster to serve as a universal repository manager for all your CI/CD needs wherever they are running in your organization.
Smooth DevOps sailing with Kubernetes and Artifactory automation
Using Helm, the Kubernetes package manager, we have created a set of customizable Helm charts. These Helm charts can be configured according to your storage, databases, and other DevOps setting needs for the different Artifactory installations, including OSS, Pro and HA. Each parameter can be overwritten from the command line, or using a custom values.yaml file. Official JFrog Helm charts are available in the JFrog Charts GitHub repository.
Important Note: The following workflows display how to deploy Artifactory. We recommend running these DevOps workflows in your development environment prior to deploying Artifactory in production. To learn more about the full deployment process, please refer to Deploying Artifactory to Kubernetes.
Deploying a single Artifactory instance
The Artifactory Helm chart allows you to configure a single Artifactory Pro or OSS instance in the Kubernetes cluster with an external database and persistent storage that is installed outside the Kubernetes cluster.
The following step-by-step workflow initializes Helm and updates your Helm client with the latest index from the JFrog Helm charts repository.
- Add the JFrog Helm repository and initialize Helm, by running the following commands:
$ helm repo add jfrog https://charts.jfrog.io $ helm init
- Deploy Artifactory, by running the following command:
$ helm install jfrog/artifactory
- Configure Artifactory, by following the on-screen instructions to retrieve the Artifactory IP and URL, and then run the on-boarding wizard to setup your newly deployed Artifactory.
Refer to these additional configuration options to further customize your deployment.
Artifactory Helm Chart can be configured with many options.
For example, deploy Artifactory OSS, by running the following command:
$ helm install \ --set artifactory.image.repository=”docker.bintray.io/jfrog/artifactory-oss” \ jfrog/artifactory
Deploying Artifactory HA
The Artifactory High Availability Helm chart allows you to deploy an Artifactory HA cluster using three nodes: a primary node and two member nodes.
The following steps deploy Artifactory HA using Helm:
- Deploy Artifactory HA, using the artifactory-ha chart with the following configuration:
– An Artifactory HA cluster containing one primary node and two member nodes.
– A PostgreSQL database.
– An Nginx for SSL, load balancing and reverse proxy configurations.$ cd artifactory-docker-examples/kubernetes/helm/artifactory-ha
$ helm init
$ helm install jfrog/artifactory-ha
- Customize your deployment, using the following configuration options.
Artifactory as your Helm chart repository
Not only can you deploy Artifactory using Helm but Artifactory can also serve as your Helm Chart repository. It provides secure, private, local Helm repositories to share Helm charts across your organization with fine-grained access control. Proxy and cache public Helm resources with remote repositories, and aggregate local and remote resources under a single virtual Helm repository to access all your Helm charts from a single URL.
⎈ Happy Helming! ⎈