diff --git a/build/Jenkinsfile b/build/Jenkinsfile index 828dae5..0255b46 100644 --- a/build/Jenkinsfile +++ b/build/Jenkinsfile @@ -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}" diff --git a/build/auth.config.tmpl b/build/auth.config.tmpl deleted file mode 100644 index d398e39..0000000 --- a/build/auth.config.tmpl +++ /dev/null @@ -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 }} diff --git a/build/microservice.yaml.tmpl b/build/microservice.yaml.tmpl index 1e66e49..0a8ce31 100644 --- a/build/microservice.yaml.tmpl +++ b/build/microservice.yaml.tmpl @@ -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 diff --git a/build/vars/master.yaml b/build/vars/build.yaml similarity index 71% rename from build/vars/master.yaml rename to build/vars/build.yaml index 9aac776..4068dbd 100644 --- a/build/vars/master.yaml +++ b/build/vars/build.yaml @@ -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 diff --git a/build/vars/dev.yaml b/build/vars/dev.yaml deleted file mode 100644 index ed3f628..0000000 --- a/build/vars/dev.yaml +++ /dev/null @@ -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 }}" \ No newline at end of file