Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JCasC configmap field jcasc-default-config.yaml being written as a horrible string with literal \n instead of using |- #1024

Open
HariSekhon opened this issue Feb 22, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@HariSekhon
Copy link

HariSekhon commented Feb 22, 2024

Is your feature request related to a problem? Please describe

It's hard to read or edit or derive new JCasC configuration or patches

apiVersion: v1
data:
  jcasc-default-config.yaml: "jenkins:\n  authorizationStrategy:\n    loggedInUsersCanDoAnything:\n
    \     allowAnonymousRead: false\n  securityRealm:\n    local:\n      allowsSignup:
    false\n      enableCaptcha: false\n      users:\n      - id: \"${chart-admin-username}\"\n
    \       name: \"Jenkins Admin\"\n        password: \"${chart-admin-password}\"\n
    \ disableRememberMe: false\n  mode: NORMAL\n  numExecutors: 0\n  labelString:
    \"\"\n  projectNamingStrategy: \"standard\"\n  markupFormatter:\n    plainText\n
    \ clouds:\n  - kubernetes:\n      containerCapStr: \"10\"\n      defaultsProviderTemplate:
    \"\"\n      connectTimeout: \"5\"\n      readTimeout: \"15\"\n      jenkinsUrl:
    \"http://jenkins.jenkins.svc.cluster.local:8080\"\n      jenkinsTunnel: \"jenkins-agent.jenkins.svc.cluster.local:50000\"\n
    \     maxRequestsPerHostStr: \"32\"\n      retentionTimeout: \"5\"\n      waitForPodSec:
    \"600\"\n      name: \"kubernetes\"\n      namespace: \"jenkins\"\n      serverUrl:
    \"https://kubernetes.default\"\n      credentialsId: \"\"\n      podLabels:\n
    \     - key: \"jenkins/jenkins-jenkins-agent\"\n        value: \"true\"\n      templates:\n
    \       - name: \"jenkins-agent\"\n          namespace: \"jenkins\"\n          id:
    3e0449083f498efe24c7bb2de306d33a77f64bff0b8a55ca968854f37f3f7654\n          containers:\n
    \         - name: \"jnlp\"\n            alwaysPullImage: false\n            args:
    \"^${computer.jnlpmac} ^${computer.name}\"\n            command: \n            envVars:\n
    \             - envVar:\n                  key: \"JENKINS_URL\"\n                  value:
    \"http://jenkins.jenkins.svc.cluster.local:8080/\"\n            image: \"jenkins/inbound-agent:3192.v713e3b_039fb_e-5\"\n
    \           privileged: \"false\"\n            resourceLimitCpu: 512m\n            resourceLimitMemory:
    512Mi\n            resourceRequestCpu: 512m\n            resourceRequestMemory:
    512Mi\n            runAsUser: \n            runAsGroup: \n            ttyEnabled:
    false\n            workingDir: /home/jenkins/agent\n          idleMinutes: 0\n
    \         instanceCap: 2147483647\n          label: \"jenkins-jenkins-agent \"\n
    \         nodeUsageMode: \"NORMAL\"\n          podRetention: Never\n          showRawYaml:
    true\n          serviceAccount: \"jenkins-agent\"\n          slaveConnectTimeoutStr:
    \"100\"\n          yaml: |-\n            apiVersion: v1\n            kind: Pod\n
    \           metadata:\n              annotations:\n                cluster-autoscaler.kubernetes.io/safe-to-evict:
    \"false\"\n          yamlMergeStrategy: merge\n  crumbIssuer:\n    standard:\n
    \     excludeClientIPFromCrumb: true\nsecurity:\n  apiToken:\n    creationOfLegacyTokenEnabled:
    false\n    tokenGenerationOnCreationEnabled: false\n    usageStatisticsEnabled:
    true\nunclassified:\n  location:\n    adminAddress: \n    url: http://jenkins:8080"
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: jenkins-controller
    app.kubernetes.io/instance: jenkins
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: jenkins
    helm.sh/chart: jenkins-4.12.1
    jenkins-jenkins-config: "true"
  name: jenkins-jenkins-jcasc-config
  namespace: jenkins

Describe the solution you'd like

Generate JCasC using yaml |- notation instead on a big ugly string

Describe alternatives you've considered

I've replaced the JCasC configmap jcasc-default-config.yaml field wholesale with a nicely written one which worked to add the NFS server per environment that I needed.

Compare this much more nice readable yaml to the above:

https://github.com/HariSekhon/Kubernetes-configs/blob/master/jenkins/overlay/jcasc-cm.patch.yaml

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant