Releases: Ragin-LundF/k8s-jcasc-management
Adding support for cloud template selection
In this release, it is possible to create the project configurations more dynamically by selecting different cloud templates.
The file jcasc_config.yaml
should now have a ##K8S_MGMT_JENKINS_CLOUD_TEMPLATES##
placeholder:
clouds:
- kubernetes:
name: "jenkins-build-slaves"
serverUrl: ""
serverCertificate: ##KUBERNETES_SERVER_CERTIFICATE##
directConnection: false
skipTlsVerify: true
namespace: "##NAMESPACE##"
jenkinsUrl: "http://##JENKINS_MASTER_DEPLOYMENT_NAME##:8080"
maxRequestsPerHostStr: 64
retentionTimeout: 5
connectTimeout: 10
readTimeout: 20
templates:
##K8S_MGMT_JENKINS_CLOUD_TEMPLATES##
It is important, that the placeholder is at the beginning of the line.
If a folder called cloud-templates
is existing in the templates
folder, then all files in this directory will be shown as possible cloud-templates.
The user can then select which (none or multiple) sub-templates should be added to the main template.
These sub-templates must also start at the beginning of the line.
For an example have a look here: templates/cloud-templates/node.yaml
Ingress controller and loadbalancer support for deployment namespaces without Jenkins installations
Adding support to disable Jenkins ingress as default while installing ingress controller.
If Jenkins should deploy applications to other namespaces, it will deploy the ingress controller (if active) also to the other namespaces, but without the ingress of Jenkins.
To create the needed project, there is a new menu point called createDeploymentOnlyProject
. This function will only ask for directory, namespace and IP and creates only the ingress and loadbalancer relevant files.
The installation for such projects is looking for Jenkins Helm Chart values and if they are not available it skips the installation of Jenkins and sets an internal flag to prevent the installation of a Jenkins ingress routing.
Hotfix for Installation
Small hotfix for wrong output that nginx ingress file was not found.
Hotfix for MacOS/BSD
MacOS/BSD does not support find -printf
. Now it uses the default ls
command for directory listening.
Shell script support and directory selection
With dialog
and whiptail
it is now possible to select the directory in a selection dialog instead of an input dialog.
For better support for additional tools and installations, k8s-jcasc.sh
now checks after (de-)installing Jenkins, if the selected project directory contains shell scripts in a directory called scripts.
To use this feature it is required to have the following naming conventions:
i_*.sh
-> Scripts for installationd_*.sh
-> Scripts for installation
The deinstallation scripts can only be executed if the project directory matches the namespace name. This is necessary because normally only the namespace and no directory selection is required for deinstallation.
Support for deployments in other namespaces
Adding support for deployments in other namespaces.
With the following section in the jenkins_helm_values.yaml
it is possible to add other namespaces to the RBAC binding.
This allows Jenkins to deploy applications into those namespaces later on a CI/CD pipeline.
k8smanagement:
rbac:
# list of additional namespaces that should be deployable (adds RBAC roles to those namespaces)
additionalNamespaces: []
Whiptail/newt support and dummy support for IP reservation in ip_config.cnf file
- Improved scripts
- Missing dialog for apply secrets to a namespace added
- Support for dummy entries in
ip_config.cnf
file- can be used for IP reservation
- configuration of the prefix for dummy entries can be done with the
IP_CONFIG_FILE_DUMMY_PREFIX
variable
whiptail
support- If
dialog
andwhiptail
are installed, the order is:whiptail
dialog
nodialog
- If
Whiptail/newt installation
- Debian:
apt-get install whiptail
- Ubuntu:
apt-get install whiptail
- Alpine:
apk add newt
- Arch Linux:
pacman -S whiptail
- Kali Linux:
apt-get install whiptail
- CentOS:
yum install newt
- Fedora:
dnf install newt
- OS X:
brew install newt
- Raspbian:
apt-get install whiptail
Whiptail based k8s-jcasc-management
Upgrade of Jenkins Helm charts to 1.18.1
This release is upgrading the Helm Charts to version 1.18.1, which adds the support to set the executor mode in the original chart, which minimizes the changes for this tool in the charts.
The most important change is, that jenkins_helm_values.yaml
are now containing master.executorMode
to set the mode to EXCLUSIVE
.
If you have own templates in your project, then you have to change this value and you can remove the k8sJenkinsMgmtExtension.jenkins.mode
value.
Support for encrypted passwords for default admin user and project users
In this release, the "securityRealms" will be supported.
As default, it adds the Jenkins "admin" user and a "project-user" to the templates.
The project user has read-only permissions but can trigger a build.
To update or generate new passwords, it is possible to use a new option (selectable at the dialogs or with the command option: ./k8s-jcasc.sh createJenkinsUserPassword).
Upgrading Jenkins Helm Charts
This release upgrades only the Jenkins Helm Charts to version 1.11.3.
With this version, the modification for not copying a not existing configuration in this chart is no longer needed.
It also offers more possibilities to configure Jenkins paths.
For more details see: https://github.com/helm/charts/tree/master/stable/jenkins