Updated CI. Removed helm config.

Signed-off-by: Pavel Kirilin <win10@list.ru>
This commit is contained in:
2021-08-08 14:18:38 +04:00
parent e6305d7ac2
commit 3caf075c13
8 changed files with 52 additions and 159 deletions

View File

@ -5,6 +5,7 @@ stages:
variables: variables:
APP_VERSION: ${CI_COMMIT_REF_SLUG} APP_VERSION: ${CI_COMMIT_REF_SLUG}
DOCKER_AUTH_CONFIG: "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USER\",\"password\":\"$DOCKER_PASSWORD\"}}}"
.test-template: .test-template:
image: python:3.9-buster image: python:3.9-buster
@ -14,7 +15,6 @@ variables:
except: except:
- tags - tags
before_script: before_script:
- echo "${DOCKER_REGISTRY}"
- pip install poetry==1.1.6 - pip install poetry==1.1.6
- poetry config virtualenvs.create false - poetry config virtualenvs.create false
- poetry install - poetry install
@ -56,7 +56,9 @@ image-builder:
- tags - tags
script: script:
- mkdir -p /kaniko/.docker - mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USER\",\"password\":\"$DOCKER_PASSWORD\"}}}" > /kaniko/.docker/config.json # Create authentication rule to publish image.
- echo "$DOCKER_AUTH_CONFIG" > /kaniko/.docker/config.json
# Build actual image.
- /kaniko/executor --context . - /kaniko/executor --context .
--dockerfile deploy/Dockerfile --dockerfile deploy/Dockerfile
--destination "$IMAGE_NAME:$APP_VERSION" --destination "$IMAGE_NAME:$APP_VERSION"
@ -64,15 +66,26 @@ image-builder:
deploy: deploy:
stage: deploy stage: deploy
image: dtzar/helm-kubectl:3.6.3 image: docker.le-memese.com/kubectl:1.22.0
tags: tags:
- kube - kube
only: only:
- tags - tags
environment:
name: production
kubernetes:
namespace: $NAMESPACE
script: script:
- export KUBECONFIG=$KUBE_CONF # Save all lenochka's variables in a file.
- env | grep "^LENOCHKA_" > .deploy-env - env | grep "^LENOCHKA_" > .deploy-env
- kubectl delete configmap --namespace "$NAMESPACE" "$ENVCONF" || true # Recreate envconfig for pod.
- kubectl create configmap --namespace "$NAMESPACE" "$ENVCONF" --from-env-file=.deploy-env - kubectl delete configmap "$ENVCONF" || true
- envsubst < "$HELM_VALUES" > deploy-values.yml - kubectl create configmap "$ENVCONF" --from-env-file=.deploy-env
- helm upgrade lenocka deploy/charts/lenocka/ -f deploy-values.yml --namespace "$NAMESPACE" # Create secret for pulling images.
- echo "$DOCKER_AUTH_CONFIG" > .dockerauth.json
- kubectl delete secret "$PULL_SECRET" || true
- kubectl create secret generic "$PULL_SECRET"
--from-file=.dockerconfigjson=.dockerauth.json
--type=kubernetes.io/dockerconfigjson
# Substitute env variables and apply them in kubectl.
- find deploy/kube -name "*.yml" | xargs cat | envsubst | kubectl apply -f -

View File

@ -1,23 +0,0 @@
# 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/

View File

@ -1,8 +0,0 @@
apiVersion: v2
name: lenocka
description: A Helm chart for Kubernetes
type: application
version: "0.1.0"
appVersion: "0.1.0"

View File

@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "lenocka.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 "lenocka.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 "lenocka.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "lenocka.labels" -}}
helm.sh/chart: {{ include "lenocka.chart" . }}
{{ include "lenocka.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "lenocka.selectorLabels" -}}
app.kubernetes.io/name: {{ include "lenocka.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "lenocka.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "lenocka.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -1,47 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "lenocka.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "lenocka.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "lenocka.selectorLabels" . | nindent 6 }}
template:
metadata:
namespace: {{ .Release.Namespace }}
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "lenocka.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: Always
envFrom:
- configMapRef:
name: {{ .Values.image.envConfig }}
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 }}

View File

@ -1,11 +0,0 @@
replicaCount: 1
image:
repository: repo
tag: tag
envConfig: config
resources:
limits:
cpu: 100m
memory: 100Mi

View File

@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: lenochka
annotations:
app.gitlab.com/env: $CI_ENVIRONMENT_SLUG
app.gitlab.com/app: $CI_PROJECT_PATH_SLUG
spec:
selector:
matchLabels:
app: lenochka-bot
template:
metadata:
annotations:
app.gitlab.com/env: $CI_ENVIRONMENT_SLUG
app.gitlab.com/app: $CI_PROJECT_PATH_SLUG
labels:
app: lenochka-bot
spec:
imagePullSecrets:
- name: "$PULL_SECRET"
containers:
- name: lenochka-bot
image: docker.le-memese.com/bots/lenochka-bot:$APP_VERSION
resources:
limits:
cpu: 10m
memory: 60Mi
envFrom:
- configMapRef:
name: "$ENVCONF"