Skip to content

Instantly share code, notes, and snippets.

@bharatmicrosystems
Last active February 16, 2023 04:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bharatmicrosystems/5aa7852c262735ea76bcc1692073eee5 to your computer and use it in GitHub Desktop.
Save bharatmicrosystems/5aa7852c262735ea76bcc1692073eee5 to your computer and use it in GitHub Desktop.
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: jenkins
name: jenkins
namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: jenkins-crb
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: jenkins
namespace: default
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pv-claim
labels:
app: jenkins
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deployment
labels:
app: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
serviceAccountName: jenkins
volumes:
- name: jenkins-pv-storage
persistentVolumeClaim:
claimName: jenkins-pv-claim
containers:
- name: jenkins
image: <your-docker-registry>/jenkins-master:0.0.1
env:
- name: JAVA_OPTS
value: -Djenkins.install.runSetupWizard=false
imagePullPolicy: Always
ports:
- containerPort: 8080
- containerPort: 50000
volumeMounts:
- mountPath: "/var/jenkins_home"
name: jenkins-pv-storage
securityContext:
privileged: true
imagePullSecrets:
- name: regcred
initContainers:
- name: volume-mount-data-log
image: busybox
imagePullPolicy: Always
command: ["sh", "-c", "chown -R 1000:1000 /var/jenkins_home"]
volumeMounts:
- mountPath: "/var/jenkins_home"
name: jenkins-pv-storage
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-service
labels:
app: jenkins-svc
spec:
ports:
- port: 8080
targetPort: 8080
protocol: TCP
name: app
- port: 50000
targetPort: 50000
protocol: TCP
name: jnlp
selector:
app: jenkins
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: jenkins-ingress
annotations:
nginx.ingress.kubernetes.io/add-base-url: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "0"
spec:
rules:
- host: jenkins.example.com
http:
paths:
- path: /
backend:
serviceName: jenkins-service
servicePort: 8080
- host: jenkinsmaster.example.com
http:
paths:
- path: /
backend:
serviceName: jenkins-service
servicePort: 50000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment