mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
Merge pull request #18 from michelleN/clear-charts
clean up charts and readme
This commit is contained in:
+24
-2
@@ -1,4 +1,26 @@
|
||||
language: bash
|
||||
language: go
|
||||
|
||||
go:
|
||||
- 1.6
|
||||
|
||||
before_install:
|
||||
- export GLIDE_VERSION="0.10.1"
|
||||
- ls $GOPATH/src/
|
||||
- wget "https://github.com/Masterminds/glide/releases/download/$GLIDE_VERSION/glide-$GLIDE_VERSION-linux-amd64.tar.gz"
|
||||
- mkdir -p $HOME/bin
|
||||
- tar -vxz -C $HOME/bin --strip=1 -f glide-$GLIDE_VERSION-linux-amd64.tar.gz
|
||||
- export PATH="$HOME/bin:$PATH" GLIDE_HOME="$HOME/.glide"
|
||||
|
||||
install:
|
||||
- cd $GOPATH/src/
|
||||
- mkdir k8s.io && cd k8s.io
|
||||
- git clone https://github.com/kubernetes/helm
|
||||
- cd helm && make bootstrap build
|
||||
- mv bin/helm $HOME/bin
|
||||
|
||||
script:
|
||||
- make lint test
|
||||
- cd $GOPATH/src/github.com/kubernetes/charts
|
||||
- helm lint *.tgz
|
||||
|
||||
after_success:
|
||||
# TODO: run sync-repo script with gs://kubernetes-charts on green master build
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
.PHONY: test
|
||||
test:
|
||||
@_test/test-charts $(TEST_CHARTS)
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
@_test/lint-charts $(TEST_CHARTS)
|
||||
@@ -2,32 +2,28 @@
|
||||
|
||||
* Under ACTIVE development
|
||||
|
||||
Source of curated application definitions (a.k.a Charts) for Kubernetes Helm. For more information about installing and using Helm, see its
|
||||
[README.md](https://github.com/kubernetes/helm/tree/master/README.md). To get a quick introduction to the developer's experience using Helm and Charts see this [developer workflow](https://github.com/kubernetes/helm/blob/master/docs/workflow/developer-workflows.md).
|
||||
Use this repository to submit official charts for Kubernetes Helm. Charts are curated application definitions for Kubernetes Helm. For more information about installing and using Helm, see its
|
||||
[README.md](https://github.com/kubernetes/helm/tree/master/README.md). To get a quick introduction to Charts see this [chart document](https://github.com/kubernetes/helm/blob/master/docs/charts.md).
|
||||
|
||||
## Source Repository
|
||||
|
||||
This Github repository contains the source of Helm Charts that will soon become available on `gs://kubernetes-charts`.
|
||||
This Github repository contains the packaged source of Helm Charts that will become available on `gs://kubernetes-charts`.
|
||||
|
||||
Charts are already available for testing at `gs://kubernetes-charts-testing`. You can browse those Charts directly on the Google Cloud Storage [console](https://console.cloud.google.com/storage/browser/kubernetes-charts-testing).
|
||||
|
||||
Charts are packaged and uploaded to a repository according to a [workflow](https://github.com/kubernetes/helm/blob/master/docs/pushing_charts.md)
|
||||
|
||||
## Chart Format
|
||||
|
||||
The format of Charts is defined in this [document](https://github.com/kubernetes/helm/blob/master/docs/design/chart_format.md) in the Helm [repository](https://github.com/kubernetes/helm.git)
|
||||
Take a look at the [alpine example chart](https://github.com/kubernetes/helm/tree/master/docs/examples/alpine) and the [nginx example chart](https://github.com/kubernetes/helm/tree/master/docs/examples/nginx) for reference when you're writing your first few charts..
|
||||
|
||||
Before contributing a Chart, become familiar with this format. Note that the project is still under active development and the format may still evolve a bit.
|
||||
Before contributing a Chart, become familiar with the format. Note that the project is still under active development and the format may still evolve a bit.
|
||||
|
||||
The format is slightly different from the Deis's [Charts](https://github.com/helm/charts.git) where it originated.
|
||||
## Contributing a chart
|
||||
|
||||
Your contributions are most welcome in the form or Pull Requests.
|
||||
|
||||
After you have created and tested a chart, please use `helm lint [CHART]` to lint the chart for additionalchecks. Then, use `helm package [CHART]` to package your chart into a chart archive. Create a pull request containing your packaged charts.
|
||||
|
||||
Note: We use the same [workflow](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md#git-setup),
|
||||
[License](LICENSE) and [Contributor License Agreement](CONTRIBUTING.md) as the main Kubernetes repository.
|
||||
|
||||
## Status of the Project
|
||||
|
||||
This project is still under active development, so you might run into [issues](https://github.com/kubernetes/charts/issues). If you do, please don't be shy about letting us know, or better yet, contribute a fix or feature.
|
||||
|
||||
## Contributing
|
||||
|
||||
Your contributions are most welcome.
|
||||
|
||||
We use the same [workflow](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md#git-setup),
|
||||
[License](LICENSE) and [Contributor License Agreement](CONTRIBUTING.md) as the main Kubernetes repository.
|
||||
@@ -1,30 +0,0 @@
|
||||
export TEST_ROOT_DIR="$(cd "$(dirname $(dirname $0))"; pwd)"
|
||||
export HELM_ARTIFACT_REPO="${HELM_ARTIFACT_REPO:-helm-ci}"
|
||||
CLUSTER_NAME="${CLUSTER_NAME:-helm-testing}"
|
||||
GOOGLE_SDK_DIR="${HOME}/google-cloud-sdk"
|
||||
export HELM_BIN="${TEST_ROOT_DIR}/helm.bin"
|
||||
export TEST_DIR="${TEST_ROOT_DIR}/_test"
|
||||
export SECRETS_DIR="${TEST_DIR}/secrets"
|
||||
SKIP_DESTROY=${SKIP_DESTROY:-false}
|
||||
|
||||
export HEALTHCHECK_TIMEOUT_SEC=120
|
||||
|
||||
GCLOUD_CREDENTIALS_FILE="${GCLOUD_CREDENTIALS_FILE:-"${SECRETS_DIR}/gcloud-credentials.json"}"
|
||||
|
||||
GCLOUD_PROJECT_ID="${GCLOUD_PROJECT_ID:-${CLUSTER_NAME}}"
|
||||
K8S_ZONE="${K8S_ZONE:-us-central1-b}"
|
||||
K8S_CLUSTER_NAME="${K8S_CLUSTER_NAME:-${GCLOUD_PROJECT_ID}-$(openssl rand -hex 2)}"
|
||||
|
||||
|
||||
|
||||
# Text color variables
|
||||
txtund=$(tput sgr 0 1) # Underline
|
||||
txtbld=$(tput bold) # Bold
|
||||
bldred=${txtbld}$(tput setaf 1) # red
|
||||
bldblu=${txtbld}$(tput setaf 4) # blue
|
||||
bldwht=${txtbld}$(tput setaf 7) # white
|
||||
txtrst=$(tput sgr0) # Reset
|
||||
|
||||
pass="${bldblu}-->${txtrst}"
|
||||
warn="${bldred}-->${txtrst}"
|
||||
ques="${bldblu}???${txtrst}"
|
||||
@@ -1,50 +0,0 @@
|
||||
function gke::install {
|
||||
if [ ! -d "${GOOGLE_SDK_DIR}" ]; then
|
||||
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
|
||||
curl https://sdk.cloud.google.com | bash
|
||||
fi
|
||||
|
||||
export PATH="${GOOGLE_SDK_DIR}/bin:$PATH"
|
||||
gcloud -q components update kubectl
|
||||
}
|
||||
|
||||
function gke::login {
|
||||
if [ -f ${GCLOUD_CREDENTIALS_FILE} ]; then
|
||||
gcloud -q auth activate-service-account --key-file "${GCLOUD_CREDENTIALS_FILE}"
|
||||
else
|
||||
log-warn "No credentials file located at ${GCLOUD_CREDENTIALS_FILE}"
|
||||
log-warn "You can set this via GCLOUD_CREDENTIALS_FILE"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function gke::config {
|
||||
gcloud -q config set project "${GCLOUD_PROJECT_ID}"
|
||||
gcloud -q config set compute/zone "${K8S_ZONE}"
|
||||
}
|
||||
|
||||
function gke::create-cluster {
|
||||
log-lifecycle "Creating cluster ${K8S_CLUSTER_NAME}"
|
||||
gcloud -q container clusters create "${K8S_CLUSTER_NAME}"
|
||||
gcloud -q config set container/cluster "${K8S_CLUSTER_NAME}"
|
||||
gcloud -q container clusters get-credentials "${K8S_CLUSTER_NAME}"
|
||||
}
|
||||
|
||||
function gke::destroy {
|
||||
if [ "${SKIP_DESTROY}" == false ]; then
|
||||
log-lifecycle "Destroying cluster ${K8S_CLUSTER_NAME}"
|
||||
if command -v gcloud &>/dev/null; then
|
||||
gcloud -q container clusters delete "${K8S_CLUSTER_NAME}" --no-wait
|
||||
log-info "Cluster ${K8S_CLUSTER_NAME} scheduled for destruction. Muahaha."
|
||||
log-info "Set SKIP_DESTROY=true if you don't want cluster destruction-on-exit behavior"
|
||||
fi
|
||||
else
|
||||
log-warn "Skipping destruction of ${K8S_CLUSTER_NAME} (SKIP_DESTROY=${SKIP_DESTROY})"
|
||||
fi
|
||||
}
|
||||
|
||||
function gke::setup {
|
||||
gke::install
|
||||
gke::login
|
||||
gke::config
|
||||
}
|
||||
-155
@@ -1,155 +0,0 @@
|
||||
function move-files {
|
||||
helm doctor # need proper ~/.helm directory structure and config.yml
|
||||
|
||||
log-info "Staging chart directory"
|
||||
rsync -av . ${HOME}/.helm/cache/charts/
|
||||
}
|
||||
|
||||
function helm::setup {
|
||||
# Uses HELM_ARTIFACT_REPO to determine which repository to grab helm from
|
||||
|
||||
log-lifecycle "Installing helm into $(pwd)/.bin"
|
||||
|
||||
mkdir -p .bin
|
||||
(
|
||||
cd .bin
|
||||
curl -s https://get.helm.sh | bash
|
||||
)
|
||||
export PATH="$(pwd)/.bin:${PATH}"
|
||||
|
||||
move-files
|
||||
}
|
||||
|
||||
function helm::get-changed-charts {
|
||||
git diff --name-only HEAD origin/HEAD -- charts \
|
||||
| cut -d/ -f 1-2 \
|
||||
| sort \
|
||||
| uniq
|
||||
}
|
||||
|
||||
function ensure-dirs-exist {
|
||||
local dirs="${@}"
|
||||
local pruned
|
||||
|
||||
# ensure directories exist and just output directory name
|
||||
for dir in ${dirs}; do
|
||||
if [ -d ${dir} ]; then
|
||||
pruned+="$(basename "${dir}")\n"
|
||||
fi
|
||||
done
|
||||
|
||||
echo -e "${pruned}"
|
||||
}
|
||||
|
||||
function generate-test-plan {
|
||||
ensure-dirs-exist "$(helm::get-changed-charts)"
|
||||
}
|
||||
|
||||
function get-all-charts {
|
||||
local chartlist="$(find . -name Chart.yaml)"
|
||||
local cleanedlist
|
||||
|
||||
if [ -z "${TEST_CHARTS}" ]; then
|
||||
local chart
|
||||
for chart in ${chartlist}; do
|
||||
cleanedlist+="$(basename $(dirname ${chart})) "
|
||||
done
|
||||
else
|
||||
cleanedlist="${TEST_CHARTS}"
|
||||
fi
|
||||
|
||||
echo "${cleanedlist}"
|
||||
}
|
||||
|
||||
function helm::test-chart {
|
||||
log-warn "Start: ${1}"
|
||||
.bin/helm fetch "${1}"
|
||||
.bin/helm install "${1}"
|
||||
helm::healthcheck "${1}"
|
||||
.bin/helm uninstall -y "${1}"
|
||||
log-warn "Done: ${1}"
|
||||
}
|
||||
|
||||
function helm::test {
|
||||
local test_plan
|
||||
|
||||
if is-pull-request; then
|
||||
test_plan="$(generate-test-plan)"
|
||||
else
|
||||
test_plan="$(get-all-charts)"
|
||||
fi
|
||||
|
||||
log-lifecycle "Running test plan"
|
||||
log-info "Charts to be tested:"
|
||||
echo "${test_plan}"
|
||||
|
||||
local plan
|
||||
for plan in ${test_plan}; do
|
||||
helm::test-chart ${plan}
|
||||
done
|
||||
}
|
||||
|
||||
function is-pull-request {
|
||||
if [ ! -z ${TRAVIS} ] && \
|
||||
[ ${TRAVIS_PULL_REQUEST} != false ]; then
|
||||
log-warn "This is a pull request."
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function helm::is-pod-running {
|
||||
local name="${1}"
|
||||
|
||||
if kubectl get pods "${name}" &> /dev/null; then
|
||||
log-info "Looking for pod named ${name}"
|
||||
local jq_name_query=".status.phase"
|
||||
kubectl get pods ${name} -o json | jq -r "${jq_name_query}" | grep -q "Running" && return 0
|
||||
fi
|
||||
|
||||
log-info "Looking for label: app=${name}"
|
||||
local jq_app_label_query=".items[] | select(.metadata.labels.app == \"${name}\") | .status.phase"
|
||||
kubectl get pods -o json | jq -r "${jq_app_label_query}" | grep -q "Running" && return 0
|
||||
|
||||
log-info "Looking for label: provider=${name}"
|
||||
local jq_provider_label_query=".items[] | select(.metadata.labels.provider == \"${name}\") | .status.phase"
|
||||
kubectl get pods -o json | jq -r "${jq_provider_label_query}" | grep -q "Running" && return 0
|
||||
|
||||
log-info "Looking for label: name=${name}"
|
||||
local jq_provider_label_query=".items[] | select(.metadata.labels.name == \"${name}\") | .status.phase"
|
||||
kubectl get pods -o json | jq -r "${jq_provider_label_query}" | grep -q "Running" && return 0
|
||||
}
|
||||
|
||||
function helm::healthcheck {
|
||||
WAIT_TIME=1
|
||||
log-lifecycle "Checking: ${1}"
|
||||
until helm::is-pod-running "${1}"; do
|
||||
sleep 1
|
||||
(( WAIT_TIME += 1 ))
|
||||
if [ ${WAIT_TIME} -gt ${HEALTHCHECK_TIMEOUT_SEC} ]; then
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
log-lifecycle "Checked!: ${1}"
|
||||
}
|
||||
|
||||
function helm::lint {
|
||||
local chart
|
||||
for chart in $(get-all-charts); do
|
||||
.bin/helm fetch "${chart}"
|
||||
.bin/helm lint "${chart}"
|
||||
done
|
||||
}
|
||||
|
||||
function log-lifecycle {
|
||||
echo "${bldblu}==> ${@}...${txtrst}"
|
||||
}
|
||||
|
||||
function log-info {
|
||||
echo "${wht}--> ${@}${txtrst}"
|
||||
}
|
||||
|
||||
function log-warn {
|
||||
echo "${bldred}--> ${@}${txtrst}"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
source _test/config.sh
|
||||
|
||||
cd "${TEST_ROOT_DIR}"
|
||||
|
||||
source _test/lib.sh
|
||||
source _test/gke.sh
|
||||
|
||||
gke::install # "need" kubectl for helm
|
||||
|
||||
helm::setup
|
||||
|
||||
helm::lint
|
||||
Binary file not shown.
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
source _test/config.sh
|
||||
|
||||
cd "${TEST_ROOT_DIR}"
|
||||
|
||||
source _test/lib.sh
|
||||
source _test/gke.sh
|
||||
|
||||
if [ "${TRAVIS}" == true ]; then
|
||||
if [ "${TRAVIS_PULL_REQUEST}" != false ]; then
|
||||
log-lifecycle "This is a pull request build. Skipping chart tests."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# decrypt gcloud credentials if on Travis and building the master branch
|
||||
openssl aes-256-cbc -K $encrypted_e967971bb2cd_key \
|
||||
-iv $encrypted_e967971bb2cd_iv \
|
||||
-in _test/secrets/gcloud-credentials.json.enc \
|
||||
-out _test/secrets/gcloud-credentials.json -d
|
||||
fi
|
||||
|
||||
trap gke::destroy EXIT ERR
|
||||
|
||||
gke::setup
|
||||
|
||||
helm::setup
|
||||
|
||||
gke::create-cluster
|
||||
|
||||
helm::test
|
||||
@@ -1,24 +0,0 @@
|
||||
name: alpine
|
||||
description: Simple pod running Alpine Linux.
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- basic
|
||||
- alpine
|
||||
- linux
|
||||
- image
|
||||
- used
|
||||
- basic
|
||||
- debugging
|
||||
- troubleshooting
|
||||
- default
|
||||
- starts
|
||||
- sleeps
|
||||
- long
|
||||
- time
|
||||
- eventually
|
||||
- stops
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/alpine
|
||||
home: http://www.alpinelinux.org/
|
||||
@@ -1,8 +0,0 @@
|
||||
# Alpine
|
||||
|
||||
This Chart provides a Pod running Alpine Linux.
|
||||
|
||||
## Usage
|
||||
|
||||
This pod is for testing and debugging. The standard usage is to connect
|
||||
using `kubectl exec` and then install the tools you want using `apk`.
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: alpine
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: waiter
|
||||
image: "alpine:3.2"
|
||||
command: ["/bin/sleep","9000"]
|
||||
@@ -1,11 +0,0 @@
|
||||
name: cassandra
|
||||
description: The Apache Cassandra Project.
|
||||
version: 0.2.1
|
||||
keywords:
|
||||
- package
|
||||
- deploys
|
||||
- cassandra
|
||||
- kubernetes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/cassandra
|
||||
home: http://cassandra.apache.org/
|
||||
@@ -1,3 +0,0 @@
|
||||
# Cassandra
|
||||
|
||||
This Chart deploys Cassandra to kubernetes.
|
||||
@@ -1,26 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: cassandra
|
||||
labels:
|
||||
provider: cassandra
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
provider: cassandra
|
||||
template:
|
||||
metadata:
|
||||
name: cassandra
|
||||
labels:
|
||||
provider: cassandra
|
||||
spec:
|
||||
containers:
|
||||
- name: cassandra
|
||||
image: cassandra
|
||||
ports:
|
||||
- containerPort: 7000
|
||||
- containerPort: 7001
|
||||
- containerPort: 7199
|
||||
- containerPort: 9042
|
||||
- containerPort: 9160
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: cassandra
|
||||
labels:
|
||||
provider: cassandra
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- name: internode
|
||||
port: 7000
|
||||
- name: internodessl
|
||||
port: 7001
|
||||
- name: jmx
|
||||
port: 7199
|
||||
- name: client
|
||||
port: 9042
|
||||
- name: thrift
|
||||
port: 9160
|
||||
selector:
|
||||
provider: cassandra
|
||||
@@ -1,14 +0,0 @@
|
||||
name: docker-registry
|
||||
description: The Docker toolset to pack, ship, store, and deliver content.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- docker
|
||||
- registry
|
||||
- used
|
||||
- development
|
||||
- purposes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/docker-registry
|
||||
home: https://github.com/docker/distribution
|
||||
@@ -1,3 +0,0 @@
|
||||
# Docker Registry
|
||||
|
||||
The Docker toolset to pack, ship, store, and deliver content.
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: docker-registry
|
||||
labels:
|
||||
app: docker-registry
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: docker-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: docker-registry
|
||||
image: registry:2.1.1
|
||||
ports:
|
||||
- containerPort: 5000
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: docker-registry
|
||||
labels:
|
||||
app: docker-registry
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 5000
|
||||
selector:
|
||||
app: docker-registry
|
||||
@@ -1,13 +0,0 @@
|
||||
name: elasticsearch
|
||||
description: Elasticsearch Restful Search Engine
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- chart
|
||||
- provides
|
||||
- basic
|
||||
- elasticsearch
|
||||
- search
|
||||
- service
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/elasticsearch
|
||||
home: https://github.com/elastic/elasticsearch
|
||||
@@ -1,3 +0,0 @@
|
||||
# Elasticsearch
|
||||
|
||||
This Chart provides a basic Elasticsearch search service.
|
||||
@@ -1,24 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: elasticsearch
|
||||
labels:
|
||||
provider: elasticsearch
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
provider: elasticsearch
|
||||
template:
|
||||
metadata:
|
||||
name: elasticsearch
|
||||
labels:
|
||||
provider: elasticsearch
|
||||
spec:
|
||||
containers:
|
||||
- name: elasticsearch
|
||||
image: elasticsearch:2.1.1
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
- containerPort: 9300
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: elasticsearch
|
||||
labels:
|
||||
provider: elasticsearch
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- name: client
|
||||
port: 9200
|
||||
- name: peer
|
||||
port: 9300
|
||||
selector:
|
||||
provider: elasticsearch
|
||||
@@ -1,24 +0,0 @@
|
||||
name: example-nginx
|
||||
description: An example nginx + git-sync application
|
||||
version: 0.0.2
|
||||
keywords:
|
||||
- chart
|
||||
- provides
|
||||
- simple
|
||||
- nginx
|
||||
- website
|
||||
- demonstrates
|
||||
- pod
|
||||
- two
|
||||
- containers
|
||||
- one
|
||||
- container
|
||||
- runs
|
||||
- nginx
|
||||
- constantly
|
||||
- syncs
|
||||
- git
|
||||
- repository
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/example-nginx
|
||||
home: http://github.com/slack/kubernetes-nginx-example
|
||||
@@ -1,36 +0,0 @@
|
||||
# example-nginx
|
||||
|
||||
A small website delivered by two cooperating containers.
|
||||
|
||||
1. [git-sync](https://github.com/slack/git-sync) container which constantly polls a git repository
|
||||
1. [nginx](https://hub.docker.com/_/nginx/) container which serves the website on port 80
|
||||
|
||||
By default, this Chart adds a ReplicationController and a Service. Service uses
|
||||
NodePort, so installing this chart will not provision a LoadBalancer. Depending
|
||||
on your Kubernetes cluster configuration you may need to add additional
|
||||
configuration to access the example service.
|
||||
|
||||
## Chart Label Usage
|
||||
|
||||
* `app=example-nginx` is the only set of labels used by this Chart
|
||||
|
||||
## Configuration
|
||||
|
||||
Configure the git-sync container using the following environment variables:
|
||||
|
||||
* `GIT_SYNC_REPO`: https://github.com/slack/basic-site.git
|
||||
* `GIT_SYNC_BRANCH`: master
|
||||
* `GIT_SYNC_BRANCH`: master
|
||||
* `GIT_SYNC_DEST`: /git
|
||||
* `GIT_SYNC_DEST_MODE`: 0755
|
||||
* `GIT_SYNC_WAIT`: 60
|
||||
|
||||
# Changelog
|
||||
|
||||
## [0.0.2] - 2015-10-29
|
||||
|
||||
- Add a Service definition.
|
||||
|
||||
## [0.0.1] - 2015-10-28
|
||||
|
||||
- Initial release.
|
||||
@@ -1,44 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: example-nginx
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
app: example-nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: example-nginx
|
||||
spec:
|
||||
containers:
|
||||
- image: "quay.io/jhansen/git-sync:0.0.2"
|
||||
name: git-sync
|
||||
volumeMounts:
|
||||
- mountPath: /git
|
||||
name: git-volume
|
||||
env:
|
||||
- name: GIT_SYNC_REPO
|
||||
value: https://github.com/slack/basic-site.git
|
||||
- name: GIT_SYNC_BRANCH
|
||||
value: master
|
||||
- name: GIT_SYNC_BRANCH
|
||||
value: master
|
||||
- name: GIT_SYNC_DEST
|
||||
value: /git
|
||||
- name: GIT_SYNC_DEST_MODE
|
||||
value: "0755"
|
||||
- name: GIT_SYNC_WAIT
|
||||
value: "60"
|
||||
- image: nginx
|
||||
name: nginx
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/nginx/html
|
||||
name: git-volume
|
||||
volumes:
|
||||
- name: git-volume
|
||||
emptyDir: {}
|
||||
@@ -1,15 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: example-nginx
|
||||
labels:
|
||||
app: example-nginx
|
||||
heritage: helm
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: example-nginx
|
||||
@@ -1,20 +0,0 @@
|
||||
name: example-todo
|
||||
description: Example Todo application backed by Redis
|
||||
version: 0.0.6
|
||||
keywords:
|
||||
- chart
|
||||
- contains
|
||||
- example
|
||||
- todo
|
||||
- application
|
||||
- backed
|
||||
- redis
|
||||
- supports
|
||||
- standalone
|
||||
- clustered
|
||||
- sentinel
|
||||
- redis
|
||||
- backends
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/example-todo
|
||||
home: http://github.com/deis/example-todo
|
||||
@@ -1,20 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: example-todo
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: example-todo
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: example-todo
|
||||
spec:
|
||||
containers:
|
||||
- name: example-todo
|
||||
image: "deis/example-todo:v0.0.6"
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: todo-redis-cluster
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 26379
|
||||
name: redis-sentinel
|
||||
protocol: TCP
|
||||
selector:
|
||||
provider: redis
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: todo-redis-standalone
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
name: redis
|
||||
protocol: TCP
|
||||
selector:
|
||||
provider: redis
|
||||
@@ -1,15 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: example-todo
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 3000
|
||||
nodePort: 30000
|
||||
name: http
|
||||
protocol: TCP
|
||||
selector:
|
||||
name: example-todo
|
||||
@@ -1,13 +0,0 @@
|
||||
name: jenkins
|
||||
description: The leading open-sources continuous integration server.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- jenkins
|
||||
- leading
|
||||
- open-sources
|
||||
- continuous
|
||||
- integration
|
||||
- server
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/jenkins
|
||||
home: https://jenkins-ci.org/
|
||||
@@ -1,3 +0,0 @@
|
||||
# Jenkins
|
||||
|
||||
Jenkins CI is the leading open-source continuous integration server.
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: jenkins
|
||||
labels:
|
||||
app: jenkins
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: jenkins
|
||||
spec:
|
||||
containers:
|
||||
- name: jenkins
|
||||
image: jenkins:1.642.1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: jenkins
|
||||
labels:
|
||||
app: jenkins
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: jenkins
|
||||
@@ -1,19 +0,0 @@
|
||||
name: memcached
|
||||
description: A simple Memcached cluster
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- memcached
|
||||
- simple
|
||||
- cache
|
||||
- server
|
||||
- chart
|
||||
- provides
|
||||
- multiple
|
||||
- replication
|
||||
- controllers
|
||||
- grouped
|
||||
- together
|
||||
- cluster
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/memcached
|
||||
home: http://https://hub.docker.com/_/memcached/
|
||||
@@ -1,20 +0,0 @@
|
||||
# memcached
|
||||
|
||||
Memcached is a cache server. http://memcached.org/
|
||||
|
||||
This chart provides a replication controller that starts (by default) a
|
||||
single Memcached server. Memcached's clustering model is very simple:
|
||||
everything is done client-side.
|
||||
|
||||
## For Clustering
|
||||
|
||||
This project creates two memcached RCs, each with only one pod. To use
|
||||
this cluster, an app should declare two services -- one for each RC.
|
||||
Memcached clients should then be configured to use both services.
|
||||
|
||||
RCs are named `memcached-1` and `memcached-2`. Both are labeled with
|
||||
`provider: memcached`. However, using that as your only label selector
|
||||
will have undesirable consequences.
|
||||
|
||||
To add more memcached servers to the cluster, create additional RCs and
|
||||
services.
|
||||
@@ -1,49 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: memcached-1
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: memcached-1
|
||||
mode: cluster
|
||||
provider: memcached
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: memcached-1
|
||||
mode: cluster
|
||||
provider: memcached
|
||||
spec:
|
||||
containers:
|
||||
- name: memcached
|
||||
image: "memcached:1.4.24"
|
||||
ports:
|
||||
- containerPort: 11211
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: memcached-2
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: memcached-2
|
||||
mode: cluster
|
||||
provider: memcached
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: memcached-2
|
||||
mode: cluster
|
||||
provider: memcached
|
||||
spec:
|
||||
containers:
|
||||
- name: memcached
|
||||
image: "memcached:1.4.24"
|
||||
ports:
|
||||
- containerPort: 11211
|
||||
@@ -1,14 +0,0 @@
|
||||
name: mysql
|
||||
description: Chart running MySQL.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- basic
|
||||
- mysql
|
||||
- database
|
||||
- development
|
||||
- purposes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/mysql
|
||||
home: https://www.mysql.com/
|
||||
@@ -1,3 +0,0 @@
|
||||
# MySQL
|
||||
|
||||
This package provides a basic MySQL database pod for development purposes.
|
||||
@@ -1,22 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: mysql
|
||||
labels:
|
||||
provider: mysql
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
provider: mysql
|
||||
spec:
|
||||
containers:
|
||||
- name: mysql
|
||||
image: mysql
|
||||
env:
|
||||
- name: MYSQL_ROOT_PASSWORD
|
||||
value: mypassword
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mysql
|
||||
labels:
|
||||
provider: mysql
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 3306
|
||||
selector:
|
||||
provider: mysql
|
||||
@@ -1,17 +0,0 @@
|
||||
name: nginx-alpine
|
||||
description: Nginx http service
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- chart
|
||||
- contains
|
||||
- basic
|
||||
- nginx
|
||||
- http
|
||||
- service
|
||||
- useful
|
||||
- verifying
|
||||
- proof
|
||||
- concept
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/nginx-alpine
|
||||
home: https://www.nginx.com
|
||||
@@ -1,4 +0,0 @@
|
||||
# Nginx based on Alpine Linux
|
||||
|
||||
This Chart provides a basic runing Nginx http service useful in verifying proof of concept.
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: nginx-alpine
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: nginx-alpine
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: nginx-alpine
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx-alpine
|
||||
image: rohan/nginx-alpine
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -1,14 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginx-alpine
|
||||
labels:
|
||||
app: nginx-alpine
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
name: nginx-alpine
|
||||
@@ -1,17 +0,0 @@
|
||||
name: nginx
|
||||
description: Nginx http service
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- chart
|
||||
- contains
|
||||
- basic
|
||||
- nginx
|
||||
- http
|
||||
- service
|
||||
- useful
|
||||
- verifying
|
||||
- proof
|
||||
- concept
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/nginx
|
||||
home: https://www.nginx.com
|
||||
@@ -1,3 +0,0 @@
|
||||
# Nginx
|
||||
|
||||
This Chart provides a basic running Nginx http service useful in verifying proof of concept.
|
||||
@@ -1,20 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: nginx
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -1,14 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginx
|
||||
labels:
|
||||
heritage: helm
|
||||
app: nginx
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
name: nginx
|
||||
@@ -1,13 +0,0 @@
|
||||
name: owncloud
|
||||
description: a self-hosted file sync and share server.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- owncloud
|
||||
- self-hosted
|
||||
- file
|
||||
- sync
|
||||
- share
|
||||
- server
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/owncloud
|
||||
home: https://owncloud.org/
|
||||
@@ -1,3 +0,0 @@
|
||||
# Owncloud
|
||||
|
||||
OwnCloud is a self-hosted file sync and share server.
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: owncloud
|
||||
labels:
|
||||
app: owncloud
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: owncloud
|
||||
spec:
|
||||
containers:
|
||||
- name: owncloud
|
||||
image: owncloud:8.2.0
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: owncloud
|
||||
labels:
|
||||
app: owncloud
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
selector:
|
||||
app: owncloud
|
||||
@@ -1,14 +0,0 @@
|
||||
name: postgresql
|
||||
description: The world's most advanced open sources database.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- basic
|
||||
- postgresql
|
||||
- database
|
||||
- development
|
||||
- purposes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/postgresql
|
||||
home: http://www.postgresql.org/
|
||||
@@ -1,3 +0,0 @@
|
||||
# PostgreSQL
|
||||
|
||||
This package provides a basic PostgreSQL database for development purposes.
|
||||
@@ -1,22 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: postgresql
|
||||
labels:
|
||||
provider: postgresql
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
provider: postgresql
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: postgres
|
||||
env:
|
||||
- name: DB_PASS
|
||||
value: mypassword
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: postgresql
|
||||
labels:
|
||||
app: postgresql
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 5432
|
||||
selector:
|
||||
app: postgresql
|
||||
@@ -1,17 +0,0 @@
|
||||
name: proxy-2-service
|
||||
description: Proxy a pod port or host port to a kubernetes Service
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- handy
|
||||
- demos
|
||||
- laptop
|
||||
- able
|
||||
- access
|
||||
- service
|
||||
- via
|
||||
- host
|
||||
- ip
|
||||
- port
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/proxy-2-service
|
||||
home: https://github.com/kubernetes/contrib/tree/master/for-demos/proxy-to-service
|
||||
@@ -1,42 +0,0 @@
|
||||
# proxy-2-service
|
||||
|
||||
Proxy a pod port or host port to a kubernetes Service
|
||||
|
||||
While Kubernetes provides the ability to map Services to ports on each node,
|
||||
those ports are in a special range set aside for allocations. This means you
|
||||
can not not simply choose to expose a Service on port 80 on your nodes. You
|
||||
also can not choose to expose it on some nodes but not others. These things
|
||||
will be fixed in the future, but until then, here is a stop-gap measure you can
|
||||
use.
|
||||
|
||||
The container image `gcr.io/google_containers/proxy-to-service:v2` is a very
|
||||
small container that will do port-forwarding for you. You can use it to
|
||||
forward a pod port or a host port to a service. Pods can choose any port or
|
||||
host port, and are not limited in the same way Services are.
|
||||
|
||||
For example, suppose you want to forward a node's port 80 (HTTP) to your
|
||||
node's nginx service. The following pod would do the trick:
|
||||
|
||||
```
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: http-proxy
|
||||
spec:
|
||||
containers:
|
||||
- name: proxy-http
|
||||
image: gcr.io/google_containers/proxy-to-service:v2
|
||||
args: [ "tcp", "80", "nginx.default" ]
|
||||
ports:
|
||||
- name: http
|
||||
protocol: TCP
|
||||
containerPort: 80
|
||||
hostPort: 80
|
||||
```
|
||||
|
||||
This creates a pod with one container receives traffic on a port 80 (HTTP) and
|
||||
forwards that traffic to the `nginx` service.
|
||||
You also can add more ports adding another container there.
|
||||
You can run this on as many or as few nodes as you want.
|
||||
|
||||
Note: Kubernetes DNS Add-on needs to be installed
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: proxy-2-service
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
containers:
|
||||
- name: http-tcp
|
||||
image: gcr.io/google_containers/proxy-to-service:v2
|
||||
args: [ "tcp", "80", "nginx.default" ]
|
||||
ports:
|
||||
- name: http
|
||||
protocol: TCP
|
||||
containerPort: 80
|
||||
hostPort: 80
|
||||
@@ -1,14 +0,0 @@
|
||||
name: rabbitmq
|
||||
description: Chart running RabbitMQ.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- rabbitmq
|
||||
- message
|
||||
- broker
|
||||
- development
|
||||
- purposes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/rabbitmq
|
||||
home: https://www.rabbitmq.com/
|
||||
@@ -1,3 +0,0 @@
|
||||
# RabbitMQ
|
||||
|
||||
This Chart provides a basic RabbitMQ instance running in kubernetes.
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: rabbitmq
|
||||
labels:
|
||||
provider: rabbitmq
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
provider: rabbitmq
|
||||
spec:
|
||||
containers:
|
||||
- name: rabbitmq
|
||||
image: rabbitmq:3.6.0
|
||||
ports:
|
||||
- containerPort: 5672
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: rabbitmq
|
||||
labels:
|
||||
provider: rabbitmq
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 5672
|
||||
selector:
|
||||
provider: rabbitmq
|
||||
@@ -1,24 +0,0 @@
|
||||
name: redis-cluster
|
||||
description: Highly available Redis cluster with multiple sentinels and standbys.
|
||||
version: 0.0.5
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- highly
|
||||
- available
|
||||
- redis
|
||||
- cluster
|
||||
- multiple
|
||||
- sentinels
|
||||
- standbys
|
||||
- note
|
||||
- `redis-master`
|
||||
- pod
|
||||
- used
|
||||
- bootstrapping
|
||||
- deleted
|
||||
- cluster
|
||||
- running
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/redis-cluster
|
||||
home: http://github.com/deis/redis-cluster
|
||||
@@ -1,39 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
labels:
|
||||
heritage: helm
|
||||
name: redis
|
||||
redis-sentinel: "true"
|
||||
role: master
|
||||
bootstrap: "true"
|
||||
name: redis-master
|
||||
spec:
|
||||
containers:
|
||||
- name: master
|
||||
image: "deis/redis:v0.0.5"
|
||||
env:
|
||||
- name: MASTER
|
||||
value: "true"
|
||||
- name: DEBUG
|
||||
value: "1"
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
resources:
|
||||
limits:
|
||||
cpu: "0.1"
|
||||
volumeMounts:
|
||||
- mountPath: /redis-master-data
|
||||
name: data
|
||||
- name: sentinel
|
||||
image: "deis/redis:v0.0.5"
|
||||
env:
|
||||
- name: SENTINEL
|
||||
value: "true"
|
||||
- name: DEBUG
|
||||
value: "1"
|
||||
ports:
|
||||
- containerPort: 26379
|
||||
volumes:
|
||||
- name: data
|
||||
emptyDir: {}
|
||||
@@ -1,30 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: redis
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
name: redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis-cluster
|
||||
name: redis
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
image: "deis/redis:v0.0.5"
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
resources:
|
||||
limits:
|
||||
cpu: "0.1"
|
||||
volumeMounts:
|
||||
- mountPath: /redis-master-data
|
||||
name: data
|
||||
volumes:
|
||||
- name: data
|
||||
emptyDir: {}
|
||||
@@ -1,26 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: redis-sentinel
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
redis-sentinel: "true"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: redis-sentinel
|
||||
redis-sentinel: "true"
|
||||
role: sentinel
|
||||
provider: redis
|
||||
spec:
|
||||
containers:
|
||||
- name: sentinel
|
||||
image: "deis/redis:v0.0.5"
|
||||
env:
|
||||
- name: SENTINEL
|
||||
value: "true"
|
||||
ports:
|
||||
- containerPort: 26379
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
heritage: helm
|
||||
name: sentinel
|
||||
role: service
|
||||
name: redis-sentinel
|
||||
spec:
|
||||
ports:
|
||||
- port: 26379
|
||||
selector:
|
||||
redis-sentinel: "true"
|
||||
@@ -1,18 +0,0 @@
|
||||
name: redis-standalone
|
||||
description: Standalone Redis Master
|
||||
version: 0.0.1
|
||||
keywords:
|
||||
- package
|
||||
- provides
|
||||
- standalone
|
||||
- redis
|
||||
- master
|
||||
- useful
|
||||
- prototyping
|
||||
- note
|
||||
- include
|
||||
- high
|
||||
- availability
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/redis-standalone
|
||||
home: http://github.com/deis/helm
|
||||
@@ -1,3 +0,0 @@
|
||||
# Redis Standalone
|
||||
|
||||
This is a standalone Redis master with no high-availability, useful for rapid prototyping.
|
||||
@@ -1,34 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: redis-standalone
|
||||
labels:
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
name: redis-standalone
|
||||
mode: standalone
|
||||
provider: redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: redis-standalone
|
||||
mode: standalone
|
||||
provider: redis
|
||||
app: redis-standalone
|
||||
spec:
|
||||
containers:
|
||||
- name: redis-standalone
|
||||
image: kubernetes/redis:v1
|
||||
env:
|
||||
- name: MASTER
|
||||
value: "true"
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
volumeMounts:
|
||||
- mountPath: /redis-master-data
|
||||
name: data
|
||||
volumes:
|
||||
- name: data
|
||||
emptyDir: {}
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: redis
|
||||
labels:
|
||||
provider: redis
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
selector:
|
||||
provider: redis
|
||||
@@ -1,18 +0,0 @@
|
||||
name: redmine
|
||||
description: A flexible project management web application.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- redmine
|
||||
- flexible
|
||||
- project
|
||||
- management
|
||||
- web
|
||||
- application
|
||||
- written
|
||||
- using
|
||||
- ruby
|
||||
- rails
|
||||
- framework
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/redmine
|
||||
home: http://www.redmine.org/
|
||||
@@ -1,3 +0,0 @@
|
||||
# Redmine
|
||||
|
||||
Redmine is a flexible project management web application written using Ruby on Rails framework.
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: redmine
|
||||
labels:
|
||||
app: redmine
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redmine
|
||||
spec:
|
||||
containers:
|
||||
- name: redmine
|
||||
image: redmine:3.0.5
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: redmine
|
||||
labels:
|
||||
app: redmine
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 3000
|
||||
selector:
|
||||
app: redmine
|
||||
@@ -1,7 +0,0 @@
|
||||
name: replicatedservice
|
||||
description: Port of the replicatedservice template from kubernetes/charts
|
||||
version: 3
|
||||
expander:
|
||||
name: Expandybird
|
||||
entrypoint: templates/replicatedservice.py
|
||||
schema: templates/replicatedservice.py.schema
|
||||
@@ -1,195 +0,0 @@
|
||||
"""Defines a ReplicatedService type by creating both a Service and an RC.
|
||||
|
||||
This module creates a typical abstraction for running a service in a
|
||||
Kubernetes cluster, namely a replication controller and a service packaged
|
||||
together into a single unit.
|
||||
"""
|
||||
|
||||
import yaml
|
||||
|
||||
SERVICE_TYPE_COLLECTION = 'Service'
|
||||
RC_TYPE_COLLECTION = 'ReplicationController'
|
||||
|
||||
|
||||
def GenerateConfig(context):
|
||||
"""Generates a Replication Controller and a matching Service.
|
||||
|
||||
Args:
|
||||
context: Template context. See schema for context properties
|
||||
|
||||
Returns:
|
||||
A Container Manifest as a YAML string.
|
||||
"""
|
||||
# YAML config that we're going to create for both RC & Service
|
||||
config = {'resources': []}
|
||||
|
||||
name = context.env['name']
|
||||
container_name = context.properties.get('container_name', name)
|
||||
namespace = context.properties.get('namespace', 'default')
|
||||
|
||||
# Define things that the Service cares about
|
||||
service_name = context.properties.get('service_name', name + '-service')
|
||||
service_type = SERVICE_TYPE_COLLECTION
|
||||
|
||||
# Define things that the Replication Controller (rc) cares about
|
||||
rc_name = context.properties.get('rc_name', name + '-rc')
|
||||
rc_type = RC_TYPE_COLLECTION
|
||||
|
||||
service = {
|
||||
'name': service_name,
|
||||
'properties': {
|
||||
'apiVersion': 'v1',
|
||||
'kind': 'Service',
|
||||
'metadata': {
|
||||
'labels': GenerateLabels(context, service_name),
|
||||
'name': service_name,
|
||||
'namespace': namespace,
|
||||
},
|
||||
'spec': {
|
||||
'ports': [GenerateServicePorts(context, container_name)],
|
||||
'selector': GenerateLabels(context, name)
|
||||
}
|
||||
},
|
||||
'type': service_type,
|
||||
}
|
||||
set_up_external_lb = context.properties.get('external_service', None)
|
||||
if set_up_external_lb:
|
||||
service['properties']['spec']['type'] = 'LoadBalancer'
|
||||
cluster_ip = context.properties.get('cluster_ip', None)
|
||||
if cluster_ip:
|
||||
service['properties']['spec']['clusterIP'] = cluster_ip
|
||||
|
||||
rc = {
|
||||
'name': rc_name,
|
||||
'type': rc_type,
|
||||
'properties': {
|
||||
'apiVersion': 'v1',
|
||||
'kind': 'ReplicationController',
|
||||
'metadata': {
|
||||
'labels': GenerateLabels(context, rc_name),
|
||||
'name': rc_name,
|
||||
'namespace': namespace,
|
||||
},
|
||||
'spec': {
|
||||
'replicas': context.properties['replicas'],
|
||||
'selector': GenerateLabels(context, name),
|
||||
'template': {
|
||||
'metadata': {
|
||||
'labels': GenerateLabels(context, name),
|
||||
},
|
||||
'spec': {
|
||||
'containers': [
|
||||
{
|
||||
'env': GenerateEnv(context),
|
||||
'image': context.properties['image'],
|
||||
'name': container_name,
|
||||
'ports': [
|
||||
{
|
||||
'name': container_name,
|
||||
'containerPort': context.properties['container_port'],
|
||||
}
|
||||
],
|
||||
}
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Set up volume mounts
|
||||
if context.properties.get('volumes', None):
|
||||
rc['properties']['spec']['template']['spec']['containers'][0]['volumeMounts'] = []
|
||||
rc['properties']['spec']['template']['spec']['volumes'] = []
|
||||
for volume in context.properties['volumes']:
|
||||
# mountPath should be unique
|
||||
volume_name = volume['mount_path'].replace('/', '-').lstrip('-') + '-storage'
|
||||
rc['properties']['spec']['template']['spec']['containers'][0]['volumeMounts'].append(
|
||||
{
|
||||
'name': volume_name,
|
||||
'mountPath': volume['mount_path']
|
||||
}
|
||||
)
|
||||
del volume['mount_path']
|
||||
volume['name'] = volume_name
|
||||
rc['properties']['spec']['template']['spec']['volumes'].append(volume)
|
||||
|
||||
if context.properties.get('privileged', False):
|
||||
rc['properties']['spec']['template']['spec']['containers'][0]['securityContext'] = {
|
||||
'privileged': True
|
||||
}
|
||||
|
||||
config['resources'].append(rc)
|
||||
config['resources'].append(service)
|
||||
return yaml.dump(config)
|
||||
|
||||
|
||||
# Generates labels either from the context.properties['labels'] or generates
|
||||
# a default label 'name':name
|
||||
def GenerateLabels(context, name):
|
||||
"""Generates labels from context.properties['labels'] or creates default.
|
||||
|
||||
We make a deep copy of the context.properties['labels'] section to avoid
|
||||
linking in the yaml document, which I believe reduces readability of the
|
||||
expanded template. If no labels are given, generate a default 'name':name.
|
||||
|
||||
Args:
|
||||
context: Template context, which can contain the following properties:
|
||||
labels - Labels to generate
|
||||
|
||||
Returns:
|
||||
A dict containing labels in a name:value format
|
||||
"""
|
||||
tmp_labels = context.properties.get('labels', None)
|
||||
ret_labels = {'name': name}
|
||||
if isinstance(tmp_labels, dict):
|
||||
for key, value in tmp_labels.iteritems():
|
||||
ret_labels[key] = value
|
||||
return ret_labels
|
||||
|
||||
|
||||
def GenerateServicePorts(context, name):
|
||||
"""Generates a ports section for a service.
|
||||
|
||||
Args:
|
||||
context: Template context, which can contain the following properties:
|
||||
service_port - Port to use for the service
|
||||
target_port - Target port for the service
|
||||
protocol - Protocol to use.
|
||||
|
||||
Returns:
|
||||
A dict containing a port definition
|
||||
"""
|
||||
container_port = context.properties['container_port']
|
||||
target_port = context.properties.get('target_port', container_port)
|
||||
service_port = context.properties.get('service_port', target_port)
|
||||
protocol = context.properties.get('protocol')
|
||||
|
||||
ports = {}
|
||||
if name:
|
||||
ports['name'] = name
|
||||
if service_port:
|
||||
ports['port'] = service_port
|
||||
if target_port:
|
||||
ports['targetPort'] = target_port
|
||||
if protocol:
|
||||
ports['protocol'] = protocol
|
||||
|
||||
return ports
|
||||
|
||||
def GenerateEnv(context):
|
||||
"""Generates environmental variables for a pod.
|
||||
|
||||
Args:
|
||||
context: Template context, which can contain the following properties:
|
||||
env - Environment variables to set.
|
||||
|
||||
Returns:
|
||||
A list containing env variables in dict format {name: 'name', value: 'value'}
|
||||
"""
|
||||
env = []
|
||||
tmp_env = context.properties.get('env', [])
|
||||
for entry in tmp_env:
|
||||
if isinstance(entry, dict):
|
||||
env.append({'name': entry.get('name'), 'value': entry.get('value')})
|
||||
return env
|
||||
@@ -1,91 +0,0 @@
|
||||
info:
|
||||
title: Replicated Service
|
||||
description: |
|
||||
Defines a ReplicatedService type by creating both a Service and an RC.
|
||||
|
||||
This module creates a typical abstraction for running a service in a
|
||||
Kubernetes cluster, namely a replication controller and a service packaged
|
||||
together into a single unit.
|
||||
|
||||
required:
|
||||
- image
|
||||
|
||||
properties:
|
||||
container_name:
|
||||
type: string
|
||||
description: Name to use for container. If omitted, name is used.
|
||||
service_name:
|
||||
type: string
|
||||
description: Name to use for service. If omitted, name-service is used.
|
||||
namespace:
|
||||
type: string
|
||||
description: Namespace to create resources in. If omitted, 'default' is
|
||||
used.
|
||||
default: default
|
||||
protocol:
|
||||
type: string
|
||||
description: Protocol to use for the service.
|
||||
service_port:
|
||||
type: int
|
||||
description: Port to use for the service.
|
||||
target_port:
|
||||
type: int
|
||||
description: Target port to use for the service.
|
||||
container_port:
|
||||
type: int
|
||||
description: Port to use for the container.
|
||||
replicas:
|
||||
type: int
|
||||
description: Number of replicas to create in RC.
|
||||
image:
|
||||
type: string
|
||||
description: Docker image to use for replicas.
|
||||
labels:
|
||||
type: object
|
||||
description: Labels to apply.
|
||||
env:
|
||||
type: array
|
||||
description: Environment variables to apply.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
external_service:
|
||||
type: boolean
|
||||
description: If set to true, enable external load balancer.
|
||||
cluster_ip:
|
||||
type: string
|
||||
description: IP to use for the service
|
||||
privileged:
|
||||
type: boolean
|
||||
description: If set to true, enable privileged container
|
||||
volumes:
|
||||
type: array
|
||||
description: Volumes to mount.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
mounth_path:
|
||||
type: string
|
||||
description: Path to mount volume
|
||||
# See https://cloud.google.com/container-engine/docs/spec-schema?hl=en for possible volumes. Since we only use gcePersistentDisk and NFS in our examples we have only added these ones.
|
||||
oneOf:
|
||||
gcePersistentDisk:
|
||||
pdName:
|
||||
type: string
|
||||
description: Persistent's disk name
|
||||
fsType:
|
||||
type: string
|
||||
description: Filesystem type of the persistent disk
|
||||
nfs:
|
||||
server:
|
||||
type: string
|
||||
description: The hostname or IP address of the NFS server
|
||||
path:
|
||||
type: string
|
||||
description: The path that is exported by the NFS server
|
||||
readOnly:
|
||||
type: boolean
|
||||
description: Forces the NFS export to be mounted with read-only permissions
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
name: riak
|
||||
description: A distributed NoSQL database.
|
||||
version: 0.2.0
|
||||
keywords:
|
||||
- chart
|
||||
- provides
|
||||
- standalone
|
||||
- riak
|
||||
- node
|
||||
- kubernetes
|
||||
- development
|
||||
- purposes
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/riak
|
||||
home: http://github.com/deis/riak
|
||||
@@ -1,3 +0,0 @@
|
||||
# Riak
|
||||
|
||||
This Chart provides a standalone Riak node in kubernetes.
|
||||
@@ -1,23 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: riak
|
||||
labels:
|
||||
provider: riak
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
provider: riak
|
||||
spec:
|
||||
containers:
|
||||
- name: riak
|
||||
image: deis/riak
|
||||
env:
|
||||
- name: RIAK_MASTER
|
||||
value: "1"
|
||||
ports:
|
||||
- containerPort: 8087
|
||||
- containerPort: 8098
|
||||
@@ -1,15 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: riak
|
||||
labels:
|
||||
provider: riak
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- name: protobuf
|
||||
port: 8087
|
||||
- name: http
|
||||
port: 8098
|
||||
selector:
|
||||
provider: riak
|
||||
@@ -1,24 +0,0 @@
|
||||
name: selenium-hub
|
||||
description: Selenium is a suite of tools to automate web browsers across many platforms.
|
||||
version: 2.47.1
|
||||
keywords:
|
||||
- selenium
|
||||
- browser
|
||||
- automation
|
||||
- tool
|
||||
- used
|
||||
- primarily
|
||||
- testing
|
||||
- web
|
||||
- applications
|
||||
- chart
|
||||
- deploys
|
||||
- selenium
|
||||
- grid
|
||||
- setup
|
||||
- chrome
|
||||
- firefox
|
||||
- workers
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/selenium-hub
|
||||
home: http://www.seleniumhq.org
|
||||
@@ -1,33 +0,0 @@
|
||||
# selenium
|
||||
|
||||
This Chart deploys a scalable [Selnium Grid](http://www.seleniumhq.org) to your Kubernetes cluster using the official Selenium [Docker images](https://github.com/SeleniumHQ/docker-selenium).
|
||||
|
||||
Once deployed, you can hit the UI as follows:
|
||||
```console
|
||||
export NODEPORT=`kubectl get svc --selector='app=selenium-hub' --output=template --template="{{ with index .items 0}}{{with index .spec.ports 0 }}{{.nodePort}}{{end}}{{end}}"`
|
||||
export NODE=`kubectl get nodes --output=template --template="{{with index .items 0 }}{{.metadata.name}}{{end}}"`
|
||||
|
||||
curl http://$NODE:$NODEPORT
|
||||
```
|
||||
|
||||
If your Kubernetes nodes are not reachable from your network:
|
||||
```console
|
||||
export PODNAME=`kubectl get pods --selector="app=selenium-hub" --output=template --template="{{with index .items 0}}{{.metadata.name}}{{end}}"`
|
||||
kubectl port-forward --pod=$PODNAME 4444:4444
|
||||
```
|
||||
Then surf to <http://localhost:4444>.
|
||||
|
||||
If you need to run more tests concurrently, scale the amount of Firefox and Chrome workers:
|
||||
```console
|
||||
kubectl scale rc selenium-node-firefox --replicas=10
|
||||
kubectl scale rc selenium-node-chrome --replicas=10
|
||||
```
|
||||
|
||||
To debug a worker using VNC:
|
||||
```console
|
||||
kubectl port-forward --pod=POD_NAME 5900:5900
|
||||
```
|
||||
|
||||
Then connect to localhost:5900 using your prefered VNC client, the default password is "secret".
|
||||
|
||||
Enjoy!
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: selenium-hub
|
||||
labels:
|
||||
app: selenium-hub
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
app: selenium-hub
|
||||
heritage: helm
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: selenium-hub
|
||||
heritage: helm
|
||||
spec:
|
||||
containers:
|
||||
- name: selenium-hub
|
||||
image: selenium/hub:2.47.1
|
||||
ports:
|
||||
- containerPort: 4444
|
||||
resources:
|
||||
limits:
|
||||
memory: "1000Mi"
|
||||
cpu: ".5"
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /grid/console
|
||||
port: 4444
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /grid/console
|
||||
port: 4444
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 5
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: selenium-hub
|
||||
labels:
|
||||
app: selenium-hub
|
||||
heritage: helm
|
||||
spec:
|
||||
ports:
|
||||
- port: 4444
|
||||
name: port0
|
||||
selector:
|
||||
app: selenium-hub
|
||||
heritage: helm
|
||||
type: NodePort
|
||||
sessionAffinity: None
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: selenium-node-chrome
|
||||
labels:
|
||||
app: selenium-node-chrome
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
app: selenium-node-chrome
|
||||
heritage: helm
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: selenium-node-chrome
|
||||
heritage: helm
|
||||
spec:
|
||||
containers:
|
||||
- name: selenium-node-chrome
|
||||
image: selenium/node-chrome-debug:2.47.1
|
||||
ports:
|
||||
- containerPort: 5900
|
||||
env:
|
||||
- name: HUB_PORT_4444_TCP_ADDR
|
||||
value: "selenium-hub"
|
||||
- name: HUB_PORT_4444_TCP_PORT
|
||||
value: "4444"
|
||||
resources:
|
||||
limits:
|
||||
memory: "1000Mi"
|
||||
cpu: ".5"
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: selenium-node-firefox
|
||||
labels:
|
||||
app: selenium-node-firefox
|
||||
heritage: helm
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
app: selenium-node-firefox
|
||||
heritage: helm
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: selenium-node-firefox
|
||||
heritage: helm
|
||||
spec:
|
||||
containers:
|
||||
- name: selenium-node-firefox
|
||||
image: selenium/node-firefox-debug:2.47.1
|
||||
ports:
|
||||
- containerPort: 5900
|
||||
env:
|
||||
- name: HUB_PORT_4444_TCP_ADDR
|
||||
value: "selenium-hub"
|
||||
- name: HUB_PORT_4444_TCP_PORT
|
||||
value: "4444"
|
||||
resources:
|
||||
limits:
|
||||
memory: "1000Mi"
|
||||
cpu: ".5"
|
||||
@@ -1,14 +0,0 @@
|
||||
name: spark
|
||||
description: spark for kubernetes
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- apache
|
||||
- spark
|
||||
- fast
|
||||
- general-purpose
|
||||
- cluster
|
||||
- computing
|
||||
- system
|
||||
sources:
|
||||
- https://github.com/kubernetes/charts/tree/master/spark
|
||||
home: http://spark.apache.org/
|
||||
@@ -1,5 +0,0 @@
|
||||
# spark
|
||||
|
||||
Apache Spark is a fast and general-purpose cluster computing system.
|
||||
|
||||
Need for zeppelin service and controller: Apache Zeppelin is a new and incubating multi-purposed web-based notebook which brings data ingestion, data exploration, visualization, sharing and collaboration features to Spark. More information can be found at https://zeppelin.incubator.apache.org/
|
||||
@@ -1,27 +0,0 @@
|
||||
kind: ReplicationController
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: spark-master-controller
|
||||
labels:
|
||||
heritage: helm
|
||||
provider: spark
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
component: spark-master
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: spark-master
|
||||
spec:
|
||||
containers:
|
||||
- name: spark-master
|
||||
image: gcr.io/google_containers/spark:1.5.1_v3
|
||||
command: ["/start-master"]
|
||||
ports:
|
||||
- containerPort: 7077
|
||||
- containerPort: 8080
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: spark-master
|
||||
labels:
|
||||
heritage: helm
|
||||
provider: spark
|
||||
spec:
|
||||
ports:
|
||||
- port: 7077
|
||||
targetPort: 7077
|
||||
selector:
|
||||
component: spark-master
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: spark-webui
|
||||
labels:
|
||||
heritage: helm
|
||||
provider: spark
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
targetPort: 8080
|
||||
selector:
|
||||
component: spark-master
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
kind: ReplicationController
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: spark-worker-controller
|
||||
labels:
|
||||
heritage: helm
|
||||
provider: spark
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
component: spark-worker
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: spark-worker
|
||||
spec:
|
||||
containers:
|
||||
- name: spark-worker
|
||||
image: gcr.io/google_containers/spark:1.5.1_v3
|
||||
command: ["/start-worker"]
|
||||
ports:
|
||||
- containerPort: 8081
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
kind: ReplicationController
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zeppelin-controller
|
||||
labels:
|
||||
heritage: helm
|
||||
provider: spark
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
component: zeppelin
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: zeppelin
|
||||
spec:
|
||||
containers:
|
||||
- name: zeppelin
|
||||
image: gcr.io/google_containers/zeppelin:v0.5.5_v2
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user