Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
A
Angular5DemoProject
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
testPCCC
Angular5DemoProject
Commits
a35de806
Commit
a35de806
authored
Jan 03, 2019
by
nmuthusamy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
initial commit
parent
67da3495
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
288 additions
and
44 deletions
+288
-44
.gitlab-ci.yml
.gitlab-ci.yml
+21
-35
Dockerfile
Dockerfile
+4
-4
.helmignore
helm/service/.helmignore
+22
-0
Chart.yaml
helm/service/Chart.yaml
+6
-0
NOTES.txt
helm/service/templates/NOTES.txt
+22
-0
_helpers.tpl
helm/service/templates/_helpers.tpl
+33
-0
deployment.yaml
helm/service/templates/deployment.yaml
+44
-0
ingress.yaml
helm/service/templates/ingress.yaml
+41
-0
service.yaml
helm/service/templates/service.yaml
+20
-0
test-connection.yaml
helm/service/templates/tests/test-connection.yaml
+19
-0
values.yaml
helm/service/values.yaml
+52
-0
default.conf
nginx/default.conf
+4
-5
No files found.
.gitlab-ci.yml
View file @
a35de806
variables
:
CI_REGISTRY_USER
:
"
playground"
CI_REGISTRY_PASSWORD
:
"
Dd603c48d603c48"
CI_REGISTRY
:
"
pg-registry.altimetrik.com"
CI_REGISTRY_IMAGE
:
"
pg-registry.altimetrik.com/playground"
SONAR_URL
:
"
http://pg-sonar.altimetrik.com/about"
SONAR_ANALYSIS_MODE
:
publish
RELEASE_NAME
:
"
SERVICE_NAME"
SERVICE_PORT
:
80
REGISTRY_URL
:
279716074232.dkr.ecr.us-east-1.amazonaws.com/pgdockrepo
stages
:
-
Build
-
ImagePrune
-
Buildimage
-
Dockerizing
-
Deploy
-
ReleaseCleanup
-
ReleaseDeploy
Dockerb
uild
:
B
uild
:
stage
:
Build
script
:
-
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
-
docker build -t $CI_REGISTRY_IMAGE .
-
$(aws ecr get-login --no-include-email --region us-east-1)
-
docker build -t 279716074232.dkr.ecr.us-east-1.amazonaws.com/pgdockrepo:$CI_PIPELINE_ID .
-
docker push 279716074232.dkr.ecr.us-east-1.amazonaws.com/pgdockrepo:$CI_PIPELINE_ID
ImagePrune
:
stage
:
ImagePrune
script
:
-
docker rm -f $CI_PROJECT_NAME
allow_failure
:
true
ImageTagging
:
stage
:
Dockerizing
script
:
-
docker tag $CI_REGISTRY_IMAGE $CI_REGISTRY_IMAGE/$CI_PROJECT_NAME
DockerPush
:
stage
:
Dockerizing
ReleaseCleanup
:
stage
:
ReleaseCleanup
script
:
-
docker push $CI_REGISTRY_IMAGE/$CI_PROJECT_NAME
Docker-deploy
:
stage
:
Deploy
script
:
-
docker run --name $CI_PROJECT_NAME -d -p 8072:80 $CI_REGISTRY_IMAGE/$CI_PROJECT_NAME
-
echo `pwd`
-
cd ./helm && /usr/local/bin/helm delete --purge $RELEASE_NAME && exit 0
allow_failure
:
true
only
:
-
master
ReleaseDeploy
:
stage
:
ReleaseDeploy
script
:
-
echo `pwd`
-
sed -i s/#BUILD_ID#/$CI_PIPELINE_ID/g ./helm/service/values.yaml
-
sed -i s/#SERVICE_PORT#/$SERVICE_PORT/g ./helm/service/values.yaml
-
cd ./helm && /usr/local/bin/helm install service --name $RELEASE_NAME
Dockerfile
View file @
a35de806
...
...
@@ -3,10 +3,9 @@ COPY package.json package-lock.json ./
RUN
npm i
&&
mkdir
/ng-app
&&
mv
./node_modules ./ng-app
WORKDIR
/ng-app
COPY
. .
RUN $(
npm bin
)
/ng build
--prod
--output-path
=
dist
#RUN $(npm bin)/ng build --sourcemap=false
RUN $(
npm bin
)
/ng build
--prod
--output-path
=
dist
--base-href
/SERVICE_NAME/
FROM
nginx:1.14.1-alpine
COPY
nginx/default.conf /etc/nginx/conf.d/
RUN
rm
-rf
/usr/share/nginx/html/
*
COPY
--from=builder /ng-app/dist /usr/share/nginx/html
CMD
["nginx", "-g", "daemon off;"]
COPY
--from=builder /ng-app/dist /usr/share/nginx/html
/SERVICE_NAME
CMD
["nginx", "-g", "daemon off;"]
\ No newline at end of file
helm/service/.helmignore
0 → 100644
View file @
a35de806
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
helm/service/Chart.yaml
0 → 100644
View file @
a35de806
apiVersion
:
v1
appVersion
:
"
1.0"
description
:
A Helm chart for Kubernetes
name
:
SERVICE_NAME
version
:
0.1.0
\ No newline at end of file
helm/service/templates/NOTES.txt
0 → 100644
View file @
a35de806
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range $.Values.ingress.paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $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 "SERVICE_NAME.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 svc -w {{ include "SERVICE_NAME.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "SERVICE_NAME.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
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 "SERVICE_NAME.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 port-forward $POD_NAME 8080:80
{{- end }}
\ No newline at end of file
helm/service/templates/_helpers.tpl
0 → 100644
View file @
a35de806
{{
/*
vim
:
set
filetype
=
mustache
:
*/
}}
{
{
/*
Expand
the
name
of
the
chart
.
*/
}
}
{{- define "SERVICE_NAME.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 "SERVICE_NAME.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 "SERVICE_NAME.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
\ No newline at end of file
helm/service/templates/deployment.yaml
0 → 100644
View file @
a35de806
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
name
:
{{
include "SERVICE_NAME.fullname" .
}}
labels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
helm.sh/chart
:
{{
include "SERVICE_NAME.chart" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
app.kubernetes.io/managed-by
:
{{
.Release.Service
}}
spec
:
replicas
:
{{
.Values.replicaCount
}}
selector
:
matchLabels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
template
:
metadata
:
labels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
spec
:
containers
:
-
name
:
{{
.Chart.Name
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
}}"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
ports
:
-
name
:
http
containerPort
:
{{
.Values.service.internalport
}}
protocol
:
TCP
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
}}
\ No newline at end of file
helm/service/templates/ingress.yaml
0 → 100644
View file @
a35de806
{{
- if .Values.ingress.enabled -
}}
{{
- $fullName
:
= include "SERVICE_NAME.fullname" . -
}}
{{
- $ingressPaths
:
= .Values.ingress.paths -
}}
apiVersion
:
extensions/v1beta1
kind
:
Ingress
metadata
:
name
:
{{
$fullName
}}
labels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
helm.sh/chart
:
{{
include "SERVICE_NAME.chart" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
app.kubernetes.io/managed-by
:
{{
.Release.Service
}}
{{
- 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
:
{{
. | quote
}}
http
:
paths
:
{{
- range $ingressPaths
}}
-
path
:
{{
.
}}
backend
:
serviceName
:
{{
$fullName
}}
servicePort
:
http
{{
- end
}}
{{
- end
}}
{{
- end
}}
\ No newline at end of file
helm/service/templates/service.yaml
0 → 100644
View file @
a35de806
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
{{
include "SERVICE_NAME.fullname" .
}}
labels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
helm.sh/chart
:
{{
include "SERVICE_NAME.chart" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
app.kubernetes.io/managed-by
:
{{
.Release.Service
}}
spec
:
type
:
{{
.Values.service.type
}}
ports
:
-
port
:
{{
.Values.service.port
}}
targetPort
:
http
protocol
:
TCP
name
:
http
selector
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
\ No newline at end of file
helm/service/templates/tests/test-connection.yaml
0 → 100644
View file @
a35de806
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
"
{{
include
"SERVICE_NAME.fullname" . }}-test-connection"
labels
:
app.kubernetes.io/name
:
{{
include "SERVICE_NAME.name" .
}}
helm.sh/chart
:
{{
include "SERVICE_NAME.chart" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
app.kubernetes.io/managed-by
:
{{
.Release.Service
}}
annotations
:
"
helm.sh/hook"
:
test-success
spec
:
containers
:
-
name
:
wget
image
:
busybox
command
:
[
'
wget'
]
args
:
[
'
{{
include
"SERVICE_NAME.fullname"
.
}}:{{
.Values.service.port
}}'
]
restartPolicy
:
Never
\ No newline at end of file
helm/service/values.yaml
0 → 100644
View file @
a35de806
# Default values for SERVICE_NAME.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount
:
1
image
:
repository
:
279716074232.dkr.ecr.us-east-1.amazonaws.com/pgdockrepo
tag
:
#BUILD_ID#
pullPolicy
:
IfNotPresent
nameOverride
:
"
"
fullnameOverride
:
"
"
service
:
type
:
LoadBalancer
port
:
80
internalport
:
#SERVICE_PORT#
ingress
:
enabled
:
true
annotations
:
kubernetes.io/ingress.class
:
nginx
nginx.ingress.kubernetes.io/rewrite-target
:
/SERVICE_NAME
#kubernetes.io/tls-acme: "true"
paths
:
path
:
/SERVICE_NAME
hosts
:
-
pgsandbox.altimetrik.com
tls
:
-
secretName
:
custom-tls-cert
hosts
:
-
pgsandbox.altimetrik.com
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
:
{}
\ No newline at end of file
nginx/default.conf
View file @
a35de806
...
...
@@ -19,9 +19,9 @@ server {
root
/
usr
/
share
/
nginx
/
html
;
location
/
SERVICE_NAME
/ {
try_files
$
uri
$
uri
/ /
SERVICE_NAME
/
index
.
html
?$
query_string
;
}
location
/ {
try_files
$
uri
$
uri
/ /
index
.
html
=
404
;
}
}
\ 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