Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
devops-intern-labs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Nam
devops-intern-labs
Commits
8e49d2d2
Commit
8e49d2d2
authored
Jan 18, 2024
by
Vũ Hoàng Nam
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add web-app chart
parent
2f22f200
Changes
28
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
147 additions
and
811 deletions
+147
-811
.helmignore
Week8/firstchart/.helmignore
+0
-23
Chart.yaml
Week8/firstchart/Chart.yaml
+0
-24
NOTES.txt
Week8/firstchart/templates/NOTES.txt
+0
-22
_helpers.tpl
Week8/firstchart/templates/_helpers.tpl
+0
-62
deployment.yaml
Week8/firstchart/templates/deployment.yaml
+0
-72
hpa.yaml
Week8/firstchart/templates/hpa.yaml
+0
-32
ingress.yaml
Week8/firstchart/templates/ingress.yaml
+0
-61
serviceaccount.yaml
Week8/firstchart/templates/serviceaccount.yaml
+0
-13
test-connection.yaml
Week8/firstchart/templates/tests/test-connection.yaml
+0
-15
values.yaml
Week8/firstchart/values.yaml
+0
-98
_helpers.tpl
Week8/web-app-minio/charts/minio/templates/_helpers.tpl
+1
-2
minio-cm.yml
Week8/web-app-minio/charts/minio/templates/minio-cm.yml
+10
-0
minio-dev.yml
Week8/web-app-minio/charts/minio/templates/minio-dev.yml
+24
-22
minio-ns.yml
Week8/web-app-minio/charts/minio/templates/minio-ns.yml
+3
-1
minio-svc.yml
Week8/web-app-minio/charts/minio/templates/minio-svc.yml
+2
-2
values.yaml
Week8/web-app-minio/charts/minio/values.yaml
+15
-6
NOTES.txt
Week8/web-app-minio/templates/NOTES.txt
+1
-22
_helpers.tpl
Week8/web-app-minio/templates/_helpers.tpl
+9
-38
app-config.yml
Week8/web-app-minio/templates/app-config.yml
+9
-0
app-deployment.yml
Week8/web-app-minio/templates/app-deployment.yml
+36
-0
app-service.yml
Week8/web-app-minio/templates/app-service.yml
+12
-0
deployment.yaml
Week8/web-app-minio/templates/deployment.yaml
+0
-72
hpa.yaml
Week8/web-app-minio/templates/hpa.yaml
+0
-32
ingress.yaml
Week8/web-app-minio/templates/ingress.yaml
+0
-61
service.yaml
Week8/web-app-minio/templates/service.yaml
+0
-15
serviceaccount.yaml
Week8/web-app-minio/templates/serviceaccount.yaml
+0
-13
test-connection.yaml
Week8/web-app-minio/templates/tests/test-connection.yaml
+0
-15
values.yaml
Week8/web-app-minio/values.yaml
+25
-88
No files found.
Week8/firstchart/.helmignore
deleted
100644 → 0
View file @
2f22f200
# 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/
Week8/firstchart/Chart.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
v2
name
:
firstchart
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.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
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. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion
:
"
1.16.0"
Week8/firstchart/templates/NOTES.txt
deleted
100644 → 0
View file @
2f22f200
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 }}{{ .path }}
{{- 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 "firstchart.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 "firstchart.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "firstchart.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 "firstchart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
Week8/firstchart/templates/_helpers.tpl
deleted
100644 → 0
View file @
2f22f200
{{
/*
Expand
the
name
of
the
chart
.
*/
}}
{{- define "firstchart.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 "firstchart.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 "firstchart.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{
{
/*
Common
labels
*/
}
}
{{- define "firstchart.labels" -}}
helm.sh/chart: {{ include "firstchart.chart" . }}
{{ include "firstchart.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{
{
/*
Selector
labels
*/
}
}
{{- define "firstchart.selectorLabels" -}}
app.kubernetes.io/name: {{ include "firstchart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{
{
/*
Create
the
name
of
the
service
account
to
use
*/
}
}
{{- define "firstchart.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "firstchart.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
Week8/firstchart/templates/deployment.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
{{
include "firstchart.fullname" .
}}
labels
:
{{
- include "firstchart.labels" . | nindent 4
}}
spec
:
{{
- if not .Values.autoscaling.enabled
}}
replicas
:
{{
.Values.replicaCount
}}
{{
- end
}}
selector
:
matchLabels
:
{{
- include "firstchart.selectorLabels" . | nindent 6
}}
template
:
metadata
:
{{
- with .Values.podAnnotations
}}
annotations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
labels
:
{{
- include "firstchart.labels" . | nindent 8
}}
{{
- with .Values.podLabels
}}
{{
- toYaml . | nindent 8
}}
{{
- end
}}
spec
:
{{
- with .Values.imagePullSecrets
}}
imagePullSecrets
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
serviceAccountName
:
{{
include "firstchart.serviceAccountName" .
}}
securityContext
:
{{
- toYaml .Values.podSecurityContext | nindent 8
}}
containers
:
-
name
:
{{
.Chart.Name
}}
securityContext
:
{{
- toYaml .Values.securityContext | nindent 12
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
|
default
.Chart.AppVersion
}}"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
ports
:
-
name
:
http
containerPort
:
{{
.Values.service.port
}}
protocol
:
TCP
livenessProbe
:
httpGet
:
path
:
/
port
:
http
readinessProbe
:
httpGet
:
path
:
/
port
:
http
resources
:
{{
- toYaml .Values.resources | nindent 12
}}
{{
- with .Values.volumeMounts
}}
volumeMounts
:
{{
- toYaml . | nindent 12
}}
{{
- end
}}
{{
- with .Values.volumes
}}
volumes
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.nodeSelector
}}
nodeSelector
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.affinity
}}
affinity
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.tolerations
}}
tolerations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
Week8/firstchart/templates/hpa.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.autoscaling.enabled
}}
apiVersion
:
autoscaling/v2
kind
:
HorizontalPodAutoscaler
metadata
:
name
:
{{
include "firstchart.fullname" .
}}
labels
:
{{
- include "firstchart.labels" . | nindent 4
}}
spec
:
scaleTargetRef
:
apiVersion
:
apps/v1
kind
:
Deployment
name
:
{{
include "firstchart.fullname" .
}}
minReplicas
:
{{
.Values.autoscaling.minReplicas
}}
maxReplicas
:
{{
.Values.autoscaling.maxReplicas
}}
metrics
:
{{
- if .Values.autoscaling.targetCPUUtilizationPercentage
}}
-
type
:
Resource
resource
:
name
:
cpu
target
:
type
:
Utilization
averageUtilization
:
{{
.Values.autoscaling.targetCPUUtilizationPercentage
}}
{{
- end
}}
{{
- if .Values.autoscaling.targetMemoryUtilizationPercentage
}}
-
type
:
Resource
resource
:
name
:
memory
target
:
type
:
Utilization
averageUtilization
:
{{
.Values.autoscaling.targetMemoryUtilizationPercentage
}}
{{
- end
}}
{{
- end
}}
Week8/firstchart/templates/ingress.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.ingress.enabled -
}}
{{
- $fullName
:
= include "firstchart.fullname" . -
}}
{{
- $svcPort
:
= .Values.service.port -
}}
{{
- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion))
}}
{{
- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class")
}}
{{
- $_
:
= set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className
}}
{{
- end
}}
{{
- end
}}
{{
- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -
}}
apiVersion
:
networking.k8s.io/v1
{{
- else 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 "firstchart.labels" . | nindent 4
}}
{{
- with .Values.ingress.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
spec
:
{{
- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)
}}
ingressClassName
:
{{
.Values.ingress.className
}}
{{
- end
}}
{{
- 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
:
{{
.path
}}
{{
- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion)
}}
pathType
:
{{
.pathType
}}
{{
- end
}}
backend
:
{{
- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion
}}
service
:
name
:
{{
$fullName
}}
port
:
number
:
{{
$svcPort
}}
{{
- else
}}
serviceName
:
{{
$fullName
}}
servicePort
:
{{
$svcPort
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
Week8/firstchart/templates/serviceaccount.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.serviceAccount.create -
}}
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
name
:
{{
include "firstchart.serviceAccountName" .
}}
labels
:
{{
- include "firstchart.labels" . | nindent 4
}}
{{
- with .Values.serviceAccount.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
automountServiceAccountToken
:
{{
.Values.serviceAccount.automount
}}
{{
- end
}}
Week8/firstchart/templates/tests/test-connection.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
"
{{
include
"firstchart.fullname" . }}-test-connection"
labels
:
{{
- include "firstchart.labels" . | nindent 4
}}
annotations
:
"
helm.sh/hook"
:
test
spec
:
containers
:
-
name
:
wget
image
:
busybox
command
:
[
'
wget'
]
args
:
[
'
{{
include
"firstchart.fullname"
.
}}:{{
.Values.service.port
}}'
]
restartPolicy
:
Never
Week8/firstchart/values.yaml
deleted
100644 → 0
View file @
2f22f200
# Default values for firstchart.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount
:
1
image
:
repository
:
nginx
pullPolicy
:
IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag
:
"
"
imagePullSecrets
:
[]
nameOverride
:
"
"
fullnameOverride
:
"
"
serviceAccount
:
# Specifies whether a service account should be created
create
:
true
# Automatically mount a ServiceAccount's API credentials?
automount
:
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
:
"
"
podAnnotations
:
{}
podLabels
:
{}
podSecurityContext
:
{}
# fsGroup: 2000
securityContext
:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service
:
type
:
ClusterIP
port
:
80
ingress
:
enabled
:
false
className
:
"
"
annotations
:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts
:
-
host
:
chart-example.local
paths
:
-
path
:
/
pathType
:
ImplementationSpecific
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
autoscaling
:
enabled
:
false
minReplicas
:
1
maxReplicas
:
100
targetCPUUtilizationPercentage
:
80
# targetMemoryUtilizationPercentage: 80
# Additional volumes on the output Deployment definition.
volumes
:
[]
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts
:
[]
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector
:
{}
tolerations
:
[]
affinity
:
{}
Week8/web-app-minio/charts/minio/templates/_helpers.tpl
View file @
8e49d2d2
{{
/*
{{
/*
Expand
the
name
of
the
chart
.
Expand
the
name
of
the
chart
.
*/
}}
*/
}}
{{- define "minio.name" -}}
{{- define "minio.name" -}}
{{- default .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- default .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
...
@@ -10,7 +9,7 @@ Expand the name of the chart.
...
@@ -10,7 +9,7 @@ Expand the name of the chart.
Create
chart
name
and
version
as
used
by
the
chart
label
.
Create
chart
name
and
version
as
used
by
the
chart
label
.
*/
}
}
*/
}
}
{{- define "minio.chart" -}}
{{- define "minio.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-"
-
}}
{{- end }}
{{- end }}
{
{
/*
{
{
/*
...
...
Week8/web-app-minio/charts/minio/templates/minio-cm.yml
0 → 100644
View file @
8e49d2d2
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
"
{{
include
"minio.name" . }}-cm"
namespace
:
{{
.Values.namespace
}}
labels
:
{{
- include "minio.labels" . | nindent 4
}}
data
:
MINIO_ROOT_USER
:
{{
.Values.config.MINIO_ROOT_USER
}}
MINIO_ROOT_PASSWORD
:
{{
.Values.config.MINIO_ROOT_PASSWORD
}}
Week8/web-app-minio/charts/minio/templates/minio-dev.yml
View file @
8e49d2d2
...
@@ -14,29 +14,31 @@ metadata:
...
@@ -14,29 +14,31 @@ metadata:
{{
- include "minio.labels" . | nindent 4
}}
{{
- include "minio.labels" . | nindent 4
}}
spec
:
spec
:
containers
:
containers
:
-
name
:
{{
.Chart.Name
}}
-
name
:
{{
.Chart.Name
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
|
default
.Chart.AppVersion
}}"
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
|
default
.Chart.AppVersion
}}"
pullPolicy
:
{{
.Values.pullPolicy
}}
pullPolicy
:
{{
.Values.image.pullPolicy
}}
resources
:
resources
:
limits
:
limits
:
memory
:
{{
.Values.limits.memory
}}
memory
:
{{
.Values.limits.memory
}}
cpu
:
{{
.Values.limits.cpu
}}
cpu
:
{{
.Values.limits.cpu
}}
envFrom
:
{{
- with .Values.command
}}
-
configMapRef
:
command
:
name
:
"
{{
include
"minio.name" . }}-cm"
{{
- toYaml . | nindent 6 -
}}
{{
- end -
}}
{{
- with .Values.args
}}
{{
- with .Values.command
}}
args
:
command
:
{{
- toYaml . | nindent 6
-
}}
{{
- toYaml . | nindent 8
-
}}
{{
- end -
}}
{{
- end -
}}
{{
- with .Values.volumeMounts
}}
{{
- with .Values.args
}}
volumeMounts
:
args
:
{{
- toYaml . | nindent 6 -
}}
{{
- toYaml . | nindent 8 -
}}
{{
- end -
}}
{{
- end -
}}
{{
- with .Values.volumes
}}
{{
- with .Values.volumeMounts
}}
volumeMounts
:
{{
- toYaml . | nindent 8 -
}}
{{
- end -
}}
{{
- with .Values.volumes
}}
volumes
:
volumes
:
{{
- toYaml . | nindent
4
-
}}
{{
- toYaml . | nindent
6
-
}}
{{
- end -
}}
{{
- end -
}}
\ No newline at end of file
Week8/web-app-minio/charts/minio/templates/minio-n
amespace
.yml
→
Week8/web-app-minio/charts/minio/templates/minio-n
s
.yml
View file @
8e49d2d2
# Deploys a new Namespace for the MinIO Pod
# Deploys a new Namespace for the MinIO Pod
{{
- if ne .Values.namespace "default" -
}}
apiVersion
:
v1
apiVersion
:
v1
kind
:
Namespace
kind
:
Namespace
metadata
:
metadata
:
name
:
{{
.Values.namespace
}}
name
:
{{
.Values.namespace
}}
labels
:
labels
:
{{
- include "minio.labels" . | nindent 4 -
}}
{{
- include "minio.labels" . | nindent 4 -
}}
\ No newline at end of file
{{
- end -
}}
\ No newline at end of file
Week8/web-app-minio/charts/minio/templates/minio-s
ervice
.yml
→
Week8/web-app-minio/charts/minio/templates/minio-s
vc
.yml
View file @
8e49d2d2
...
@@ -6,8 +6,8 @@ metadata:
...
@@ -6,8 +6,8 @@ metadata:
spec
:
spec
:
type
:
{{
.Values.service.type
}}
type
:
{{
.Values.service.type
}}
ports
:
ports
:
-
port
:
{{
.Values.service.port
}}
-
name
:
cluster
nodePort
:
{{
.Values.service.nodeP
ort
}}
port
:
{{
.Values.service.p
ort
}}
targetPort
:
{{
.Values.service.targetPort
}}
targetPort
:
{{
.Values.service.targetPort
}}
selector
:
selector
:
{{
- include "minio.selectorLabels" . | nindent 4 -
}}
{{
- include "minio.selectorLabels" . | nindent 4 -
}}
Week8/web-app-minio/charts/minio/values.yaml
View file @
8e49d2d2
# Default values for minio.
# Default values for minio.
# This is a YAML-formatted file.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
# Declare variables to be passed into your templates.
namespace
:
minio-dev
namespace
:
default
# Deloyment
# Deloyment
image
:
image
:
...
@@ -31,10 +31,14 @@ volumes:
...
@@ -31,10 +31,14 @@ volumes:
# Service
# Service
service
:
service
:
type
:
NodePort
type
:
ClusterIP
port
:
9090
port
:
9000
nodePort
:
30001
targetPort
:
9000
targetPort
:
9090
minioport
:
port
:
9000
nodePort
:
30021
targetPort
:
9000
# Persistent Volume Claim
# Persistent Volume Claim
persistenceClaim
:
persistenceClaim
:
...
@@ -51,4 +55,9 @@ persistence:
...
@@ -51,4 +55,9 @@ persistence:
persistentVolumeReclaimPolicy
:
Recycle
persistentVolumeReclaimPolicy
:
Recycle
nfs
:
# NFS server detail
nfs
:
# NFS server detail
path
:
/var/nfs/k8s
path
:
/var/nfs/k8s
server
:
192.168.67.9
server
:
192.168.67.9
\ No newline at end of file
# Config Map
config
:
MINIO_ROOT_USER
:
user
MINIO_ROOT_PASSWORD
:
password
\ No newline at end of file
Week8/web-app-minio/templates/NOTES.txt
View file @
8e49d2d2
1. Get the application URL by running these commands:
Deploy Web-app successful.
{{- if .Values.ingress.enabled }}
\ No newline at end of file
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- 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 "web-app-minio.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 "web-app-minio.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "web-app-minio.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 "web-app-minio.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
Week8/web-app-minio/templates/_helpers.tpl
View file @
8e49d2d2
...
@@ -2,32 +2,22 @@
...
@@ -2,32 +2,22 @@
Expand
the
name
of
the
chart
.
Expand
the
name
of
the
chart
.
*/
}}
*/
}}
{{- define "web-app-minio.name" -}}
{{- define "web-app-minio.name" -}}
{{- default .Chart.Name
.Values.nameOverride | trunc 63 | trimSuffix "-"
}}
{{- default .Chart.Name
| trunc 63 | trimSuffix "-" -
}}
{{- end }}
{{- end
-
}}
{
{
/*
{
{
/*
Create
a
default
fully
qualified
app
name
.
Create
chart
name
and
version
as
used
by
the
chart
label
.
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 "web-app-minio.fullname" -}}
{{- define "web-app-minio.chart" -}}
{{- if .Values.fullnameOverride }}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- .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 }}
{{- end }}
{
{
/*
{
{
/*
Create
chart
name
and
version
as
used
by
the
chart
label
.
Selector
labels
*/
}
}
*/
}
}
{{- define "web-app-minio.chart" -}}
{{- define "web-app-minio.selectorLabels" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
app.kubernetes.io/name: {{ include "web-app-minio.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{- end }}
{
{
/*
{
{
/*
...
@@ -41,22 +31,3 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
...
@@ -41,22 +31,3 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{- end }}
{
{
/*
Selector
labels
*/
}
}
{{- define "web-app-minio.selectorLabels" -}}
app.kubernetes.io/name: {{ include "web-app-minio.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{
{
/*
Create
the
name
of
the
service
account
to
use
*/
}
}
{{- define "web-app-minio.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "web-app-minio.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
Week8/web-app-minio/templates/app-config.yml
0 → 100644
View file @
8e49d2d2
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
"
{{
include
"web-app-minio.name" . }}-cm"
data
:
MINIO_ACCESS_KEY_ID
:
{{
.Values.configMap.MINIO_ACCESS_KEY_ID
}}
MINIO_SECRET_ACCESS_KEY
:
{{
.Values.configMap.MINIO_SECRET_ACCESS_KEY
}}
MINIO_STORAGE_BUCKET_NAME
:
{{
.Values.configMap.MINIO_STORAGE_BUCKET_NAME
}}
MINIO_API
:
"
http://minio.{{
.Values.namespace
}}.svc.cluster.local:9000"
\ No newline at end of file
Week8/web-app-minio/templates/app-deployment.yml
0 → 100644
View file @
8e49d2d2
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
{{
include "web-app-minio.name" .
}}
spec
:
replicas
:
{{
.Values.replicas
}}
selector
:
matchLabels
:
{{
- include "web-app-minio.selectorLabels" . | nindent 6
}}
revisionHistoryLimit
:
5
progressDeadlineSeconds
:
300
minReadySeconds
:
10
strategy
:
type
:
RollingUpdate
rollingUpdate
:
maxUnavailable
:
1
maxSurge
:
1
template
:
metadata
:
labels
:
{{
- include "web-app-minio.labels" . | nindent 8
}}
spec
:
containers
:
-
name
:
{{
.Chart.Name
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag}}"
pullPolicy
:
IfNotPresent
envFrom
:
-
configMapRef
:
name
:
"
{{
include
"web-app-minio.name" . }}-cm"
ports
:
-
containerPort
:
{{
.Values.containerPort
}}
resources
:
limits
:
memory
:
{{
.Values.limits.memory
}}
cpu
:
{{
.Values.limits.cpu
}}
Week8/
firstchart/templates/service.ya
ml
→
Week8/
web-app-minio/templates/app-service.y
ml
View file @
8e49d2d2
apiVersion
:
v1
apiVersion
:
v1
kind
:
Service
kind
:
Service
metadata
:
metadata
:
name
:
{{
include "firstchart.fullname" .
}}
name
:
"
{{
include
"web-app-minio.name" . }}-svc"
labels
:
{{
- include "firstchart.labels" . | nindent 4
}}
spec
:
spec
:
type
:
{{
.Values.service.type
}}
type
:
{{
.Values.service.type
}}
ports
:
ports
:
-
port
:
{{
.Values.service.port
}}
-
port
:
{{
.Values.service.port
}}
targetPort
:
http
protocol
:
{{
.Values.service.protocol
}}
protocol
:
TCP
name
:
http
selector
:
selector
:
{{
- include "firstchart.selectorLabels" . | nindent 4
}}
{{
- include "web-app-minio.selectorLabels" . | nindent 4
}}
Week8/web-app-minio/templates/deployment.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
{{
include "web-app-minio.fullname" .
}}
labels
:
{{
- include "web-app-minio.labels" . | nindent 4
}}
spec
:
{{
- if not .Values.autoscaling.enabled
}}
replicas
:
{{
.Values.replicaCount
}}
{{
- end
}}
selector
:
matchLabels
:
{{
- include "web-app-minio.selectorLabels" . | nindent 6
}}
template
:
metadata
:
{{
- with .Values.podAnnotations
}}
annotations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
labels
:
{{
- include "web-app-minio.labels" . | nindent 8
}}
{{
- with .Values.podLabels
}}
{{
- toYaml . | nindent 8
}}
{{
- end
}}
spec
:
{{
- with .Values.imagePullSecrets
}}
imagePullSecrets
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
serviceAccountName
:
{{
include "web-app-minio.serviceAccountName" .
}}
securityContext
:
{{
- toYaml .Values.podSecurityContext | nindent 8
}}
containers
:
-
name
:
{{
.Chart.Name
}}
securityContext
:
{{
- toYaml .Values.securityContext | nindent 12
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
|
default
.Chart.AppVersion
}}"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
ports
:
-
name
:
http
containerPort
:
{{
.Values.service.port
}}
protocol
:
TCP
livenessProbe
:
httpGet
:
path
:
/
port
:
http
readinessProbe
:
httpGet
:
path
:
/
port
:
http
resources
:
{{
- toYaml .Values.resources | nindent 12
}}
{{
- with .Values.volumeMounts
}}
volumeMounts
:
{{
- toYaml . | nindent 12
}}
{{
- end
}}
{{
- with .Values.volumes
}}
volumes
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.nodeSelector
}}
nodeSelector
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.affinity
}}
affinity
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.tolerations
}}
tolerations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
Week8/web-app-minio/templates/hpa.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.autoscaling.enabled
}}
apiVersion
:
autoscaling/v2
kind
:
HorizontalPodAutoscaler
metadata
:
name
:
{{
include "web-app-minio.fullname" .
}}
labels
:
{{
- include "web-app-minio.labels" . | nindent 4
}}
spec
:
scaleTargetRef
:
apiVersion
:
apps/v1
kind
:
Deployment
name
:
{{
include "web-app-minio.fullname" .
}}
minReplicas
:
{{
.Values.autoscaling.minReplicas
}}
maxReplicas
:
{{
.Values.autoscaling.maxReplicas
}}
metrics
:
{{
- if .Values.autoscaling.targetCPUUtilizationPercentage
}}
-
type
:
Resource
resource
:
name
:
cpu
target
:
type
:
Utilization
averageUtilization
:
{{
.Values.autoscaling.targetCPUUtilizationPercentage
}}
{{
- end
}}
{{
- if .Values.autoscaling.targetMemoryUtilizationPercentage
}}
-
type
:
Resource
resource
:
name
:
memory
target
:
type
:
Utilization
averageUtilization
:
{{
.Values.autoscaling.targetMemoryUtilizationPercentage
}}
{{
- end
}}
{{
- end
}}
Week8/web-app-minio/templates/ingress.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.ingress.enabled -
}}
{{
- $fullName
:
= include "web-app-minio.fullname" . -
}}
{{
- $svcPort
:
= .Values.service.port -
}}
{{
- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion))
}}
{{
- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class")
}}
{{
- $_
:
= set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className
}}
{{
- end
}}
{{
- end
}}
{{
- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -
}}
apiVersion
:
networking.k8s.io/v1
{{
- else 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 "web-app-minio.labels" . | nindent 4
}}
{{
- with .Values.ingress.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
spec
:
{{
- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)
}}
ingressClassName
:
{{
.Values.ingress.className
}}
{{
- end
}}
{{
- 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
:
{{
.path
}}
{{
- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion)
}}
pathType
:
{{
.pathType
}}
{{
- end
}}
backend
:
{{
- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion
}}
service
:
name
:
{{
$fullName
}}
port
:
number
:
{{
$svcPort
}}
{{
- else
}}
serviceName
:
{{
$fullName
}}
servicePort
:
{{
$svcPort
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
Week8/web-app-minio/templates/service.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
{{
include "web-app-minio.fullname" .
}}
labels
:
{{
- include "web-app-minio.labels" . | nindent 4
}}
spec
:
type
:
{{
.Values.service.type
}}
ports
:
-
port
:
{{
.Values.service.port
}}
targetPort
:
http
protocol
:
TCP
name
:
http
selector
:
{{
- include "web-app-minio.selectorLabels" . | nindent 4
}}
Week8/web-app-minio/templates/serviceaccount.yaml
deleted
100644 → 0
View file @
2f22f200
{{
- if .Values.serviceAccount.create -
}}
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
name
:
{{
include "web-app-minio.serviceAccountName" .
}}
labels
:
{{
- include "web-app-minio.labels" . | nindent 4
}}
{{
- with .Values.serviceAccount.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
automountServiceAccountToken
:
{{
.Values.serviceAccount.automount
}}
{{
- end
}}
Week8/web-app-minio/templates/tests/test-connection.yaml
deleted
100644 → 0
View file @
2f22f200
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
"
{{
include
"web-app-minio.fullname" . }}-test-connection"
labels
:
{{
- include "web-app-minio.labels" . | nindent 4
}}
annotations
:
"
helm.sh/hook"
:
test
spec
:
containers
:
-
name
:
wget
image
:
busybox
command
:
[
'
wget'
]
args
:
[
'
{{
include
"web-app-minio.fullname"
.
}}:{{
.Values.service.port
}}'
]
restartPolicy
:
Never
Week8/web-app-minio/values.yaml
View file @
8e49d2d2
...
@@ -2,97 +2,34 @@
...
@@ -2,97 +2,34 @@
# This is a YAML-formatted file.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
# Declare variables to be passed into your templates.
replicaCount
:
1
image
:
namespace
:
default
repository
:
nginx
pullPolicy
:
IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag
:
"
"
imagePullSecrets
:
[]
nameOverride
:
"
"
fullnameOverride
:
"
"
serviceAccount
:
# Specifies whether a service account should be created
create
:
true
# Automatically mount a ServiceAccount's API credentials?
automount
:
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
:
"
"
podAnnotations
:
{}
podLabels
:
{}
podSecurityContext
:
{}
# fsGroup: 2000
securityContext
:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# Deployment
replicas
:
1
image
:
repository
:
garovu/django-minio
tag
:
latest
limits
:
memory
:
"
1024Mi"
cpu
:
"
1000m"
containerPort
:
8000
# ConfigMap
configMap
:
MINIO_ACCESS_KEY_ID
:
user
MINIO_SECRET_ACCESS_KEY
:
password
MINIO_STORAGE_BUCKET_NAME
:
static
# MINIO_API: "http://172.17.0.1:9000"
# Service
service
:
service
:
type
:
ClusterIP
type
:
ClusterIP
port
:
80
port
:
8000
protocol
:
TCP
ingress
:
enabled
:
false
className
:
"
"
annotations
:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts
:
-
host
:
chart-example.local
paths
:
-
path
:
/
pathType
:
ImplementationSpecific
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
autoscaling
:
enabled
:
false
minReplicas
:
1
maxReplicas
:
100
targetCPUUtilizationPercentage
:
80
# targetMemoryUtilizationPercentage: 80
# Additional volumes on the output Deployment definition.
volumes
:
[]
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts
:
[]
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector
:
{}
tolerations
:
[]
affinity
:
{}
# Minio Setup
minio
:
namespace
:
default
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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