Home > Blockchain >  When I try to create a 'new item' in Jenkins, I only have the option to create a freestyle
When I try to create a 'new item' in Jenkins, I only have the option to create a freestyle

Time:05-30

I'm interested in creating a multibranch project in Jenkins for my EKS cluster. For some reason, I only have the option to create a freestyle project when I click 'new item' and I don't have the ability to select multibranch or any other options, they don't even exist on that page for some reason.

Heres my jenkins.yaml file used for my EKS cluster just in case it's causing the issue

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: default
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: jenkins
  namespace: default
rules:
- apiGroups: [""]
  resources: ["pods","services"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: ["apps"]
  resources: ["deployments"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["pods/log"]
  verbs: ["get","list","watch"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get"]
- apiGroups: [""]
  resources: ["persistentvolumeclaims"]
  verbs: ["create","delete","get","list","patch","update","watch"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: jenkins
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: jenkins
subjects:
- kind: ServiceAccount
  name: jenkins
---
# Allows jenkins to create persistent volumes
# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace.
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: jenkins-crb
subjects:
- kind: ServiceAccount
  namespace: default
  name: jenkins
roleRef:
  kind: ClusterRole
  name: jenkinsclusterrole
  apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  # "namespace" omitted since ClusterRoles are not namespaced
  name: jenkinsclusterrole
rules:
- apiGroups: [""]
  resources: ["persistentvolumes"]
  verbs: ["create","delete","get","list","patch","update","watch"]
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  namespace: default
spec:
  selector:
    matchLabels:
      app: jenkins
  replicas: 1
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
        - name: jenkins
          image: jenkins/jenkins:lts
          env:
            - name: JAVA_OPTS
              value: -Djenkins.install.runSetupWizard=false
          ports:
            - name: http-port
              containerPort: 8080
            - name: jnlp-port
              containerPort: 50000
          volumeMounts:
            - name: jenkins-home
              mountPath: /var
              subPath: jenkins_home
            - name: docker-sock-volume
              mountPath: "/var/run/docker.sock"
          imagePullPolicy: Always
      volumes:
        # This allows jenkins to use the docker daemon on the host, for running builds
        # see https://stackoverflow.com/questions/27879713/is-it-ok-to-run-docker-from-inside-docker
        - name: docker-sock-volume
          hostPath:
            path: /var/run/docker.sock
        - name: jenkins-home
      serviceAccountName: jenkins
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: default
spec:
  type: LoadBalancer
  ports:
    - name: ui
      port: 8080
    - name: jnlp
      port: 50000
  selector:
    app: jenkins
---

CodePudding user response:

If you have a basic Jenkins install (ie: just the war), then you will only see the default "Freestyle job" option. In order to have the option for additional Item Types, you must install the appropriate plugin. For example, if you want to have folders to organize your jobs, then you must install the Folders plugin. Same goes for all the additional capabilities provided by plugins which you may come across.

Upon initial startup you are presented with an option to install recommended plugins. If you skip that, you can do so after as well.

In your case, I believe you need to install the Branch API plugin. That will also install all the required dependencies, including the core Pipeline (Workflow Aggregator) plugin, Pipeline: Multibranch plugin and Pipeline: Job plugin. You may still need additional plugins depending on your needs (ie: steps).

You will then have the option to create additional Job Types: Pipeline, Multibranch Pipeline and Organization Folder.

  • Related