Skip to content
This repository has been archived by the owner on Feb 22, 2022. It is now read-only.

Moved Artifactory to stable and updated version to 5.3.2 #1314

Merged
merged 25 commits into from
Jul 6, 2017
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
266a42b
Upgraded artifactory version to 4.16.0
jainishshah17 Jan 20, 2017
dc1f0cd
Merge branch 'master' of https://github.com/kubernetes/charts
jainishshah17 Feb 24, 2017
f22f5cd
changes as per suggestion
jainishshah17 Mar 10, 2017
73d4a02
Merge remote-tracking branch 'k8s/master'
jainishshah17 Mar 10, 2017
54834d8
Merge remote-tracking branch 'Charts/master'
jainishshah17 Jun 16, 2017
5b9e47b
Added Stable Artifactory chart
jainishshah17 Jun 16, 2017
c7fd27c
removed Incubator Artifactory chart
jainishshah17 Jun 16, 2017
7312c59
Fixed port issue
jainishshah17 Jun 17, 2017
acdffb2
Fixed path
jainishshah17 Jun 17, 2017
ddbd6a8
fixed readme
jainishshah17 Jun 17, 2017
34ce7ff
Added Documentation for all variables.
jainishshah17 Jun 19, 2017
c02d548
Updated labels
jainishshah17 Jun 19, 2017
9e2c8a1
Fixed Parameter names
jainishshah17 Jun 19, 2017
fb226db
Fixed Notes.txt
jainishshah17 Jun 19, 2017
7e68a82
Updated Artifactory version to 5.4.1
jainishshah17 Jun 23, 2017
3e89133
Fixed metadata
jainishshah17 Jun 23, 2017
dc99e38
Merge remote-tracking branch 'Charts/master'
jainishshah17 Jun 25, 2017
d6aeb9d
Fixed naming
jainishshah17 Jun 27, 2017
577b918
Changes.
jainishshah17 Jun 29, 2017
bac7bcb
Merge remote-tracking branch 'Charts/master'
jainishshah17 Jun 29, 2017
a0571f1
Added release name to selector
jainishshah17 Jun 30, 2017
7f3f936
Nginx for Oss and Pro
jainishshah17 Jul 3, 2017
f5e02b2
Fixed readme
jainishshah17 Jul 3, 2017
4a788bd
using secret for database password
jainishshah17 Jul 5, 2017
e55e040
renamed secret to postgresql-secret.yaml
jainishshah17 Jul 5, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 0 additions & 54 deletions incubator/artifactory/README.md

This file was deleted.

22 changes: 0 additions & 22 deletions incubator/artifactory/templates/NOTES.txt

This file was deleted.

16 changes: 0 additions & 16 deletions incubator/artifactory/templates/_helpers.tpl

This file was deleted.

37 changes: 0 additions & 37 deletions incubator/artifactory/templates/deployment.yaml

This file was deleted.

18 changes: 0 additions & 18 deletions incubator/artifactory/templates/svc.yaml

This file was deleted.

30 changes: 0 additions & 30 deletions incubator/artifactory/values.yaml

This file was deleted.

6 changes: 5 additions & 1 deletion incubator/artifactory/Chart.yaml → stable/artifactory/Chart.yaml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
apiVersion: v1
name: artifactory
home: https://www.jfrog.com/artifactory/
version: 5.2.0
version: 5.4.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chart version and app version are two different things. They don't have to be aligned.

appVersion: 5.4.1
description: Universal Repository Manager supporting all major packaging formats, build tools and CI servers.
keywords:
- artifactory
Expand All @@ -11,4 +13,6 @@ sources:
maintainers:
- name: Jainish shah
email: jainishs@jfrog.com
- name: Eldad Assis
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the Github username as name. We've started to recommend that because it helps identify the chart maintainer for future review.

email: eldada@jfrog.com
icon: https://raw.githubusercontent.com/JFrogDev/artifactory-dcos/master/images/jfrog_med.png
116 changes: 116 additions & 0 deletions stable/artifactory/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# JFrog Artifactory Helm Chart

