This commit is contained in:
msyu
2024-11-05 17:04:41 +03:00
5 changed files with 42 additions and 82 deletions
+16 -11
View File
@@ -10,13 +10,19 @@ node("docker") {
stage("Prepare environments") {
if (env.BRANCH_NAME == 'master')
envConfig = "build/vars/master.yaml"
else if (env.BRANCH_NAME == 'dev')
envConfig = "build/vars/dev.yaml"
env.stand = "prod"
else if (env.BRANCH_NAME == 'dev')
env.stand = "test"
else
error("Unsupported branch: ${env.BRANCH_NAME}")
envConfig = "build/vars/build.yaml"
support.getVarsV2(envConfig)
// временно для этого микросервиса
if (env.BRANCH_NAME == 'dev')
env.namespace = "${env.namespace}-test"
println "Success prepare"
}
@@ -35,15 +41,14 @@ node("docker") {
stage("Update version in Kubernetes") {
dir ("build") {
// Надо создать пачку кредов в Jenkins, а также пространство с кредами подключения в Vault
creds = ["auth", "certificate", "key", "k8scluster", "endpoint"]
creds.each { cred ->
withCredentials([vaultString(credentialsId: "${env.registryContainerName}-${cred}-${stand}", variable: "key")]) {
env."${cred}" = key
}
withCredentials([vaultString(credentialsId: "config.${env.registryContainerName}-${env.stand}", variable: "pem")]) {
sh """
set +x
echo "${pem}" | base64 -d > auth.config
set -x
"""
}
convertJinja("auth.config.tmpl", "auth.config")
convertJinja("microservice.yaml.tmpl", "microservice.yaml")
sh "kubectl --kubeconfig=auth.config get pods --namespace ${env.namespace}"
-19
View File
@@ -1,19 +0,0 @@
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: {{ auth }}
server: {{ endpoint }}
name: {{ k8scluster }}
contexts:
- context:
cluster: {{ k8scluster }}
user: deck-api-admin
name: deck-api-admin-context
current-context: deck-api-admin-context
kind: Config
preferences: {}
users:
- name: deck-api-admin
user:
client-certificate-data: {{ certificate }}
client-key-data: {{ key }}
+24 -23
View File
@@ -95,26 +95,27 @@ spec:
protocol: TCP
selector:
app: {{ appName }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ appName }}
namespace: {{ namespace }}
spec:
ingressClassName: nginx
rules:
- host: {{ domainName }}
http:
paths:
- backend:
service:
name: {{ appName }}
port:
number: {{ appPort }}
path: /
pathType: Prefix
tls:
- hosts:
- {{ domainName }}
secretName: api-deck-tls
# ---
# apiVersion: networking.k8s.io/v1
# kind: Ingress
# metadata:
# name: {{ appName }}
# namespace: {{ namespace }}
# spec:
# ingressClassName: nginx
# rules:
# - host: {{ domainName }}
# http:
# paths:
# - backend:
# service:
# name: {{ appName }}
# port:
# number: {{ appPort }}
# path: /
# pathType: Prefix
# tls:
# - hosts:
# - {{ domainName }}
# secretName: api-deck-tls
@@ -1,14 +1,10 @@
main:
stand: "prod" # метка стенда
registryUrl: "drn.tst.nubes.ru" # Где хранится приложение
registryContainerName: "deck-api" # Наименование приложения в Nexus
appName: "api" # наименование контейнера в K8S
appName: "svc-api" # наименование контейнера в K8S
registryContainerName: "deck-{{ appName }}" # Наименование приложения в Nexus
namespace: "deck" # Namespace приложения, где он будет развёрнут
appPort: 8080 # Порт, на котором работает приложение
domain:
domainName: "deck-api.ngcloud.ru" # Имя публикации
fluentBit:
fbConfigMap: fluentbit-configmap-api
-23
View File
@@ -1,23 +0,0 @@
main:
stand: "dev" # метка стенда
registryUrl: "drn.tst.nubes.ru" # Где хранится приложение
registryContainerName: "deck-api" # Наименование приложения в Nexus
appName: "api" # наименование контейнера в K8S
namespace: "deck-test" # Namespace приложения, где он будет развёрнут
appPort: 8080 # Порт, на котором работает приложение
domain:
domainName: "deck-api-test.ngcloud.ru" # Имя публикации
fluentBit:
fbConfigMap: fluentbit-configmap-api
version:
release: 0
major: 0
minor: "{{ BUILD_NUMBER }}"
version: "{{ release }}.{{ major }}.{{ minor }}"
# Если понадобится делать envFromSecret
# jsonSecrets:
# VUE_APP_BACKEND_HOST: "{{ domainName }}"