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 10 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.

4 changes: 3 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.3.2
appVersion: 5.3.2
description: Universal Repository Manager supporting all major packaging formats, build tools and CI servers.
keywords:
- artifactory
Expand Down
73 changes: 73 additions & 0 deletions stable/artifactory/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# 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 art_image.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 db_env.db_pass=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 |
|---------------------------|-----------------------------------|----------------------------------------------------------|
| `art_image.version` | Container image tag | `5.3.2` |
Copy link
Member

Choose a reason for hiding this comment

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

Documentation incomplete.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added

| `ImagePullPolicy` | Container pull policy | `IfNotPresent` |

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/
27 changes: 27 additions & 0 deletions stable/artifactory/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Congratulations. You have just deployed JFrog Artifactory Pro!

1. Get the Artifactory URL by running these commands:

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.nx_name }}'

{{- if contains "NodePort" .Values.art_service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ .Values.art_service.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.art_service.type }}
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ .Values.nx_name }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP/

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

{{- end }}

2. Open Artifactory in your browser
Default credential for Artifactory:
user: admin
password: password
16 changes: 16 additions & 0 deletions stable/artifactory/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
50 changes: 50 additions & 0 deletions stable/artifactory/templates/artifactory-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ .Values.art_name }}
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
Copy link
Member

Choose a reason for hiding this comment

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

Add standard labels. Apply everywhere. Here's a good example:

https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress/

  • name should be {{ template "fullname" . }}
  • app should be {{ template "name" . }}

Adapt as in nginx-ingress example using components. You will also have to update selectors in services.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed

spec:
replicas: {{ .Values.art_replicaCount }}
Copy link
Member

Choose a reason for hiding this comment

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

template:
metadata:
labels:
app: {{ .Values.art_name }}
annotations:
pod.beta.kubernetes.io/init-containers: '[{
"name": "remove-lost-found",
"image": {{ .Values.initContainerImage | quote }},
"command": ["rm", "-rf", "{{ .Values.art_persistence.mountPath }}/lost+found"],
Copy link
Member

Choose a reason for hiding this comment

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

Why would you want to do this? Sounds like a hack to me. If lost+found gets in your way, why don't you use a subdirectory?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We do have 6 subdirectories and few files.

"volumeMounts": [{
"name": "artifactory-volume",
"mountPath": {{ .Values.art_persistence.mountPath | quote }}
}],
"imagePullPolicy": {{ .Values.imagePullPolicy | quote }}
}]'
spec:
containers:
- name: {{ .Values.art_name }}
image: "{{ .Values.art_image.repository }}:{{ .Values.art_image.version }}"
imagePullPolicy: {{ .Values.imagePullPolicy }}
env:
- name: DB_TYPE
value: {{ .Values.db_env.db_type }}
- name: DB_USER
value: {{ .Values.db_env.db_name }}
- name: DB_PASSWORD
value: {{ .Values.db_env.db_pass }}
- name: DB_HOST
value: {{ .Values.db_service.name }}
ports:
- containerPort: {{ .Values.art_service.internalPort }}
volumeMounts:
- mountPath: {{ .Values.art_persistence.mountPath | quote }}
name: artifactory-volume
volumes:
- name: artifactory-volume
{{- if .Values.art_persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.art_name }}
{{- else }}
emptyDir: {}
{{- end -}}
23 changes: 23 additions & 0 deletions stable/artifactory/templates/artifactory-pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{{- if .Values.art_persistence.enabled }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ .Values.art_name }}
labels:
app: {{ .Values.art_name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
annotations:
{{- if .Values.art_persistence.storageClass }}
volume.beta.kubernetes.io/storage-class: {{ .Values.art_persistence.storageClass | quote }}
{{- else }}
volume.alpha.kubernetes.io/storage-class: default
{{- end }}
spec:
accessModes:
- {{ .Values.art_persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.art_persistence.size | quote }}
{{- end }}
Loading