diff --git a/stable/weave-scope/Chart.yaml b/stable/weave-scope/Chart.yaml new file mode 100644 index 0000000000..727f30f397 --- /dev/null +++ b/stable/weave-scope/Chart.yaml @@ -0,0 +1,15 @@ +name: weave-scope +version: 0.9.1 +appVersion: 1.6.5 +description: A Helm chart for the Weave Scope cluster visualizer. +keywords: + - containers + - dashboard + - monitoring +home: https://www.weave.works/oss/scope/ +sources: + - https://github.com/weaveworks/scope +maintainers: + - name: omkensey + email: github@orion-com.com +icon: https://avatars1.githubusercontent.com/u/9976052?s=64 diff --git a/stable/weave-scope/README.md b/stable/weave-scope/README.md new file mode 100644 index 0000000000..5985f29074 --- /dev/null +++ b/stable/weave-scope/README.md @@ -0,0 +1,71 @@ +# Weave Scope + +## About this chart + +This chart contains two subcharts (*weave-scope-frontend* and *weave-scope-agent*) which deploy the corresponding components of Weave Scope, an interactive container monitoring and visualization application. + +Either subchart can be deployed on its own (set the "enabled" value to "false" for the chart you want to suppress) or the two can be deployed together (the default). + +## Compatibility notes + +* This chart is designed and tested with Weave Scope 1.6.2 and 1.6.5 and Kubernetes 1.7. +* Weave Scope 1.6.2 was originally released by WeaveWorks for Kubernetes 1.6 but seems to work fine on 1.7. +* On Kubernetes 1.6 Weave Scope versions as old as 1.3.0 will probably work. + +## Prerequisites + +* The service account, cluster role, cluster role binding and service specified in the rendered version of this chart must not already exist. + +## Values templated in this chart + +Note that most of this documentation is repeated in `values.yaml`; if you're in a hurry you can skip this part here and read it there. Values with no default noted have no default. + +### Global values + +| Parameter | Description | Default | +|----------:|:------------|:--------| +| **image.*** | the parameters of the image pulls for this release | | +| **image.repository** | the image that will be used for this release (required) | "weaveworks/scope" | +| **image.tag** | the version of Weave Scope desired for this release (required) | "1.6.5" +| **image.pullPolicy** | the imagePullPolicy for the container (required): IfNotPresent, Always, or Never | IfNotPresent +| **service.*** | the configuration of the service used to access the frontend | | +| **service.name** | the short name desired for the frontend service (optional, but if not specified by the user a value will be calculated) -- this is a global so we can access its value easily from the agent subchart | "weave-scope-app" | +| **service.port** | the port exposed by the Scope frontend service (required if weave-scope-frontend is enabled) -- this is a global so we can access its value easily from the agent subchart | 80 | +| **service.type** | the type of the frontend service (required if weave-scope-frontend is enabled): ClusterIP, NodePort or LoadBalancer -- this is a global to keep it with the other values for configuring the frontend service | "ClusterIP" | + + +### Weave Scope frontend values + +The **weave-scope-frontend** section controls how the Scope frontend is installed. + +| Parameter | Description | Default | +|----------:|:------------|:--------| +| **enabled** | controls whether the frontend is deployed | true | +| **resources.*** | controls requests/limits for the frontend (these values are all optional) | | +| **resources.requests.cpu** | CPU request in MHz (m) | | +| **resources.requests.memory** | memory request in MiB (Mi) | | +| **resources.limits.cpu** | CPU limit in MHz (m) | | +| **resources.limits.memory** | memory limit in MiB (Mi) | | + +### Weave Scope agent + +The **agent** section controls how the Weave Scope node agent pods are installed. + +| Parameter | Description | Default | +|----------:|:------------|:--------| +| **enabled** | controls whether the agent is deployed | true | +| **dockerBridge** | the name of the Docker bridge interface | "docker0" | +| **scopeFrontendAddr** | the host:port of a Scope frontend to send data to -- this is only needed in cases where the frontend is deployed separately from the agent (e.g. an install outside the cluster or a pre-existing install inside it) | | +| **probeToken** | the token used to connect to Weave Cloud -- this is not needed for connecting to non-cloud Scope frontends | | +| **rbac.*** | controls RBAC resource creation/use | | +| **rbac.create** | whether RBAC resources should be created (required) -- this **must** be set to false if RBAC is not enabled in the cluster; it *may* be set to false in an RBAC-enabled cluster to allow for external management of RBAC | true | +| **rbac.serviceAccountName** | the service account name that the agent will use (optional, but if not specified by the user a value will be calculated) -- this name **must** be specified and already exist if rbac.create is false; it **must not** already exist if rbac.create is true (it will then be created/managed as part of the release) | "weave-scope" | +| **resources.*** | controls requests/limits for the agent (these values are all optional) | | +| **resources.requests.cpu** | CPU request in MHz (m) | | +| **resources.requests.memory** | memory request in MiB (Mi)| | +| **resources.limits.cpu** | CPU limit in MHz (m) | | +| **resources.limits.memory** | memory limit in MiB (Mi) | | + +## Other notes + +* The Deployment for the frontend specifies a single replica; multiple replicas of the frontend, although they may run, probably will not work as expected since different agents may end up talking to different replicas. diff --git a/stable/weave-scope/charts/weave-scope-agent/Chart.yaml b/stable/weave-scope/charts/weave-scope-agent/Chart.yaml new file mode 100644 index 0000000000..b10df04635 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/Chart.yaml @@ -0,0 +1,15 @@ +description: A Helm chart for the Weave Scope cluster visualizer node agent. +name: weave-scope-agent +version: 0.9.1 +appVersion: 1.6.5 +keywords: + - containers + - dashboard + - monitoring +home: https://www.weave.works/oss/scope/ +sources: + - https://github.com/weaveworks/scope +maintainers: + - name: omkensey + email: github@orion-com.com +icon: https://avatars1.githubusercontent.com/u/9976052?s=64 diff --git a/stable/weave-scope/charts/weave-scope-agent/templates/_helpers.tpl b/stable/weave-scope/charts/weave-scope-agent/templates/_helpers.tpl new file mode 100644 index 0000000000..b298ff3c13 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/templates/_helpers.tpl @@ -0,0 +1,50 @@ +{{/* Helm standard labels */}} +{{- define "weave-scope-agent.helm_std_labels" }} +chart: {{ .Chart.Name }}-{{ .Chart.Version }} +heritage: {{ .Release.Service }} +release: {{ .Release.Name }} +app: {{ template "toplevel.name" . }} +{{- end }} + +{{/* Weave Scope default annotations */}} +{{- define "weave-scope-agent.annotations" }} +cloud.weave.works/launcher-info: |- + { + "server-version": "master-4fe8efe", + "original-request": { + "url": "/k8s/v1.7/scope.yaml" + }, + "email-address": "support@weave.works", + "source-app": "weave-scope", + "weave-cloud-component": "scope" + } +{{- end }} + +{{/* +Expand the name of the chart. +*/}} +{{- define "weave-scope-agent.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Expand the name of the top-level chart. +*/}} +{{- define "toplevel.name" -}} +{{- default (.Template.BasePath | split "/" )._0 .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. We truncate at 63 chars. +*/}} +{{- define "weave-scope-agent.fullname" -}} +{{- printf "%s-%s" .Chart.Name .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a fully qualified name that always uses the name of the top-level chart. +*/}} +{{- define "toplevel.fullname" -}} +{{- $name := default (.Template.BasePath | split "/" )._0 .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-agent/templates/clusterrole.yaml b/stable/weave-scope/charts/weave-scope-agent/templates/clusterrole.yaml new file mode 100644 index 0000000000..3a82bf1437 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/templates/clusterrole.yaml @@ -0,0 +1,24 @@ +{{- if .Values.enabled -}} +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + labels: + {{- include "weave-scope.helm_std_labels" . | indent 4 }} + component: agent + name: {{ .Values.rbac.serviceAccountName | default (include "toplevel.fullname" .) }} + annotations: + {{- include "weave-scope.annotations" . | indent 4 }} +rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' + - nonResourceURLs: + - '*' + verbs: + - '*' +{{- end }} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-agent/templates/clusterrolebinding.yaml b/stable/weave-scope/charts/weave-scope-agent/templates/clusterrolebinding.yaml new file mode 100644 index 0000000000..7552d2f7c5 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/templates/clusterrolebinding.yaml @@ -0,0 +1,21 @@ +{{- if .Values.enabled -}} +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + labels: + {{- include "weave-scope.helm_std_labels" . | indent 4 }} + component: agent + name: {{ include "toplevel.fullname" . }} + annotations: + {{- include "weave-scope.annotations" . | indent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ .Values.rbac.serviceAccountName | default (include "toplevel.fullname" .) }} +subjects: + - kind: ServiceAccount + name: {{ .Values.rbac.serviceAccountName | default (include "toplevel.fullname" .) }} + namespace: {{ .Release.Namespace }} +{{- end }} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-agent/templates/daemonset.yaml b/stable/weave-scope/charts/weave-scope-agent/templates/daemonset.yaml new file mode 100644 index 0000000000..985b22e403 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/templates/daemonset.yaml @@ -0,0 +1,69 @@ +{{- if .Values.enabled -}} +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + labels: + {{- include "weave-scope-agent.helm_std_labels" . | indent 4 }} + component: agent + name: {{ template "weave-scope-agent.fullname" . }} + annotations: + {{- include "weave-scope-agent.annotations" . | indent 4 }} +spec: + selector: + matchLabels: + app: {{ template "toplevel.name" . }} + release: {{ .Release.Name }} + component: agent + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + {{- include "weave-scope-agent.helm_std_labels" . | indent 8 }} + component: agent + spec: + tolerations: + - effect: NoSchedule + operator: Exists + containers: + - name: {{ template "weave-scope-agent.name" . }} + image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.tag }}" + imagePullPolicy: "{{ .Values.global.image.pullPolicy }}" + args: + - '--no-app' + - '--probe.docker.bridge={{ .Values.dockerBridge }}' + - '--probe.docker=true' + - '--probe.kubernetes=true' + {{- if .Values.global.probeToken }} + - '--probe-token={{ .Values.global.probeToken }}' + {{- else if .Values.global.scopeFrontendAddr }} + - {{ .Values.global.scopeFrontendAddr }} + {{- else }} + - {{ .Values.global.service.name | default (include "toplevel.fullname" .) }}.{{ .Release.Namespace }}.svc:{{ .Values.global.service.port }} + {{- end }} + securityContext: + privileged: true + resources: +{{ toYaml .Values.resources | indent 12 }} + volumeMounts: + - name: docker-socket + mountPath: /var/run/docker.sock + - name: scope-plugins + mountPath: /var/run/scope/plugins + - name: sys-kernel-debug + mountPath: /sys/kernel/debug + volumes: + - name: docker-socket + hostPath: + path: /var/run/docker.sock + - name: scope-plugins + hostPath: + path: /var/run/scope/plugins + - name: sys-kernel-debug + hostPath: + path: /sys/kernel/debug + hostPID: true + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + serviceAccountName: {{ .Values.rbac.serviceAccountName | default (include "toplevel.fullname" .) }} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-agent/templates/serviceaccount.yaml b/stable/weave-scope/charts/weave-scope-agent/templates/serviceaccount.yaml new file mode 100644 index 0000000000..9e60966190 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-agent/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.enabled -}} +{{- if .Values.rbac.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + {{- include "weave-scope.helm_std_labels" . | indent 4 }} + component: agent + name: {{ .Values.rbac.serviceAccountName | default (include "toplevel.fullname" .) }} + annotations: + {{- include "weave-scope.annotations" . | indent 4 }} +{{- end }} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-frontend/Chart.yaml b/stable/weave-scope/charts/weave-scope-frontend/Chart.yaml new file mode 100644 index 0000000000..449347c487 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-frontend/Chart.yaml @@ -0,0 +1,15 @@ +description: A Helm chart for the Weave Scope cluster visualizer frontend. +name: weave-scope-frontend +version: 0.9.1 +appVersion: 1.6.5 +keywords: + - containers + - dashboard + - monitoring +home: https://www.weave.works/oss/scope/ +sources: + - https://github.com/weaveworks/scope +maintainers: + - name: omkensey + email: github@orion-com.com +icon: https://avatars1.githubusercontent.com/u/9976052?s=64 diff --git a/stable/weave-scope/charts/weave-scope-frontend/templates/_helpers.tpl b/stable/weave-scope/charts/weave-scope-frontend/templates/_helpers.tpl new file mode 100644 index 0000000000..f6796574b8 --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-frontend/templates/_helpers.tpl @@ -0,0 +1,50 @@ +{{/* Helm standard labels */}} +{{- define "weave-scope-frontend.helm_std_labels" }} +chart: {{ .Chart.Name }}-{{ .Chart.Version }} +heritage: {{ .Release.Service }} +release: {{ .Release.Name }} +app: {{ template "toplevel.name" . }} +{{- end }} + +{{/* Weave Scope default annotations */}} +{{- define "weave-scope-frontend.annotations" }} +cloud.weave.works/launcher-info: |- + { + "server-version": "master-4fe8efe", + "original-request": { + "url": "/k8s/v1.7/scope.yaml" + }, + "email-address": "support@weave.works", + "source-app": "weave-scope", + "weave-cloud-component": "scope" + } +{{- end }} + +{{/* +Expand the name of the chart. +*/}} +{{- define "weave-scope-frontend.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Expand the name of the top-level chart. +*/}} +{{- define "toplevel.name" -}} +{{- default (.Template.BasePath | split "/" )._0 .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. We truncate at 63 chars. +*/}} +{{- define "weave-scope-frontend.fullname" -}} +{{- printf "%s-%s" .Chart.Name .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a fully qualified name that always uses the name of the top-level chart. +*/}} +{{- define "toplevel.fullname" -}} +{{- $name := default (.Template.BasePath | split "/" )._0 .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-frontend/templates/deployment.yaml b/stable/weave-scope/charts/weave-scope-frontend/templates/deployment.yaml new file mode 100644 index 0000000000..6799cac0ba --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-frontend/templates/deployment.yaml @@ -0,0 +1,36 @@ +{{- if .Values.enabled -}} +apiVersion: apps/v1beta1 +kind: Deployment +metadata: + labels: + {{- include "weave-scope-frontend.helm_std_labels" . | indent 4 }} + component: frontend + name: {{ template "weave-scope-frontend.fullname" . }} + annotations: + {{- include "weave-scope.annotations" . | indent 4 }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ template "toplevel.name" . }} + release: {{ .Release.Name }} + component: frontend + template: + metadata: + labels: + {{- include "weave-scope-frontend.helm_std_labels" . | indent 8 }} + component: frontend + spec: + containers: + - name: {{ template "weave-scope-frontend.name" . }} + image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.tag }}" + imagePullPolicy: "{{ .Values.global.image.pullPolicy }}" + args: + - "--no-probe" + ports: + - name: http + containerPort: 4040 + protocol: TCP + resources: +{{ toYaml .Values.resources | indent 12 }} +{{- end -}} diff --git a/stable/weave-scope/charts/weave-scope-frontend/templates/service.yaml b/stable/weave-scope/charts/weave-scope-frontend/templates/service.yaml new file mode 100644 index 0000000000..c6e07c55dc --- /dev/null +++ b/stable/weave-scope/charts/weave-scope-frontend/templates/service.yaml @@ -0,0 +1,22 @@ +{{- if .Values.enabled -}} +apiVersion: v1 +kind: Service +metadata: + labels: + {{- include "weave-scope-frontend.helm_std_labels" . | indent 4 }} + component: frontend + name: {{ .Values.global.service.name | default (include "toplevel.fullname" .) }} + annotations: + {{- include "weave-scope-frontend.annotations" . | indent 4 }} +spec: + ports: + - name: http + port: {{ .Values.global.service.port }} + targetPort: http + protocol: TCP + selector: + app: {{ template "toplevel.name" . }} + release: {{ .Release.Name }} + component: frontend + type: {{ .Values.global.service.type }} +{{- end -}} diff --git a/stable/weave-scope/templates/NOTES.txt b/stable/weave-scope/templates/NOTES.txt new file mode 100644 index 0000000000..8d7a03364f --- /dev/null +++ b/stable/weave-scope/templates/NOTES.txt @@ -0,0 +1,34 @@ +{{- $agent := index .Values "weave-scope-agent" -}} +You should now be able to access the Scope frontend in your web browser, by +{{- if $agent.probeToken }} +logging into https://cloud.weave.works/ with your credentials. +{{- else if $agent.scopeFrontend }} going to http://{{ $agent.scopeFrontend }}. +{{- else if eq .Values.global.service.type "LoadBalancer" }} +going to the URL given by: + +kubectl -n {{ .Release.Namespace }} get svc {{ .Values.global.service.name | default (include "toplevel.fullname" .) }} \ +-o jsonpath='http://{.status.loadBalancer.ingress[0].hostname}:{{ .Values.global.service.port }}/{"\n"}' +{{- else if eq .Values.global.service.type "NodePort" }} +going to the address or hostname of any node in the cluster, using http +and the port given by: + +SCOPE_PORT=$(kubectl -n {{ .Release.Namespace }} get svc {{ .Values.global.service.name | default (include "toplevel.fullname" .) }} \ +-o jsonpath='{.spec.ports[?(@.name==http)].nodePort}'); echo $SCOPE_PORT + +Most likely one or more of the URLs given by this pipeline will work: + +SCOPE_PORT=$(kubectl -n {{ .Release.Namespace }} get svc {{ .Values.global.service.name }} \ +-o jsonpath='{.spec.ports[?(@.name==http)].nodePort}'); \ +kubectl get nodes -o jsonpath='{.items[0].status.addresses[*].address}' | \ +xargs -I{} -d" " echo http://{}:$SCOPE_PORT +{{- else }} +using kubectl port-forward: + +kubectl -n {{ .Release.Namespace }} port-forward $(kubectl -n {{ .Release.Namespace }} get endpoints \ +{{ .Values.global.service.name | default (include "toplevel.fullname" .) }} -o jsonpath='{.subsets[0].addresses[0].targetRef.name}') 8080:4040 + +then browsing to http://localhost:8080/. +{{- end }} +For more details on using Weave Scope, see the Weave Scope documentation: + +https://www.weave.works/docs/scope/latest/introducing/ diff --git a/stable/weave-scope/templates/_helpers.tpl b/stable/weave-scope/templates/_helpers.tpl new file mode 100644 index 0000000000..1e6e9bec40 --- /dev/null +++ b/stable/weave-scope/templates/_helpers.tpl @@ -0,0 +1,50 @@ +{{/* Helm standard labels */}} +{{- define "weave-scope.helm_std_labels" }} +chart: {{ .Chart.Name }}-{{ .Chart.Version }} +heritage: {{ .Release.Service }} +release: {{ .Release.Name }} +app: {{ template "toplevel.name" . }} +{{- end }} + +{{/* Weave Scope default annotations */}} +{{- define "weave-scope.annotations" }} +cloud.weave.works/launcher-info: |- + { + "server-version": "master-4fe8efe", + "original-request": { + "url": "/k8s/v1.7/scope.yaml" + }, + "email-address": "support@weave.works", + "source-app": "weave-scope", + "weave-cloud-component": "scope" + } +{{- end }} + +{{/* +Expand the name of the chart. +*/}} +{{- define "weave-scope.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Expand the name of the top-level chart. +*/}} +{{- define "toplevel.name" -}} +{{- default (.Template.BasePath | split "/" )._0 .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. We truncate at 63 chars. +*/}} +{{- define "weave-scope.fullname" -}} +{{- printf "%s-%s" .Chart.Name .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a fully qualified name that always uses the name of the top-level chart. +*/}} +{{- define "toplevel.fullname" -}} +{{- $name := default (.Template.BasePath | split "/" )._0 .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/stable/weave-scope/templates/test-config.yaml b/stable/weave-scope/templates/test-config.yaml new file mode 100644 index 0000000000..8413133afb --- /dev/null +++ b/stable/weave-scope/templates/test-config.yaml @@ -0,0 +1,18 @@ +{{- $frontend := index .Values "weave-scope-frontend" -}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "weave-scope.fullname" . }}-tests + labels: + {{- include "weave-scope.helm_std_labels" . | indent 4 }} +data: + run.sh: |- +{{ if $frontend.enabled }} + @test "Testing Weave Scope UI is accessible" { + curl --retry 12 --retry-delay 10 http://{{ .Values.global.service.name | default (include "toplevel.fullname" .) }}.{{ .Release.Namespace }}.svc:{{ .Values.global.service.port }} + } +{{- else }} + @test "Null test if the frontend is not installed" { + true + } +{{- end }} diff --git a/stable/weave-scope/templates/weave-scope-tests.yaml b/stable/weave-scope/templates/weave-scope-tests.yaml new file mode 100644 index 0000000000..f094fc973b --- /dev/null +++ b/stable/weave-scope/templates/weave-scope-tests.yaml @@ -0,0 +1,39 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ .Release.Name }}-ui-test-{{ randAlphaNum 5 | lower }}" + annotations: + "helm.sh/hook": test-success + labels: + {{- include "weave-scope.helm_std_labels" . | indent 4 }} +spec: + initContainers: + - name: "test-framework" + image: "dduportal/bats:0.4.0" + command: + - "bash" + - "-c" + - | + set -ex + # copy bats to tools dir + cp -R /usr/local/libexec/ /tools/bats/ + volumeMounts: + - mountPath: /tools + name: tools + containers: + - name: {{ .Release.Name }}-ui-test + image: dduportal/bats:0.4.0 + command: ["/tools/bats/bats", "-t", "/tests/run.sh"] + volumeMounts: + - mountPath: /tests + name: tests + readOnly: true + - mountPath: /tools + name: tools + volumes: + - name: tests + configMap: + name: {{ template "weave-scope.fullname" . }}-tests + - name: tools + emptyDir: {} + restartPolicy: Never diff --git a/stable/weave-scope/values.yaml b/stable/weave-scope/values.yaml new file mode 100644 index 0000000000..92835e07e0 --- /dev/null +++ b/stable/weave-scope/values.yaml @@ -0,0 +1,74 @@ +# Where defaults exist, the values are set to them here. +# Values with no preferred or common defaults are set to empty strings. +global: + # global.image: the image that will be used for this release + image: + repository: weaveworks/scope + tag: "1.6.5" + # global.image.pullPolicy: must be Always, IfNotPresent, or Never + pullPolicy: "IfNotPresent" + # global.service.*: the configuration of the service used to access the frontend + service: + # global.service.name: the short name desired for the frontend service + # global.service.name may be specified if you need to use a specific service name, but will be generated if not specified + # global.service.name is a global so we can access its value easily from the agent subchart + # name: "weave-scope-app" + # global.service.port: (required if frontend.enabled == true) the port exposed by the Scope frontend service + # global.service.port is a global so we can access its value easily from the agent subchart + port: 80 + # global.service.type: (required if frontend.enabled == true) the type of the frontend service -- must be ClusterIP, NodePort or LoadBalancer + # global.service.type is a global to keep it with the other values for configuring the frontend service + type: "ClusterIP" + +# weave-scope-frontend.* controls how the Scope frontend is installed +weave-scope-frontend: + enabled: true + # weave-scope-frontend.resources.*: controls requests/limits for the frontend + # weave-scope-frontend.resources.* values are all optional but should not be set to empty values + # resources: + # requests: + # weave-scope-frontend.resources.requests.cpu: CPU req. in MHz (m) + # cpu: "" + # weave-scope-frontend.resources.requests.memory: memory req. in MiB (Mi) + # memory: "" + # limits: + # weave-scope-frontend.resources.limits.cpu: CPU limit in MHz (m) + # cpu: "" + # weave-scope-frontend.resources.limits.memory: memory limit in MiB (Mi) + # memory: "" + +# weave-scope-agent.* controls how the Weave Scope node agent pods are installed +weave-scope-agent: + enabled: true + # weave-scope-agent.dockerBridge: (required if agent.enabled == true) the name of the Docker bridge interface + dockerBridge: "docker0" + # weave-scope-agent.scopeFrontendAddr: the host:port of a Scope frontend to send data to + # weave-scope-agent.scopeFrontendAddr is only needed for some cases where the frontend is deployed separately from the agent + scopeFrontendAddr: "" + # weave-scope-agent.probeToken: the token used to connect to Weave Cloud + # weave-scope-agent.probeToken is not needed for connecting to non-cloud Scope frontends + probeToken: "" + # weave-scope-agent.rbac.*: controls RBAC resource creation/use + rbac: + # weave-scope-agent.rbac.create: whether RBAC resources should be created + # weave-scope-agent.rbac.create *must* be set to false if RBAC is not enabled in the cluster + # weave-scope-agent.rbac.create *may* be set to false in an RBAC-enabled cluster to allow for external management of RBAC + create: true + # weave-scope-agent.rbac.serviceAccountName: the service account name that the agent will use + # weave-scope-agent.rbac.serviceAccountName may be specified if you need to use a specific service account name, but will be generated if not specified and rbac.create is true + # weave-scope-agent.rbac.serviceAccountName *must* be specified and already exist if rbac.create is false + # weave-scope-agent.rbac.serviceAccountName *must not* already exist if rbac.create is true (it will then be created/managed as part of the release) + # serviceAccountName: "weave-scope" + # weave-scope-agent.resources.*: controls requests/limits for the agent + # weave-scope-agent.resources.* values are all optional but should not be set to empty values + # resources: + # requests: + # weave-scope-agent.resources.requests.cpu: CPU req. in MHz (m) + # cpu: "" + # weave-scope-agent.resources.requests.memory: memory req. in MiB (Mi) + # memory: "" + # limits: + # weave-scope-agent.resources.limits.cpu: CPU limit in MHz (m) + # cpu: "" + # weave-scope-agent.resources.limits.memory: memory limit in MiB (Mi) + # memory: ""