Skip to content

Commit

Permalink
Adding Artifactory-Pro Chart
Browse files Browse the repository at this point in the history
Changed Servie type to NodePort for minikube

Removed Dependencies

Updated Readme

Removed Nginx

Updated Readme

Added Volume and Resource

removed gitignore file
  • Loading branch information
jainishshah17 committed Oct 28, 2016
1 parent 5ac8aee commit e8ebe83
Show file tree
Hide file tree
Showing 9 changed files with 181 additions and 6 deletions.
6 changes: 0 additions & 6 deletions .gitignore

This file was deleted.

14 changes: 14 additions & 0 deletions incubator/artifactory/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: artifactory
home: https://www.jfrog.com/artifactory/
version: 4.13.2
description: Artifactory chart for Kubernetes
keywords:
- artifactory
- jfrog
sources:
- https://bintray.com/jfrog/product/JFrog-Artifactory-Pro/view
- https://github.com/JFrogDev
maintainers:
- name: Jainish shah
email: jainishs@jfrog.com
icon: https://raw.githubusercontent.com/JFrogDev/artifactory-dcos/master/images/jfrog_med.png
52 changes: 52 additions & 0 deletions incubator/artifactory/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# JFrog Artifactory Helm Chart

## Prerequisites Details

* Kubernetes 1.3 with alpha APIs enabled
* Artifactory Pro trial license
* PV dynamic provisioning support on the underlying infrastructure

## Todo

* Implement Support of Reverse proxy for Docker Repo using Nginx
* Smarter upscaling/downscaling
* Solution for Mysql

## Chart Details
This chart will do the following:

* Deploy Artifactory Pro

## Installing the Chart

To install the chart with the release name `my-release`:

```bash
$ helm install --name my-release incubator/artifactory
```

## Deleting the Charts

Deletion of the PetSet doesn't cascade to deleting associated Pods and PVCs. To delete them:

```
$ kubectl delete pods -l release=my-release,type=data
$ kubectl delete pvcs -l release=my-release,type=data
```

## Configuration

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

| Parameter | Description | Default |
|---------------------------|-----------------------------------|----------------------------------------------------------|
| `Image` | Container image name | `docker.bintray.io/jfrog/artifactory-pro` |
| `ImageTag` | Container image tag | `4.13.2` |
| `ImagePullPolicy` | Container pull policy | `Always` |

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/
16 changes: 16 additions & 0 deletions incubator/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 "artifactory" .Values.nameOverride | trunc 24 }}{{end}}

{{/*
Create a default fully qualified app name.
We truncate at 24 chars because some Kubernetes name fields are limited to this
(by the DNS naming spec).
*/}}
{{define "fullname"}}
{{- $name := default "artifactory" .Values.nameOverride -}}
{{printf "%s-%s" .Release.Name $name | trunc 24 -}}
{{end}}
10 changes: 10 additions & 0 deletions incubator/artifactory/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This is a simple example of using a config map to create a single page
# static site.
apiVersion: v1
kind: ConfigMap
metadata:
name: {{template "fullname" .}}
labels:
release: {{ .Release.Name | quote }}
app: {{template "fullname" .}}
heritage: {{.Release.Service | quote }}
57 changes: 57 additions & 0 deletions incubator/artifactory/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# This uses a "fullname" template (see _helpers)
# Basing names on .Release.Name means that the same chart can be installed
# multiple times into the same namespace.
name: {{template "fullname" .}}
labels:
# The "heritage" label is used to track which tool deployed a given chart.
# It is useful for admins who want to see what releases a particular tool
# is responsible for.
heritage: {{ .Release.Service | quote }}
# This makes it easy to search for all components of a release using kubectl.
release: {{ .Release.Name | quote }}
# This makes it easy to audit chart usage.
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
spec:
replicas: {{default 1 .Values.replicaCount}}
template:
metadata:
labels:
app: {{template "fullname" .}}
release: {{.Release.Name | quote }}
spec:
containers:
- name: artifactory
# Making image configurable is not necessary. Making imageTag configurable
# is a nice option for the user. Especially in the strange cases like
# artifactory where the base distro is determined by the tag. Using :latest
# is frowned upon, using :stable isn't that great either.
image: "{{default "docker.bintray.io/jfrog/artifactory-pro" .Values.image}}:{{default "4.13.2" .Values.imageTag}}"
imagePullPolicy: {{default "IfNotPresent" .Values.pullPolicy}}
resources:
requests:
cpu: {{default "200m" .Values.Cpu}}
memory: {{default "2048M" .Values.Memory}}
ports:
- containerPort: 8081
name: http
# This (and the volumes section below) mount the config map as a volume.
volumeMounts:
- mountPath: /var/opt/jfrog/artifactory/etc
name: etc
- mountPath: /var/opt/jfrog/artifactory/logs
name: logs
- mountPath: /var/opt/jfrog/artifactory/data
name: data
volumes:
- name: etc
configMap:
name: {{ template "fullname" . }}
- name: data
configMap:
name: {{ template "fullname" . }}
- name: logs
configMap:
name: {{ template "fullname" . }}
19 changes: 19 additions & 0 deletions incubator/artifactory/templates/svc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This is a service gateway to the replica set created by the deployment.
# Take a look at the deployment.yaml for general notes about this chart.
apiVersion: v1
kind: Service
metadata:
name: {{template "fullname" .}}
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
spec:
ports:
- port: {{default 8081 .Values.httpPort}}
targetPort: 8081
protocol: TCP
name: http
selector:
app: {{template "fullname" .}}
type: {{.Values.ServiceType}}
13 changes: 13 additions & 0 deletions incubator/artifactory/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Default values for etcd.
# This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value

Name: artifactory
Component: "Artifactory"
Image: "docker.bintray.io/jfrog/artifactory-pro"
ImageTag: "4.13.2"
ImagePullPolicy: "Always"
replicaCount: 1
# For minikube, set this to NodePort, elsewhere use LoadBalancer
ServiceType: LoadBalancer
Empty file added index.yaml
Empty file.

0 comments on commit e8ebe83

Please sign in to comment.