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") { stage("Prepare environments") {
if (env.BRANCH_NAME == 'master') if (env.BRANCH_NAME == 'master')
envConfig = "build/vars/master.yaml" env.stand = "prod"
else if (env.BRANCH_NAME == 'dev') else if (env.BRANCH_NAME == 'dev')
envConfig = "build/vars/dev.yaml" env.stand = "test"
else else
error("Unsupported branch: ${env.BRANCH_NAME}") error("Unsupported branch: ${env.BRANCH_NAME}")
envConfig = "build/vars/build.yaml"
support.getVarsV2(envConfig) support.getVarsV2(envConfig)
// временно для этого микросервиса
if (env.BRANCH_NAME == 'dev')
env.namespace = "${env.namespace}-test"
println "Success prepare" println "Success prepare"
} }
@@ -35,15 +41,14 @@ node("docker") {
stage("Update version in Kubernetes") { stage("Update version in Kubernetes") {
dir ("build") { dir ("build") {
// Надо создать пачку кредов в Jenkins, а также пространство с кредами подключения в Vault withCredentials([vaultString(credentialsId: "config.${env.registryContainerName}-${env.stand}", variable: "pem")]) {
creds = ["auth", "certificate", "key", "k8scluster", "endpoint"] sh """
set +x
creds.each { cred -> echo "${pem}" | base64 -d > auth.config
withCredentials([vaultString(credentialsId: "${env.registryContainerName}-${cred}-${stand}", variable: "key")]) { set -x
env."${cred}" = key """
}
} }
convertJinja("auth.config.tmpl", "auth.config")
convertJinja("microservice.yaml.tmpl", "microservice.yaml") convertJinja("microservice.yaml.tmpl", "microservice.yaml")
sh "kubectl --kubeconfig=auth.config get pods --namespace ${env.namespace}" 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 protocol: TCP
selector: selector:
app: {{ appName }} app: {{ appName }}
---
apiVersion: networking.k8s.io/v1 # ---
kind: Ingress # apiVersion: networking.k8s.io/v1
metadata: # kind: Ingress
name: {{ appName }} # metadata:
namespace: {{ namespace }} # name: {{ appName }}
spec: # namespace: {{ namespace }}
ingressClassName: nginx # spec:
rules: # ingressClassName: nginx
- host: {{ domainName }} # rules:
http: # - host: {{ domainName }}
paths: # http:
- backend: # paths:
service: # - backend:
name: {{ appName }} # service:
port: # name: {{ appName }}
number: {{ appPort }} # port:
path: / # number: {{ appPort }}
pathType: Prefix # path: /
tls: # pathType: Prefix
- hosts: # tls:
- {{ domainName }} # - hosts:
secretName: api-deck-tls # - {{ domainName }}
# secretName: api-deck-tls
@@ -1,14 +1,10 @@
main: main:
stand: "prod" # метка стенда
registryUrl: "drn.tst.nubes.ru" # Где хранится приложение registryUrl: "drn.tst.nubes.ru" # Где хранится приложение
registryContainerName: "deck-api" # Наименование приложения в Nexus appName: "svc-api" # наименование контейнера в K8S
appName: "api" # наименование контейнера в K8S registryContainerName: "deck-{{ appName }}" # Наименование приложения в Nexus
namespace: "deck" # Namespace приложения, где он будет развёрнут namespace: "deck" # Namespace приложения, где он будет развёрнут
appPort: 8080 # Порт, на котором работает приложение appPort: 8080 # Порт, на котором работает приложение
domain:
domainName: "deck-api.ngcloud.ru" # Имя публикации
fluentBit: fluentBit:
fbConfigMap: fluentbit-configmap-api 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 }}"