From 3caf075c13722677aa9a7243fdf4affd318a2066 Mon Sep 17 00:00:00 2001 From: Pavel Kirilin <win10@list.ru> Date: Sun, 8 Aug 2021 14:18:38 +0400 Subject: [PATCH] Updated CI. Removed helm config. Signed-off-by: Pavel Kirilin <win10@list.ru> --- .gitlab-ci.yml | 29 ++++++--- deploy/charts/lenocka/.helmignore | 23 ------- deploy/charts/lenocka/Chart.yaml | 8 --- deploy/charts/lenocka/templates/NOTES.txt | 0 deploy/charts/lenocka/templates/_helpers.tpl | 62 ------------------- .../charts/lenocka/templates/deployment.yaml | 47 -------------- deploy/charts/lenocka/values.yaml | 11 ---- deploy/kube/deployment.yml | 31 ++++++++++ 8 files changed, 52 insertions(+), 159 deletions(-) delete mode 100644 deploy/charts/lenocka/.helmignore delete mode 100644 deploy/charts/lenocka/Chart.yaml delete mode 100644 deploy/charts/lenocka/templates/NOTES.txt delete mode 100644 deploy/charts/lenocka/templates/_helpers.tpl delete mode 100644 deploy/charts/lenocka/templates/deployment.yaml delete mode 100644 deploy/charts/lenocka/values.yaml create mode 100644 deploy/kube/deployment.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92548c5..2afb9c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ stages: variables: APP_VERSION: ${CI_COMMIT_REF_SLUG} + DOCKER_AUTH_CONFIG: "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_USER\",\"password\":\"$DOCKER_PASSWORD\"}}}" .test-template: image: python:3.9-buster @@ -14,7 +15,6 @@ variables: except: - tags before_script: - - echo "${DOCKER_REGISTRY}" - pip install poetry==1.1.6 - poetry config virtualenvs.create false - poetry install @@ -56,7 +56,9 @@ image-builder: - tags script: - 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 . --dockerfile deploy/Dockerfile --destination "$IMAGE_NAME:$APP_VERSION" @@ -64,15 +66,26 @@ image-builder: deploy: stage: deploy - image: dtzar/helm-kubectl:3.6.3 + image: docker.le-memese.com/kubectl:1.22.0 tags: - kube only: - tags + environment: + name: production + kubernetes: + namespace: $NAMESPACE script: - - export KUBECONFIG=$KUBE_CONF + # Save all lenochka's variables in a file. - env | grep "^LENOCHKA_" > .deploy-env - - kubectl delete configmap --namespace "$NAMESPACE" "$ENVCONF" || true - - kubectl create configmap --namespace "$NAMESPACE" "$ENVCONF" --from-env-file=.deploy-env - - envsubst < "$HELM_VALUES" > deploy-values.yml - - helm upgrade lenocka deploy/charts/lenocka/ -f deploy-values.yml --namespace "$NAMESPACE" \ No newline at end of file + # Recreate envconfig for pod. + - kubectl delete configmap "$ENVCONF" || true + - kubectl create configmap "$ENVCONF" --from-env-file=.deploy-env + # 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 - diff --git a/deploy/charts/lenocka/.helmignore b/deploy/charts/lenocka/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/deploy/charts/lenocka/.helmignore +++ /dev/null @@ -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/ diff --git a/deploy/charts/lenocka/Chart.yaml b/deploy/charts/lenocka/Chart.yaml deleted file mode 100644 index e27ae98..0000000 --- a/deploy/charts/lenocka/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: lenocka -description: A Helm chart for Kubernetes - -type: application - -version: "0.1.0" -appVersion: "0.1.0" \ No newline at end of file diff --git a/deploy/charts/lenocka/templates/NOTES.txt b/deploy/charts/lenocka/templates/NOTES.txt deleted file mode 100644 index e69de29..0000000 diff --git a/deploy/charts/lenocka/templates/_helpers.tpl b/deploy/charts/lenocka/templates/_helpers.tpl deleted file mode 100644 index ca3747e..0000000 --- a/deploy/charts/lenocka/templates/_helpers.tpl +++ /dev/null @@ -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 }} diff --git a/deploy/charts/lenocka/templates/deployment.yaml b/deploy/charts/lenocka/templates/deployment.yaml deleted file mode 100644 index ab42ffd..0000000 --- a/deploy/charts/lenocka/templates/deployment.yaml +++ /dev/null @@ -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 }} diff --git a/deploy/charts/lenocka/values.yaml b/deploy/charts/lenocka/values.yaml deleted file mode 100644 index 4557ea8..0000000 --- a/deploy/charts/lenocka/values.yaml +++ /dev/null @@ -1,11 +0,0 @@ -replicaCount: 1 - -image: - repository: repo - tag: tag - envConfig: config - -resources: - limits: - cpu: 100m - memory: 100Mi diff --git a/deploy/kube/deployment.yml b/deploy/kube/deployment.yml new file mode 100644 index 0000000..bf6ed13 --- /dev/null +++ b/deploy/kube/deployment.yml @@ -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" -- GitLab