Helm/Jenkins: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible'
!scope='col' style='width:1000px'|
|valign='top' style='width:50%'|
Helm » Repo » Manage
<syntaxhighlight lang='bash'>
|-
|valign='top'|
<syntaxhighlight lang="bash">
helm repo add jenkins https://charts.jenkins.io
helm repo add jenkins https://charts.jenkins.io
helm repo update && helm repo list
helm repo update && helm repo list
</syntaxhighlight>
</syntaxhighlight>
|valign='top' style='width:50%'|
|}
|}


==Helm » K8s » Config==
==Helm » K8s » Config==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » K8s » Config
Helm » K8s » Config
|-
|-
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
export KUBECONFIG=${HOME}/.kube/eks-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/eks-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/gke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/gke-kubeconfig.yaml
Line 22: Line 21:
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
export KUBECONFIG=${HOME}/.kube/shahed-aa-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-aa-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
Line 31: Line 30:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
export KUBECONFIG=${HOME}/.kube/shahed-ae-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ae-kubeconfig.yaml
kubectl config get-contexts
kubectl config get-contexts
Line 39: Line 38:


==Helm » K8s » Storage==
==Helm » K8s » Storage==
{|class='wikitable mw-collapsible mw-collapsed'
{|class='wikitable mw-collapsible'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » K8s » Storage
Helm » K8s » Storage
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
 
cat <<'EXE'| sudo bash
<syntaxhighlight lang='bash' highlight='3,4'>
mkdir -p          /var/minikube/pvc/jenkins/data-jenkins-0/home
cat << EXE | sudo bash
mkdir -p          /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
rsync -avz        ${HOME}/.config/jenkins/plugins/* \
                  /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
chown -R 1000:1000 /var/minikube/pvc/jenkins/data-jenkins-0/
chown -R 1000:1000 /var/minikube/pvc/jenkins/data-jenkins-0/
chmod -R  750    /var/minikube/pvc/jenkins/
chmod -R  750    /var/minikube/pvc/jenkins/
Line 52: Line 54:
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|valign='top' style='width:500px'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="yaml" highlight="6,15">
<syntaxhighlight lang="yaml" highlight="6,15">
cat <<'YML'| kubectl apply -f -
cat <<'YML'| kubectl apply -f -
Line 73: Line 75:
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
* [[Helm/Jenkins#Jenkins » Plugin|Find More 👉 Jenkins » Plugin]]
----
* [[K8s/Storage#Storage » Mount|Find More 👉 Storage » Mount]]
* [[K8s/Storage#Storage » Mount|Find More 👉 Storage » Mount]]
----
----
Line 84: Line 88:
==Helm » Install==
==Helm » Install==
{|class='wikitable mw-collapsible mw-collapsed'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » Install
Helm » Install
|-
|-
|valign='top' style='width:500px'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
helm show values jenkins/jenkins --version=5.8.67|less
helm show values jenkins/jenkins --version=5.8.67|less
helm show values jenkins/jenkins --version=5.8.68|less
helm show values jenkins/jenkins --version=5.8.68|less
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl create ns  jenkins
kubectl create ns  jenkins
kubectl get ns|grep jenkins
kubectl get ns|grep jenkins
Line 100: Line 104:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
cat <<ENV | kubectl -n jenkins create secret generic jenkins --from-env-file=/dev/stdin
cat <<ENV | kubectl -n jenkins create secret generic jenkins --from-env-file=/dev/stdin
admin-username=admin
admin-username=admin
Line 106: Line 110:
ENV
ENV
</syntaxhighlight>
</syntaxhighlight>
----
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
cat <<ENV | kubectl -n jenkins create secret generic credentials --from-env-file=/dev/stdin
github-username=admin
github-password=sadaqah!
ENV
</syntaxhighlight>
 
<syntaxhighlight lang='bash'>
JENKINS_INIT_SCRIPTS=$(mktemp -d)
JENKINS_INIT_SCRIPTS=$(mktemp -d)
cat <<'EXE'| tee ${JENKINS_INIT_SCRIPTS}/01-print-users.groovy >/dev/null
cat <<'EXE'| tee ${JENKINS_INIT_SCRIPTS}/01-print-users.groovy >/dev/null
Line 142: Line 153:
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight lang="yaml">
<syntaxhighlight lang='yaml'>
cat <<'YML'| kubectl apply -n jenkins -f -
cat <<'YML'| kubectl apply -n jenkins -f -
---
---
Line 174: Line 185:
----
----
|-
|-
|valign='top' colspan='2'|
|valign='top'|
<syntaxhighlight lang="yaml">
<syntaxhighlight lang='yaml'>
cat <<YML | helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.68 -f -
cat <<YML | helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.68 -f -
---
---
Line 232: Line 243:
YML
YML
</syntaxhighlight>
</syntaxhighlight>
|valign='top'|
|}
|}


==Helm » K8s » Verify==
==Helm » K8s » Verify==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » K8s » Verify
Helm » K8s » Verify
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins exec -i svc/jenkins -c jenkins -- cat /run/secrets/additional/chart-admin-password && echo
xdg-open https://www.cdn77.com/tls-test/result?domain=jenkins.shahed.biz
xdg-open https://www.cdn77.com/tls-test/result?domain=jenkins.shahed.biz
xdg-open https://jenkins.shahed.biz
xdg-open https://jenkins.shahed.biz
Line 246: Line 260:


|-
|-
|valign='top' style='width:600px'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins logs -f  svc/jenkins -c config-reload-init
kubectl -n jenkins logs -f  svc/jenkins -c config-reload-init
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
Line 254: Line 268:
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="yaml">
<syntaxhighlight lang='yaml'>
---
---
Page: https://jenkins.shahed.biz
Page: https://jenkins.shahed.biz
Line 265: Line 279:
==Helm » K8s » Scaling==
==Helm » K8s » Scaling==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible'
!scope='col' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » K8s » Scaling
Helm » K8s » Scaling
|-
|-
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="yaml">
<syntaxhighlight lang='yaml'>
cat <<YML | \
kubectl -n=jenkins \
kubectl -n jenkins patch sts/jenkins --patch-file=/dev/stdin
scale sts/jenkins --replicas=0
---
spec:
  replicas: 0
YML
</syntaxhighlight>
</syntaxhighlight>
----
 
<syntaxhighlight lang="yaml">
|valign='top' style='width:50%'|
cat <<YML | \
<syntaxhighlight lang='yaml'>
kubectl -n jenkins patch sts/jenkins --patch-file=/dev/stdin
kubectl -n=jenkins \
---
scale sts/jenkins --replicas=1
spec:
  replicas: 1
YML
</syntaxhighlight>
</syntaxhighlight>
|}
|}
Line 290: Line 297:
==Helm » Uninstall==
==Helm » Uninstall==
{|class='wikitable mw-collapsible mw-collapsed'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Helm » Uninstall
Helm » Uninstall
|-
|-
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
helm uninstall        jenkins -n jenkins
helm uninstall        jenkins -n jenkins
kubectl delete pvc    --all  -n jenkins
kubectl delete pvc    --all  -n jenkins
Line 300: Line 307:
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl delete deploy --all  -n jenkins
kubectl delete deploy --all  -n jenkins
kubectl delete all    --all  -n jenkins
kubectl delete all    --all  -n jenkins
Line 308: Line 315:
|}
|}


==Jenkins » Plugins==
==Jenkins » Plugin==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Jenkins » Plugins
Jenkins » Plugin » Manager
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
sudo apt-get install -y openjdk-21-jdk
mkdir -p ~/.config/jenkins/
cd      ~/.config/jenkins/
</syntaxhighlight>
 
<syntaxhighlight lang='bash'>
cat <<'EXE'| bash
cat <<'EXE'| bash
JENKINS_PLUGIN_CLI=./jenkins-plugin-manager-2.13.2.jar;\
if [[ ! -f  './jenkins-plugin-manager-2.13.2.jar' ]];then wget -cq https://github.com/jenkinsci/\
if [[ ! -f  ${JENKINS_PLUGIN_CLI} ]];then wget -cq https://github.com/jenkinsci/\
plugin-installation-manager-tool/releases/download/2.13.2/jenkins-plugin-manager-2.13.2.jar -P .;fi
plugin-installation-manager-tool/releases/download/2.13.2/jenkins-plugin-manager-2.13.2.jar -P .;fi
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
cat <<'JPI'| tee ./plugins.txt >/dev/null
cat <<'JPI'| tee ./plugins.txt >/dev/null
git:latest
git:latest
dark-theme:latest
kubernetes:latest
kubernetes:latest
octopusdeploy:latest
octopusdeploy:latest
Line 334: Line 346:
</syntaxhighlight>
</syntaxhighlight>


| valign="top" |
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
alias jenkins-plugin-cli="$(cat << EOF
alias jenkins-plugin-cli="$(cat << EOF
mkdir -p ./plugins/;/usr/lib/jvm/java-21-openjdk-amd64/bin/java \
mkdir -p ./plugins/;/usr/lib/jvm/java-21-openjdk-amd64/bin/java \
  -jar jenkins-plugin-manager-2.13.2.jar -d ./plugins \
  -jar jenkins-plugin-manager-2.13.2.jar -d ./plugins \
  -f ./plugins.txt --verbose
  -f ./plugins.txt --jenkins-version=2.504.3 --verbose
EOF
EOF
)"
)"
jenkins-plugin-cli
jenkins-plugin-cli
</syntaxhighlight>
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash' highlight='3,4'>
cat << EXE | sudo bash
mkdir -p          /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
rsync -avz        ${HOME}/.config/jenkins/plugins/* \
                  /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
chown -R 1000:1000 /var/minikube/pvc/jenkins/data-jenkins-0/
chmod -R  750    /var/minikube/pvc/jenkins/
EXE
</syntaxhighlight>
</syntaxhighlight>
|}
|}


==Playground==
==Playground==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' colspan='2' style='width:1000px'|
!scope='col' style='text-align:left' colspan='2'|
Playground
Playground
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.67
helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.67
helm -n jenkins upgrade -i jenkins jenkins/jenkins --version=5.8.68
helm -n jenkins upgrade -i jenkins jenkins/jenkins --version=5.8.68
helm    show    values            jenkins/jenkins --version=5.8.68|less
helm    show    values            jenkins/jenkins --version=5.8.68|less
</syntaxhighlight>
</syntaxhighlight>
----
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-password"'|base64 -d;echo
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-password"'|base64 -d;echo
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-user"'    |base64 -d;echo
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-user"'    |base64 -d;echo
Line 372: Line 396:
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins delete all --all
kubectl -n jenkins delete all --all
kubectl -n jenkins delete ing --all
kubectl -n jenkins delete ing --all
Line 379: Line 403:
</syntaxhighlight>
</syntaxhighlight>


| valign="top" |
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl    delete  pv jenkins-data-jenkins-0
kubectl    delete  pv jenkins-data-jenkins-0
kubectl -n jenkins delete svc --all
kubectl -n jenkins delete svc --all
Line 388: Line 412:
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins rollout history sts jenkins
kubectl -n jenkins rollout history sts jenkins
kubectl -n jenkins rollout restart sts jenkins
kubectl -n jenkins rollout restart sts jenkins
Line 394: Line 418:
</syntaxhighlight>
</syntaxhighlight>


| valign="top" |
|valign='top'|
<syntaxhighlight lang="bash">
<syntaxhighlight lang='bash'>
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c jenkins
kubectl -n jenkins logs -f  svc/jenkins -c jenkins
Line 403: Line 427:


==References==
==References==
{|class='wikitable mw-collapsible mw-collapsed'
{|class='wikitable mw-collapsible'
!scope='col' colspan='3' style='width:1000px'|
!scope='col' style='text-align:left' colspan='3'|
References
References
|-
|-
|valign='top'|
|valign='top' style='width:33%'|
* [[Helm/Prometheus Stack|Helm » Prometheus Stack]]
* [[Helm/Prometheus Stack|Helm » Prometheus Stack]]
* [https://octopus.com/blog/jenkins-helm-install-guide Helm » Jenkins » Install]
* [https://octopus.com/blog/jenkins-helm-install-guide Helm » Jenkins » Install]
Line 415: Line 439:
* [[Helm]]
* [[Helm]]


| valign="top" |
|valign='top' style='width:34%'|
* [https://plugins.jenkins.io/configuration-as-code/releases/ Jenkins » Plugins » Configuration As Code]
* [https://plugins.jenkins.io/configuration-as-code/releases/ Jenkins » Plugins » Configuration As Code]
* [https://plugins.jenkins.io/workflow-aggregator/releases/ Jenkins » Plugins » Workflow Aggregator]
* [https://plugins.jenkins.io/workflow-aggregator/releases/ Jenkins » Plugins » Workflow Aggregator]
Line 421: Line 445:
* [https://plugins.jenkins.io/kubernetes/releases/ Jenkins » Plugins » Kubernetes]
* [https://plugins.jenkins.io/kubernetes/releases/ Jenkins » Plugins » Kubernetes]
* [https://plugins.jenkins.io/git/releases/ Jenkins » Plugins » Git]
* [https://plugins.jenkins.io/git/releases/ Jenkins » Plugins » Git]
* [https://www.jenkins.io/doc/book/managing/cli/ Jenkins » CLI]
* [[Jenkins]]
* [[Jenkins]]


| valign="top" |
|valign='top' style='width:33%'|
 
* [https://plugins.jenkins.io/dark-theme/releases/ Jenkins » Plugins » Dark Theme]
* [https://github.com/jenkinsci/plugin-installation-manager-tool/releases/  Jenkins » Plugins Manager Tool]
* [https://github.com/jenkins-zh/jenkins-cli/releases Jenkins » JCLI » Releases]
* [[Security/Password|Security » Password]]
* [https://github.com/jenkins-zh/jenkins-cli Jenkins » JCLI]
|-
|-
|valign='top'|
|valign='top'|

Latest revision as of 15:32, 8 February 2026

helm repo add jenkins https://charts.jenkins.io
helm repo update && helm repo list

Helm » K8s » Config

Helm » K8s » Config

export KUBECONFIG=${HOME}/.kube/eks-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/gke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/lke-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-aa-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ac-kubeconfig.yaml
export KUBECONFIG=${HOME}/.kube/shahed-ae-kubeconfig.yaml
kubectl config get-contexts
kubectl config view

Helm » K8s » Storage

Helm » K8s » Storage

cat << EXE | sudo bash
mkdir -p           /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
rsync -avz         ${HOME}/.config/jenkins/plugins/* \
                   /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
chown -R 1000:1000 /var/minikube/pvc/jenkins/data-jenkins-0/
chmod -R   750     /var/minikube/pvc/jenkins/
EXE
cat <<'YML'| kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-data-jenkins-0
spec:
  capacity:
    storage: 50Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: hostpath
  hostPath:
    path: /var/hostpath_pv/jenkins/data-jenkins-0
    type: DirectoryOrCreate
YML




Helm » Install

Helm » Install

helm show values jenkins/jenkins --version=5.8.67|less
helm show values jenkins/jenkins --version=5.8.68|less
kubectl create ns   jenkins
kubectl get ns|grep jenkins
cat <<ENV | kubectl -n jenkins create secret generic jenkins --from-env-file=/dev/stdin
admin-username=admin
admin-password=sadaqah!
ENV
cat <<ENV | kubectl -n jenkins create secret generic credentials --from-env-file=/dev/stdin
github-username=admin
github-password=sadaqah!
ENV
JENKINS_INIT_SCRIPTS=$(mktemp -d)
cat <<'EXE'| tee ${JENKINS_INIT_SCRIPTS}/01-print-users.groovy >/dev/null
import jenkins.model.Jenkins
import hudson.security.HudsonPrivateSecurityRealm

def realm = Jenkins.instance.getSecurityRealm()

if (realm instanceof HudsonPrivateSecurityRealm) {
    println ">> Listing users in HudsonPrivateSecurityRealm:"
    realm.getAllUsers().each {
        println "- ${it.id}"
    }
} else if (realm.class.simpleName == 'SecurityRealm$None') {
    println ">> Security is not enabled. No user database is available."
} else {
    println ">> Security realm is: ${realm.getClass().getName()}, user listing may not be supported."
}
EXE

cat <<'EXE'| tee ${JENKINS_INIT_SCRIPTS}/02-print-plugins.groovy >/dev/null
import jenkins.model.Jenkins
import hudson.PluginWrapper

println ">> Installed plugins:"
Jenkins.instance.pluginManager.plugins.each {
    println "- ${it.getShortName()} (${it.getVersion()})"
}
EXE

kubectl -n jenkins create configmap jenkins-init --from-file=${JENKINS_INIT_SCRIPTS}
rm -rf ${JENKINS_INIT_SCRIPTS}
cat <<'YML'| kubectl apply -n jenkins -f -
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-jenkins-0
  namespace: jenkins
  labels:
    app.kubernetes.io/name: jenkins
    app.kubernetes.io/version: 1.0.0
    app.kubernetes.io/instance: jenkins
    app.kubernetes.io/managed-by: kubectl
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  storageClassName: hostpath
  volumeName: jenkins-data-jenkins-0
YML

Find More 👉 Storage » Mount


Find More 👉 Storage » Class » Hostpath


Find More 👉 Storage » Persistent Volume


cat <<YML | helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.68 -f -
---
controller:
  componentName: jenkins-controller
  image:
    tag: 2.504.3
    tagLabel: jdk21
    pullPolicy: IfNotPresent
  disableRememberMe: false
  numExecutors: 5
  jenkinsUrl: https://jenkins.shahed.biz
  jenkinsAdminEmail: tool.tech@shahed.biz
  resources:
    limits:
      cpu: 2000m
      memory: 4Gi
    requests:
      cpu: 50m
      memory: 256Mi
  initContainerResources:
    limits:
      cpu: 2000m
      memory: 4Gi
    requests:
      cpu: 50m
      memory: 256Mi
  agentListenerPort: 50000
  agentListenerEnabled: true
  agentListenerLoadBalancerSourceRanges:
    - 10.19.83.0/24
    - 10.20.40.0/24
    - 10.20.41.0/24
    - 192.168.49.0/24
  agentListenerServiceType: LoadBalancer
  agentListenerLoadBalancerIP: 192.168.49.104
  loadBalancerSourceRanges:
    - 10.19.83.0/24
    - 10.20.40.0/24
    - 10.20.41.0/24
    - 192.168.49.0/24
  loadBalancerIP: 192.168.49.104
  installPlugins: false
  ingress:
    enabled: true
    ingressClassName: nginx
    hostName: jenkins.shahed.biz

persistence:
  size: 50Gi
  enabled: true
  subPath: home
  storageClass: hostpath
  accessMode: ReadWriteOnce
  existingClaim: data-jenkins-0
YML

Helm » K8s » Verify

Helm » K8s » Verify

kubectl -n jenkins exec -i svc/jenkins -c jenkins -- cat /run/secrets/additional/chart-admin-password && echo
xdg-open https://www.cdn77.com/tls-test/result?domain=jenkins.shahed.biz
xdg-open https://jenkins.shahed.biz
kubectl -n jenkins logs -f  svc/jenkins -c config-reload-init
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c jenkins
kubectl -n jenkins logs -f  svc/jenkins -c init
---
Page: https://jenkins.shahed.biz
user: tool.tech@shahed.biz
pass: sadaqah!

Helm » K8s » Scaling

Helm » K8s » Scaling

kubectl -n=jenkins \
scale sts/jenkins --replicas=0
kubectl -n=jenkins \
scale sts/jenkins --replicas=1

Helm » Uninstall

Helm » Uninstall

helm uninstall        jenkins -n jenkins
kubectl delete pvc    --all   -n jenkins
kubectl delete pv     jenkins-data-jenkins-0
kubectl delete deploy --all   -n jenkins
kubectl delete all    --all   -n jenkins
kubectl delete namespace         jenkins

Jenkins » Plugin

Jenkins » Plugin » Manager

sudo apt-get install -y openjdk-21-jdk
mkdir -p ~/.config/jenkins/
cd       ~/.config/jenkins/
cat <<'EXE'| bash
if [[ ! -f  './jenkins-plugin-manager-2.13.2.jar' ]];then wget -cq https://github.com/jenkinsci/\
plugin-installation-manager-tool/releases/download/2.13.2/jenkins-plugin-manager-2.13.2.jar -P .;fi
EXE
cat <<'JPI'| tee ./plugins.txt >/dev/null
git:latest
dark-theme:latest
kubernetes:latest
octopusdeploy:latest
workflow-aggregator:latest
configuration-as-code:latest
JPI
alias jenkins-plugin-cli="$(cat << EOF
mkdir -p ./plugins/;/usr/lib/jvm/java-21-openjdk-amd64/bin/java \
 -jar jenkins-plugin-manager-2.13.2.jar -d ./plugins \
 -f ./plugins.txt --jenkins-version=2.504.3 --verbose
EOF
)"

jenkins-plugin-cli
cat << EXE | sudo bash
mkdir -p           /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
rsync -avz         ${HOME}/.config/jenkins/plugins/* \
                   /var/minikube/pvc/jenkins/data-jenkins-0/home/plugins/
chown -R 1000:1000 /var/minikube/pvc/jenkins/data-jenkins-0/
chmod -R   750     /var/minikube/pvc/jenkins/
EXE

Playground

Playground

helm -n jenkins install    jenkins jenkins/jenkins --version=5.8.67
helm -n jenkins upgrade -i jenkins jenkins/jenkins --version=5.8.68
helm    show    values             jenkins/jenkins --version=5.8.68|less
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-password"'|base64 -d;echo
kubectl -n jenkins get secret jenkins -o json|jq -r '.data."jenkins-admin-user"'    |base64 -d;echo

kubectl -n jenkins exec -it svc/jenkins -c config-reload -- id
kubectl -n jenkins exec -it svc/jenkins -c jenkins -- id

kubectl -n jenkins logs -f  svc/jenkins -c config-reload-init
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c jenkins
kubectl -n jenkins logs -f  svc/jenkins -c init
kubectl -n jenkins delete all --all
kubectl -n jenkins delete ing --all
kubectl -n jenkins delete sts --all
kubectl    delete  pv jenkins-data-jenkins-0
kubectl -n jenkins delete svc --all
kubectl -n jenkins delete pvc --all
kubectl -n jenkins rollout history sts jenkins
kubectl -n jenkins rollout restart sts jenkins
kubectl -n jenkins rollout status  sts jenkins
kubectl -n jenkins logs -f  svc/jenkins -c config-reload
kubectl -n jenkins logs -f  svc/jenkins -c jenkins
kubectl -n jenkins logs -f  svc/jenkins -c init

References

References