Size: a a a

2021 August 03

DB

Dmitry Burmistrov in jenkins_ru
читать документацию https://plugins.jenkins.io/kubernetes/
и смотреть примеры использования https://github.com/jenkinsci/kubernetes-plugin/tree/master/examples
источник

A

Andrew in jenkins_ru
Да я вроде читал и смотрел...
источник

A

Andrew in jenkins_ru
Так я вроде все правильно делаю
источник

A

Andrew in jenkins_ru
Судя по примерам
источник

DB

Dmitry Burmistrov in jenkins_ru
pipeline {
   agent { label 'docker' }


pipeline {
 agent {
   kubernetes {
     yaml '''
источник

A

Andrew in jenkins_ru
А разве
kubernetes {
используется не тогда когда в пайплайне описание пода который создается? У меня она создается сразу автоматически как только надимаю build now
09:39:30  Still waiting to schedule task
09:39:30  All nodes of label ‘docker’ are offline
09:39:30  Agent jenkins-slave-c9tjb is provisioned from template jenkins-slave
09:39:30  ---
09:39:30  apiVersion: "v1"
09:39:30  kind: "Pod"
09:39:30  metadata:
09:39:30    labels:
09:39:30      jenkins: "slave"
09:39:30      jenkins/label-digest: "e982f17bcbe0f724063b708a4f76db211a999304"
09:39:30      jenkins/label: "docker"
09:39:30    name: "jenkins-slave-c9tjb"
09:39:30  spec:
09:39:30    containers:
09:39:30    - args:
09:39:30      - "cat"
09:39:30      command:
09:39:30      - "/bin/sh"
09:39:30      - "-c"
09:39:30      image: "public.ecr.aws/v2s3j9j2/docker:dind"
09:39:30      imagePullPolicy: "IfNotPresent"
09:39:30      name: "docker"
09:39:30      resources:
09:39:30        limits: {}
09:39:30        requests: {}
09:39:30      tty: true
09:39:30      volumeMounts:
09:39:30      - mountPath: "/home/jenkins"
09:39:30        name: "workspace-volume"
09:39:30        readOnly: false
09:39:30      workingDir: "/home/jenkins"
09:39:30    - env:
09:39:30      - name: "JENKINS_SECRET"
09:39:30        value: "********"
09:39:30      - name: "JENKINS_AGENT_NAME"
09:39:30        value: "jenkins-slave-c9tjb"
09:39:30      - name: "JENKINS_NAME"
09:39:30        value: "jenkins-slave-c9tjb"
09:39:30      - name: "JENKINS_AGENT_WORKDIR"
09:39:30        value: "/home/jenkins/agent"
09:39:30      - name: "JENKINS_URL"
09:39:30        value: "http://jenkins.test.com/"
09:39:30      image: "jenkins/inbound-agent:4.3-4"
09:39:30      name: "jnlp"
09:39:30      resources:
09:39:30        limits: {}
09:39:30        requests:
09:39:30          memory: "256Mi"
09:39:30          cpu: "100m"
09:39:30      volumeMounts:
09:39:30      - mountPath: "/home/jenkins/agent"
09:39:30        name: "workspace-volume"
09:39:30        readOnly: false
09:39:30    hostNetwork: false
09:39:30    nodeSelector:
09:39:30      kubernetes.io/os: "linux"
09:39:30    restartPolicy: "Never"
09:39:30    serviceAccountName: "jenkins"
09:39:30    volumes:
09:39:30    - emptyDir:
09:39:30        medium: ""
09:39:30      name: "workspace-volume"
09:39:30  
09:39:31  Running on jenkins-slave-c9tjb in /home/jenkins/agent/workspace/sideprojects/testjob
источник

A

Andrew in jenkins_ru
сори если глупый вопрос
источник

DB

Dmitry Burmistrov in jenkins_ru
попробуй поднять так, как в примерах. оттуда и копай дальше
источник

A

Andrew in jenkins_ru
Окей, буду пробовать, спасибо
источник

II

Igor Ivanov in jenkins_ru
кто-нибудь дружил пайплайны / shared library и аннотацию @Memoized?
сработало один раз, выплюнув варнинг expected to call org.codehaus.groovy.runtime.memoize.Memoize$MemoizeFunction.call but wound up catching WorkflowScript.memoizedMethodPriv$memo, и на всех перезапусках теперь падает с исключением где-то в потрохах org.jboss.marshalling.river.RiverMarshaller.doWriteObject :(
источник

DS

Dmitry Sergeev in jenkins_ru
а расскажи что это за @Memoized и зачем? Интересно =)
источник

II

Igor Ivanov in jenkins_ru
https://objectpartners.com/2014/01/28/memoization-in-groovy/

применительно к дженкинсу — хочу закэшировать функцию, которая вызывается несколько раз, активно шуршит файловой системой, срёт в логи, и в конце концов возвращает путь до одного и того же файлика на ноде
сейчас велосипед выглядит так:
@groovy.transform.Field
_cachedOsInfo = [:]
def os_info()
{
   def node_data = this._cachedOsInfo[env.NODE_NAME]
   if (node_data) {
       return node_data
   }
   this._cachedOsInfo[env.NODE_NAME] = [:]
   node_data = this._cachedOsInfo[env.NODE_NAME]
   ...
   return node_data
}

, но memoize это делает из коробки:
@Memoize
def os_info(String node_name) {
   def node_data = [:]
   ...
   return node_data
}

казалось бы, слава декораторам, но дженк как всегда 😞
источник

n

nibble in jenkins_ru
kubectl get services --namespace jenkins
NAME      TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
jenkins   NodePort   10.110.251.2   <none>        8080:32243/TCP   11m
источник

n

nibble in jenkins_ru
но ничего наружу 32243 портом не торчит...
источник

JR

Jürgen Romins in jenkins_ru
У тебя кластер ип
источник

n

nibble in jenkins_ru
уже увидел
источник

n

nibble in jenkins_ru
и как мне заэкспозить порт наружу?
источник

AL

Aleksey Lazarev in jenkins_ru
Ну во первых этот порт будет открыт у тебя на всех нодах в кластере - покажи как у тебя не работает обращение к ноде на этот порт? Refused? timeout?
источник

n

nibble in jenkins_ru
курл отдает рефьюз
источник

AL

Aleksey Lazarev in jenkins_ru
Во вторых - я думаю что jenkins ты хочешь выкинуть как l7 - так что возьми ingress-controller
источник