I've bootstrapped with kubeadm Kubernetes 1.9 RBAC cluster and I've started inside a POD Jenkins based on jenkins/jenkins:lts. I would like to try out https://github.com/jenkinsci/kubernetes-plugin . I have already created a serviceaccount based on the proposal in https://gist.github.com/lachie83/17c1fff4eb58cf75c5fb11a4957a64d2
> kubectl -n dev-infra create sa jenkins > kubectl create clusterrolebinding jenkins --clusterrole cluster-admin --serviceaccount=dev-infra:jenkins > kubectl -n dev-infra get sa jenkins -o yaml apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: 2018-02-16T12:06:26Z name: jenkins namespace: dev-infra resourceVersion: "1295580" selfLink: /api/v1/namespaces/dev-infra/serviceaccounts/jenkins uid: d040041c-1311-11e8-a4f8-005056039a14 secrets: - name: jenkins-token-vmt79 > kubectl -n dev-infra get secret jenkins-token-vmt79 -o yaml apiVersion: v1 data: ca.crt: LS0tL...0tLQo= namespace: ZGV2LWluZnJh token: ZXlK...tdVE= kind: Secret metadata: annotations: kubernetes.io/service-account.name: jenkins kubernetes.io/service-account.uid: d040041c-1311-11e8-a4f8-005056039a14 creationTimestamp: 2018-02-16T12:06:26Z name: jenkins-token-vmt79 namespace: dev-infra resourceVersion: "1295579" selfLink: /api/v1/namespaces/dev-infra/secrets/jenkins-token-vmt79 uid: d041fa6c-1311-11e8-a4f8-005056039a14 type: kubernetes.io/service-account-token
After that I go to Manage Jenkins -> Configure System -> Cloud -> Kubernetes and set the Kubernetes URL to the Cluster API that I use also in my kubectl KUBECONFIG server: url:port.
When I hit test connection I get "Error testing connection https://url:port: Failure executing: GET at: https://url:port/api/v1/namespaces/dev-infra/pods. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. pods is forbidden: User "system:serviceaccount:dev-infra:default" cannot list pods in the namespace "dev-infra".
I don't want to give to the dev-infra:default user a cluster-admin role and I want to use the jenkins sa I created. I can't understand how to configure the credentials in Jenkins. When I hit add credentials on the https://github.com/jenkinsci/kubernetes-plugin/blob/master/configuration.png I get
<select class="setting-input dropdownList"> <option value="0">Username with password</option> <option value="1">Docker Host Certificate Authentication</option> <option value="2">Kubernetes Service Account</option> <option value="3">OpenShift OAuth token</option> <option value="4">OpenShift Username and Password</option> <option value="5">SSH Username with private key</option> <option value="6">Secret file</option> <option value="7">Secret text</option> <option value="8">Certificate</option></select>
I could not find a clear example how to configure Jenkins Kubernetes Cloud connector to use my Jenkins to authenticate with service account jenkins. Could you please help me to find step-by-step guide - what kind of of credentials I need?
Regards, Pavel