## Prerequisites Details

* Artifactory Pro trial license [get one from here](https://www.jfrog.com/artifactory/free-trial/)

## Chart Details
This chart will do the following:

* Deploy Artifactory-oss
* Deploy Artifactory-Pro

## Installing the Chart

To install the chart with the release name `artifactory`:

```bash
$ helm install --name artifactory stable/artifactory
```

### Deploying Artifactory OSS
You can deploy Artifactory OSS by using the same instructions as provided for the Pro.
**NOTE:** The Artifactory OSS does not use Nginx, so your Artifactory's Kubernetes service exposes Tomcat's port 8081 as port 80.

By default it will run Artifactory-pro to run Artifactory-oss comment nginx configuration in value.yaml and use following command:
Remove `nginx-deployment.yaml`, `nginx-pvc.yaml` and `nginx-service.yaml` and change art_service.externalPort to 80 in [values.yaml](values.yaml) before running command to install Artifactory-oss.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not ideal. You cannot just remove something when you install the chart from the repo. The user would have to download and adapt it. Please add some conditional logic to not include what's not needed for OSS. BTW, why wouldn't you run the OSS version behind Nginx?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

art_service-> artService

```bash
$ helm install --name artifactory --set artImage.repository=docker.bintray.io/jfrog/artifactory-oss stable/artifactory
```

### Accessing Artifactory
**NOTE:** It might take a few minutes for Artifactory's public IP to become available.
Follow the instructions outputted by the install command to get the Artifactory IP to access it.

### Updating Artifactory
Once you have a new chart version, you can update your deployment with
```bash
$ helm upgrade artifactory --namespace artifactory stable/artifactory
```

This will apply any configuration changes on your existing deployment.

### Customizing Database password
You can override the specified database password (set in [values.yaml](values.yaml)), by passing it as a parameter in the install command line
```bash
$ helm install --name artifactory --namespace artifactory --set dbEnv.dbPass=12_hX34qwerQ2 stable/artifactory
```

You can customise other parameters in the same way, by passing them on `helm install` command line.

### Deleting Artifactory
```bash
$ helm delete --purge artifactory
```

This will completely delete your Artifactory Pro deployment.
**IMPORTANT:** This will also delete your data volumes. You will loose all data!

## Configuration

The following tables lists the configurable parameters of the artifactory chart and their default values.

| Parameter | Description | Default |
|---------------------------|-----------------------------------|----------------------------------------------------------|
| `replicaCount` | Replica count for Artifactory deployment| `1` |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong. Used for DB. See below.

| `imagePullPolicy` | Container pull policy | `IfNotPresent` |
| `dbEnv.dbType` | Database type | `postgresql` |
| `dbEnv.dbName` | Database name | `artifactory` |
| `dbEnv.dbUser` | Database username | `artifactory` |
| `dbEnv.dbPass` | Database password | `artXifactory1973` |
| `dbName` | Database name | `postgresql` |
| `dbImage.repository` | Database container image | `docker.bintray.io/postgres` |
| `dbImage.version` | Database container image tag | `9.5.2` |
| `dbService.name` | Database service name | `postgresql` |
| `dbService.type` | Database service type | `ClusterIP` |
| `dbService.externalPort` | Database service external port | `5432` |
| `dbService.internalPort` | Database service internal port | `5432` |
| `dbPersistence.mountPath` | Database persistence volume mount path | `"/var/lib/postgresql/data"` |
| `dbPersistence.enabled` | Database persistence volume enabled | `true` |
| `dbPersistence.accessMode` | Database persistence volume access mode | `ReadWriteOnce` |
| `dbPersistence.size` | Database persistence volume size | `10Gi` |
| `artName` | Artifactory name | `artifactory` |
| `artName.art_replicaCount` | Artifactory replica count | `1` |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

artName.art_replicaCount -> artName.artReplicaCount

| `artImage.repository` | Container image | `docker.bintray.io/jfrog/artifactory-pro` |
| `artImage.version` | Container image tag | `5.4.1` |
| `artService.name` | Artifactory service name | `artifactory` |
| `artService.type`| Artifactory service type | `ClusterIP` |
| `artService.externalPort` | Artifactory service external port | `8081` |
| `artService.internalPort` | Artifactory service internal port | `8081` |
| `artPersistence.mountPath` | Artifactory persistence volume mount path | `"/var/opt/jfrog/artifactory"` |
| `artPersistence.enabled` | Artifactory persistence volume enabled | `true` |
| `artPersistence.accessMode` | Artifactory persistence volume access mode | `ReadWriteOnce` |
| `artPersistence.size` | Artifactory persistence volume size | `20Gi` |
| `nxName` | Nginx name | `nginx` |
| `nxName.artReplicaCount` | Nginx replica count | `1` |
| `nxImage.repository` | Container image | `docker.bintray.io/jfrog/nginx-artifactory-pro` |
| `nxImage.version` | Container image tag | `5.4.1` |
| `nxService.name` | Nginx service name | `nginx` |
| `nxService.type`| Nginx service type | `LoadBalancer` |
| `nxService.externalPortHttp` | Nginx service external port | `80` |
| `nxService.externalPortHttp` | Nginx service internal port | `80` |
| `nxService.externalPortHttps` | Nginx service external port | `443` |
| `nxService.externalPortHttps` | Nginx service internal port | `443` |
| `nxEnv.artUrl` | Nginx Environment variable Artifactory URL | `"http://artifactory:8081/artifactory"` |
| `nxEnv.ssl` | Nginx Environment enable ssl | `true` |
| `nxPersistence.mountPath` | Nginx persistence volume mount path | `"/var/opt/jfrog/nginx"` |
| `nxPersistence.enabled` | Nginx persistence volume enabled | `true` |
| `nxPersistence.accessMode` | Nginx persistence volume access mode | `ReadWriteOnce` |
| `nxPersistence.size` | Nginx persistence volume size | `5Gi` |

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.


## Useful links
https://www.jfrog.com
https://www.jfrog.com/confluence/
52 changes: 52 additions & 0 deletions stable/artifactory/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Congratulations. You have just deployed JFrog Artifactory Pro!

1. Get the Artifactory URL by running these commands:

{{- if (not (empty .Values.nxService)) }}

{{- if contains "NodePort" .Values.nxService.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ .Values.nxService.name }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/

{{- else if contains "LoadBalancer" .Values.nxService.type }}

NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of the service by running 'kubectl get svc -w {{ .Values.nxService.name }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ .Values.nxService.name }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP/

{{- else if contains "ClusterIP" .Values.nxService.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "component={{ .Values.nxName }}" -o jsonpath="{.items[0].metadata.name}")
echo http://127.0.0.1:{{ .Values.nxService.externalPortHttp }}
kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME {{ .Values.nxService.externalPortHttp }}:{{ .Values.nxService.internalPortHttp }}

{{- end }}

{{- else }}

{{- if contains "NodePort" .Values.artService.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ .Values.artService.name }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/

{{- else if contains "LoadBalancer" .Values.artService.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of the service by running 'kubectl get svc -w {{ .Values.artService.name }}'

export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ .Values.artService.name }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP/

{{- else if contains "ClusterIP" .Values.artService.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ .Values.artService.name }}" -o jsonpath="{.items[0].metadata.name}")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add release and component labels to the selector.

Also, use the templates which use the values instead of the values directly. E. g. use {{ template "artifactory.name" . }} instead of {{ .Values.artService.name }}. Apply throughout NOTES.txt.

echo http://127.0.0.1:{{ .Values.artService.externalPort }}
kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME {{ .Values.artService.externalPort }}:{{ .Values.artService.internalPort }}

{{- end }}

{{- end }}

2. Open Artifactory in your browser
Default credential for Artifactory:
user: admin
password: password
Loading