Merge pull request #193 from waveywaves/feature/CSRFProtectionToggle
Add ability to disable CSRFProtection in the Jenkins master
This commit is contained in:
commit
eed47e9f12
|
|
@ -310,6 +310,9 @@ type JenkinsMaster struct {
|
|||
// Plugins contains plugins required by user
|
||||
// +optional
|
||||
Plugins []Plugin `json:"plugins,omitempty"`
|
||||
|
||||
// DisableCSRFProtection allows you to toggle CSRF Protection on Jenkins
|
||||
DisableCSRFProtection bool `json:"disableCSRFProtection"`
|
||||
}
|
||||
|
||||
// Service defines Kubernetes service attributes
|
||||
|
|
|
|||
|
|
@ -9,6 +9,17 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
const (
|
||||
basicSettingsGroovyScriptName = "1-basic-settings.groovy"
|
||||
enableCSRFGroovyScriptName = "2-enable-csrf.groovy"
|
||||
disableUsageStatsGroovyScriptName = "3-disable-usage-stats.groovy"
|
||||
enableMasterAccessControlGroovyScriptName = "4-enable-master-access-control.groovy"
|
||||
disableInsecureFeaturesGroovyScriptName = "5-disable-insecure-features.groovy"
|
||||
configureKubernetesPluginGroovyScriptName = "6-configure-kubernetes-plugin.groovy"
|
||||
configureViewsGroovyScriptName = "7-configure-views.groovy"
|
||||
disableJobDslScriptApprovalGroovyScriptName = "8-disable-job-dsl-script-approval.groovy"
|
||||
)
|
||||
|
||||
const basicSettingsFmt = `
|
||||
import jenkins.model.Jenkins
|
||||
import jenkins.model.JenkinsLocationConfiguration
|
||||
|
|
@ -168,23 +179,26 @@ func GetBaseConfigurationConfigMapName(jenkins *v1alpha2.Jenkins) string {
|
|||
// NewBaseConfigurationConfigMap builds Kubernetes config map used to base configuration
|
||||
func NewBaseConfigurationConfigMap(meta metav1.ObjectMeta, jenkins *v1alpha2.Jenkins) *corev1.ConfigMap {
|
||||
meta.Name = GetBaseConfigurationConfigMapName(jenkins)
|
||||
|
||||
groovyScriptsMap := map[string]string{
|
||||
basicSettingsGroovyScriptName: fmt.Sprintf(basicSettingsFmt, constants.DefaultAmountOfExecutors),
|
||||
enableCSRFGroovyScriptName: enableCSRF,
|
||||
disableUsageStatsGroovyScriptName: disableUsageStats,
|
||||
enableMasterAccessControlGroovyScriptName: enableMasterAccessControl,
|
||||
disableInsecureFeaturesGroovyScriptName: disableInsecureFeatures,
|
||||
configureKubernetesPluginGroovyScriptName: fmt.Sprintf(configureKubernetesPluginFmt,
|
||||
jenkins.ObjectMeta.Namespace,
|
||||
fmt.Sprintf("http://%s.%s:%d", GetJenkinsHTTPServiceName(jenkins), jenkins.ObjectMeta.Namespace, jenkins.Spec.Service.Port),
|
||||
fmt.Sprintf("%s.%s:%d", GetJenkinsSlavesServiceName(jenkins), jenkins.ObjectMeta.Namespace, jenkins.Spec.SlaveService.Port),
|
||||
),
|
||||
configureViewsGroovyScriptName: configureViews,
|
||||
disableJobDslScriptApprovalGroovyScriptName: disableJobDSLScriptApproval,
|
||||
}
|
||||
if jenkins.Spec.Master.DisableCSRFProtection {
|
||||
delete(groovyScriptsMap, enableCSRFGroovyScriptName)
|
||||
}
|
||||
return &corev1.ConfigMap{
|
||||
TypeMeta: buildConfigMapTypeMeta(),
|
||||
ObjectMeta: meta,
|
||||
Data: map[string]string{
|
||||
"1-basic-settings.groovy": fmt.Sprintf(basicSettingsFmt, constants.DefaultAmountOfExecutors),
|
||||
"2-enable-csrf.groovy": enableCSRF,
|
||||
"3-disable-usage-stats.groovy": disableUsageStats,
|
||||
"4-enable-master-access-control.groovy": enableMasterAccessControl,
|
||||
"5-disable-insecure-features.groovy": disableInsecureFeatures,
|
||||
"6-configure-kubernetes-plugin.groovy": fmt.Sprintf(configureKubernetesPluginFmt,
|
||||
jenkins.ObjectMeta.Namespace,
|
||||
fmt.Sprintf("http://%s.%s:%d", GetJenkinsHTTPServiceName(jenkins), jenkins.ObjectMeta.Namespace, jenkins.Spec.Service.Port),
|
||||
fmt.Sprintf("%s.%s:%d", GetJenkinsSlavesServiceName(jenkins), jenkins.ObjectMeta.Namespace, jenkins.Spec.SlaveService.Port),
|
||||
),
|
||||
"7-configure-views.groovy": configureViews,
|
||||
"8-disable-job-dsl-script-approval.groovy": disableJobDSLScriptApproval,
|
||||
},
|
||||
Data: groovyScriptsMap,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue