Jenkins
-
Realistic Operational Patterns
- Early Stage: Create jobs via UI → Keep only Jenkinsfile in service repo and operate
- Growth Stage: When jobs increase, introduce seed job + Shared Library
- Mature Stage: Transition to JCasC + DSL + GitOps structure → Jenkins itself fully codified
⇒ Essentially mandatory when managing Jenkins in a Kubernetes environment.
-
Repository Separation (Organization) - Repository Structure Overview
- Service Repo: Each service code + Jenkinsfile
- Shared Library Repo: Common pipeline functions
- Manifest Repo: Deployment state (GitOps)
- Platform Repo: Jenkins core configuration (JCasC / Plugins / Seed Job)
-
Manage as Code?
- Jenkinsfile: Defines build/deploy pipelines within the service code repo
- Shared Library: Provides common build/test/deploy logic as reusable functions
- JCasC (Jenkins Configuration as Code): Manages Jenkins core configuration (YAML)
- Job DSL / Seed Job: Automates Jenkins job creation
-
Build/Deploy Flow
- Developer pushes/PRs to Git → Webhook → Jenkins build starts
- Execute Jenkinsfile → Build / Test / Security Scan / Docker Build
- Push image (Harbor / ECR / GCR, etc.)
- Image vulnerability scan (Trivy)
- Image tag update commit to manifest repo
- ArgoCD/Flux detects changes → Automatic deployment
-
Additional Jenkins Plugin
Pipeline Stage UI

Security OSS (SonarQube, Trivy)
-
Establishing SonarQube Quality Gate Pass Criteria


Evaluation Criteria Description
Metric Description Recommended Criteria (Value) Vulnerabilities Serious security issues that can pose an immediate threat (e.g., SQL Injection, XSS, etc.) 0 (Fails if 1 or more found in new code) Security Hotspots Potential security areas requiring review by a security expert. Not a direct vulnerability, but poses risk 100% Reviewed (All hotspots in new code must be in ‘Reviewed’ status to pass) Security Rating Overall security rating of the code (rated A–E based on vulnerability severity) A (Fails if lower than A in new code) Target (On) Metric Operator Value Description New Code / Overall Code Security Rating is worse than A Fails if security rating of new code is not A New Code / Overall Code Security Hotspots Reviewed is less than 100% Fails if not all security hotspots found in new code are reviewed New Code / Overall Code Vulnerabilities is greater than 0 Fails if even 1 security vulnerability is found in new code -
Establishing Trivy Pass Criteria
Callback Payload
"scan_overview": { "application/vnd.security.vulnerability.report; version=1.1": { "complete_percent": 100, "duration": 4, "end_time": "2025-09-25T08:27:39.000Z", "report_id": "0bd2b3cc-774e-4b9e-a6ae-4e15c8d5d6a6", "scan_status": "Success", "scanner": { "name": "Trivy", "vendor": "Aqua Security", "version": "v0.64.1" }, "severity": "High", "start_time": "2025-09-25T08:27:35.000Z", "summary": { "fixable": 2, "summary": { "High": 2, "Low": 51, "Medium": 1 }, "total": 54 } } },Security Items Summary Table
Field Path Description Example Value scan_statusScan result status ( Success,Failed,Running, etc.)Successscanner.nameScanner name used Trivyscanner.versionScanner version v0.64.1severityHighlighted (or highest) severity level in the report Highsummary.totalTotal number of vulnerabilities 54summary.fixableNumber of fixable vulnerabilities 2summary.summary.HighNumber of High severity vulnerabilities 2summary.summary.MediumNumber of Medium severity vulnerabilities 1summary.summary.LowNumber of Low severity vulnerabilities 51start_time/end_timeScan start/end time (timestamp for judgment) 2025-09-25T08:27:35Z/2025-09-25T08:27:39Zreport_idUnique report ID (for tracking) 0bd2b3cc-...Auto-Judgment Rules Table
Rule Name Condition (Operator) Threshold (Value) Result Reason / Recommended Action Critical: New vulnerabilities present summary.totalis greater than00FAIL Block if even one vulnerability exists in new code (or scan target). Immediate analysis and patching required. High severity present summary.summary.Highis greater than00FAIL High severity vulnerabilities require immediate response. Priority patching or mitigation needed. Fixable vulnerabilities exist summary.fixableis greater than00FAIL Treated as failure if there are vulnerabilities that can be immediately fixed automatically/manually (fix required within deadline). Medium severity threshold summary.summary.Mediumis greater than>= 55WARN Risk accumulates when many Medium vulnerabilities occur. Scheduled patching required. Low severity threshold summary.summary.Lowis greater than>= 2020WARN When many Low vulnerabilities exist, management and monitoring recommended (potential technical debt). Scan status check scan_statusis notSuccessSuccessWARN / FAIL Failed→ FAIL (issue with the scan itself),Running/Partial→ WARN (retry/validation needed).Scanner version staleness scanner.versionolder than policypolicy-defined WARN Outdated scanners may cause false positives/negatives ⇒ Upgrade recommended. Time-to-fix SLA fixable > 0andreported_timeolder than SLAe.g., 7 days FAIL / WARN FAIL or Escalation when fix deadline is exceeded. Given Payload Summary:
summary.total= 54summary.summary.High= 2summary.fixable= 2scan_status=Success
Rule Evaluation (with priority applied):
summary.total > 0→ FAIL (vulnerabilities exist)summary.summary.High > 0→ FAIL (High vulnerabilities exist)summary.fixable > 0→ FAIL (fixable items exist)
Final Judgment: FAIL