Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Sign in / Register
Toggle navigation
Menu
Open sidebar
Common Ground
Haven
flux-voorbeeld
Commits
341505ba
Verified
Commit
341505ba
authored
Apr 30, 2020
by
Bart
Browse files
Eerste commit
parents
Changes
12
Hide whitespace changes
Inline
Side-by-side
README.md
0 → 100644
View file @
341505ba
# Een voorbeeld met Flux
Deze repository bevat een voorbeeld om
[
Flux
](
https://fluxcd.io/
)
te gebruiken om Kubernetes deployments te automatiseren. Volg
[
de handleiding in de Haven documentatie
](
https://haven.commonground.nl/docs/ci-cd
)
om dit voorbeeld te gebruiken.
charts/hallo-wereld/.helmignore
0 → 100644
View file @
341505ba
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
charts/hallo-wereld/Chart.yaml
0 → 100644
View file @
341505ba
apiVersion
:
v2
name
:
hallo-wereld
description
:
A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type
:
application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version
:
0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion
:
1.16.0
charts/hallo-wereld/templates/NOTES.txt
0 → 100644
View file @
341505ba
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "hallo-wereld.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "hallo-wereld.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "hallo-wereld.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "hallo-wereld.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}
charts/hallo-wereld/templates/_helpers.tpl
0 → 100644
View file @
341505ba
{{
/*
vim
:
set
filetype
=
mustache
:
*/
}}
{
{
/*
Expand
the
name
of
the
chart
.
*/
}
}
{{- define "hallo-wereld.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Create
a
default
fully
qualified
app
name
.
We
truncate
at
63
chars
because
some
Kubernetes
name
fields
are
limited
to
this
(
by
the
DNS
naming
spec
).
If
release
name
contains
chart
name
it
will
be
used
as
a
full
name
.
*/
}
}
{{- define "hallo-wereld.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{
{
/*
Create
chart
name
and
version
as
used
by
the
chart
label
.
*/
}
}
{{- define "hallo-wereld.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Common
labels
*/
}
}
{{- define "hallo-wereld.labels" -}}
helm.sh/chart: {{ include "hallo-wereld.chart" . }}
{{ include "hallo-wereld.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{
{
/*
Selector
labels
*/
}
}
{{- define "hallo-wereld.selectorLabels" -}}
app.kubernetes.io/name: {{ include "hallo-wereld.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{
{
/*
Create
the
name
of
the
service
account
to
use
*/
}
}
{{- define "hallo-wereld.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "hallo-wereld.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
charts/hallo-wereld/templates/deployment.yaml
0 → 100644
View file @
341505ba
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
{{
include "hallo-wereld.fullname" .
}}
labels
:
{{
- include "hallo-wereld.labels" . | nindent 4
}}
spec
:
replicas
:
{{
.Values.replicaCount
}}
selector
:
matchLabels
:
{{
- include "hallo-wereld.selectorLabels" . | nindent 6
}}
template
:
metadata
:
labels
:
{{
- include "hallo-wereld.selectorLabels" . | nindent 8
}}
spec
:
{{
- with .Values.imagePullSecrets
}}
imagePullSecrets
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
serviceAccountName
:
{{
include "hallo-wereld.serviceAccountName" .
}}
securityContext
:
{{
- toYaml .Values.podSecurityContext | nindent 8
}}
containers
:
-
name
:
{{
.Chart.Name
}}
securityContext
:
{{
- toYaml .Values.securityContext | nindent 12
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
}}"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
ports
:
-
name
:
http
containerPort
:
80
protocol
:
TCP
livenessProbe
:
httpGet
:
path
:
/
port
:
http
readinessProbe
:
httpGet
:
path
:
/
port
:
http
resources
:
{{
- toYaml .Values.resources | nindent 12
}}
{{
- with .Values.nodeSelector
}}
nodeSelector
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.affinity
}}
affinity
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.tolerations
}}
tolerations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
charts/hallo-wereld/templates/ingress.yaml
0 → 100644
View file @
341505ba
{{
- if .Values.ingress.enabled -
}}
{{
- $fullName
:
= include "hallo-wereld.fullname" . -
}}
{{
- $svcPort
:
= .Values.service.port -
}}
{{
- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -
}}
apiVersion
:
networking.k8s.io/v1beta1
{{
- else -
}}
apiVersion
:
extensions/v1beta1
{{
- end
}}
kind
:
Ingress
metadata
:
name
:
{{
$fullName
}}
labels
:
{{
- include "hallo-wereld.labels" . | nindent 4
}}
{{
- with .Values.ingress.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
spec
:
{{
- if .Values.ingress.tls
}}
tls
:
{{
- range .Values.ingress.tls
}}
-
hosts
:
{{
- range .hosts
}}
-
{{
. | quote
}}
{{
- end
}}
secretName
:
{{
.secretName
}}
{{
- end
}}
{{
- end
}}
rules
:
{{
- range .Values.ingress.hosts
}}
-
host
:
{{
.host | quote
}}
http
:
paths
:
{{
- range .paths
}}
-
path
:
{{
.
}}
backend
:
serviceName
:
{{
$fullName
}}
servicePort
:
{{
$svcPort
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
charts/hallo-wereld/templates/service.yaml
0 → 100644
View file @
341505ba
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
{{
include "hallo-wereld.fullname" .
}}
labels
:
{{
- include "hallo-wereld.labels" . | nindent 4
}}
spec
:
type
:
{{
.Values.service.type
}}
ports
:
-
port
:
{{
.Values.service.port
}}
targetPort
:
http
protocol
:
TCP
name
:
http
selector
:
{{
- include "hallo-wereld.selectorLabels" . | nindent 4
}}
charts/hallo-wereld/templates/serviceaccount.yaml
0 → 100644
View file @
341505ba
{{
- if .Values.serviceAccount.create -
}}
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
name
:
{{
include "hallo-wereld.serviceAccountName" .
}}
labels
:
{{
- include "hallo-wereld.labels" . | nindent 4
}}
{{
- with .Values.serviceAccount.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
{{
- end -
}}
charts/hallo-wereld/templates/tests/test-connection.yaml
0 → 100644
View file @
341505ba
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
"
{{
include
"hallo-wereld.fullname" . }}-test-connection"
labels
:
{{
- include "hallo-wereld.labels" . | nindent 4
}}
annotations
:
"
helm.sh/hook"
:
test-success
spec
:
containers
:
-
name
:
wget
image
:
busybox
command
:
[
'
wget'
]
args
:
[
'
{{
include
"hallo-wereld.fullname"
.
}}:{{
.Values.service.port
}}'
]
restartPolicy
:
Never
charts/hallo-wereld/values.yaml
0 → 100644
View file @
341505ba
# Default values for hallo-wereld.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount
:
1
image
:
pullPolicy
:
IfNotPresent
repository
:
registry.gitlab.com/commonground/haven/hallo-wereld
tag
:
"
1.0"
imagePullSecrets
:
[]
nameOverride
:
"
"
fullnameOverride
:
"
"
serviceAccount
:
# Specifies whether a service account should be created
create
:
true
# Annotations to add to the service account
annotations
:
{}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name
:
podSecurityContext
:
{}
# fsGroup: 2000
securityContext
:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service
:
type
:
ClusterIP
port
:
80
ingress
:
enabled
:
false
annotations
:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts
:
-
host
:
chart-example.local
paths
:
[]
tls
:
[]
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources
:
{}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector
:
{}
tolerations
:
[]
affinity
:
{}
releases/hallo-wereld/hallo-wereld.yaml
0 → 100644
View file @
341505ba
---
apiVersion
:
helm.fluxcd.io/v1
kind
:
HelmRelease
metadata
:
name
:
hallo-wereld
namespace
:
default
spec
:
releaseName
:
hallo-wereld
chart
:
git
:
git@gitlab.com:commonground/haven/flux-voorbeeld.git
path
:
charts/hallo-wereld
ref
:
master
values
:
image
:
repository
:
registry.gitlab.com/commonground/haven/hallo-wereld
tag
:
"
1.0"
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment