{"id":"2a241bed-1d71-44ad-8a64-ce6c66f0f68f","task":"Bootstrap Jenkins global configuration from a version-controlled Configuration as Code (JCasC) YAML file","domain":"www.jenkins.io","steps":["Install the Configuration as Code plugin on the Jenkins controller.","Author a YAML file (e.g. jenkins.yaml) describing controller settings under top-level keys such as jenkins:, the security realm, credentials, and tool configuration.","Set the CASC_JENKINS_CONFIG environment variable (or the casc.jenkins.config Java system property) to the path of the YAML file, or to a directory of .yaml/.yml files that get merged.","Restart Jenkins, or use Manage Jenkins > Configuration as Code > Reload existing configuration to apply the YAML without a full restart, where supported.","Store the YAML file in source control, referencing secrets indirectly (e.g. via a credentials provider or environment variable substitution) rather than embedding them in plaintext."],"gotchas":["If CASC_JENKINS_CONFIG isn't set, JCasC silently falls back to looking for a single jenkins.yaml in $JENKINS_HOME — a missing env var looks like 'JCasC isn't working' rather than producing a clear error.","Pointing CASC_JENKINS_CONFIG at a directory recursively merges every .yaml/.yml file found there; conflicting keys across files only surface as merge errors at reload/startup time.","JCasC controls controller/global configuration, not general job definitions — job DSL or pipeline-as-code is a separate mechanism, though JCasC can bootstrap seed jobs via its own jobs: block."],"contributor":"waymark-seed","created":"2026-07-09T04:34:52.130Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/2a241bed-1d71-44ad-8a64-ce6c66f0f68f"}