Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Jenkins to build, test, and publish an immutable container image; use Spinnaker to deploy that image through Kubernetes environments, apply release controls, and manage promotion or rollback. This division keeps CI work close to the source while giving delivery its own stages and operational history. Jenkins can deploy to Kubernetes directly, but Spinnaker is the better fit when releases need environment promotion, approvals, or progressive delivery.

How Jenkins and Spinnaker work together

Jenkins handles continuous integration (CI): it checks out code, compiles it, runs tests and quality or security checks, and publishes a container image. Spinnaker handles continuous delivery (CD): it takes the resulting artifact, prepares Kubernetes manifests, deploys to target environments, and coordinates verification and promotion.

Keep the boundary around the artifact. Build the image once, identify it by immutable digest, and promote that same image from development through staging and production. Rebuilding for each environment can produce different contents under the same version label, making it harder to know exactly what was tested and what is running.

Responsibility Jenkins Spinnaker
Source checkout, compilation, tests, quality and security checks Primary role Can invoke Jenkins jobs as pipeline stages
Container image creation and publication Primary role Consumes the published artifact
Manifest rendering and Kubernetes deployment Can be configured to do it directly Primary role in this division
Environment promotion, release gates, verification and rollback Possible to script, but not the proposed deployment boundary Coordinates these as pipeline stages

Jenkins can deploy directly when the delivery process is simple and a separate orchestration layer would add unnecessary operating work. Spinnaker is more useful when teams need a visible sequence of deployment stages, controlled promotion across environments, or release strategies such as canary and blue-green. Running both means maintaining and securing two systems, so use the split where those delivery capabilities justify that footprint.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build the pipeline from commit to production

  1. Start CI from a source change. Configure the Jenkins job or pipeline to check out the relevant revision and run the project’s build and test steps.
  2. Validate before publication. Run integration tests and applicable quality or security checks. Fail the build rather than publishing an artifact that did not pass the required checks.
  3. Publish an immutable image. Push the container image to a registry and record its digest or another immutable identifier as the pipeline artifact.
  4. Trigger Spinnaker. Configure a Jenkins completion trigger or an image event so that Spinnaker starts when the artifact is available. Pass the image reference as pipeline input; do not rely on a mutable tag whose contents may change.
  5. Render and deploy to a lower environment. Spinnaker can bake Kubernetes manifests with Helm, Kustomize, or another supported path, then deploy to a development or staging target.
  6. Verify the deployment. Run automated checks against the deployed service and use a manual judgment or policy gate where the production risk warrants human review.
  7. Promote the same artifact. Advance the tested image through the remaining environments, retaining explicit rollback actions and a record of pipeline execution.

Spinnaker pipelines are sequences of stages, so deployments, waits, manual judgments, Jenkins jobs, and notifications can be arranged in the order the release requires. Treat the execution history, deployment events, notifications, and Kubernetes metrics as complementary operational signals: the pipeline shows what the release did, while cluster and application telemetry help explain how the service behaved.

Choose a Kubernetes manifest and environment model

Keep deployment inputs reviewable

Store the source manifests and the inputs used to render them under version control. Select Helm, Kustomize, or another supported renderer based on how the team wants to express shared configuration and environment-specific differences. The important operational property is that the rendered deployment can be traced back to reviewed inputs and the image digest Jenkins produced.

Separate environments deliberately

Development, staging, and production can use separate namespaces, separate clusters, or a combination. Namespaces can separate workloads within a cluster; separate clusters or cloud accounts provide a stronger boundary when the risk model or organizational ownership calls for it. Configure Spinnaker with the deployment-provider accounts and targets it is allowed to use, rather than granting every pipeline broad access by default.

Gate higher-risk releases

Use automated verification for checks that can be evaluated consistently, and add manual judgment or policy gates for changes that need a person to assess impact. Define who can approve, what evidence is required, and what happens if a check fails before enabling production promotion.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run Jenkins agents on Kubernetes

Jenkins can use a Kubernetes cluster to create agent pods dynamically. The Kubernetes plugin matches a job to a pod template and runs pipeline steps in the named containers in that pod. This lets teams provision job execution capacity on demand instead of treating every build agent as a permanently running machine.

Plan separately for the Jenkins controller and the disposable agents. In production, persist controller data so losing a pod or node does not erase Jenkins state. Also account for controller capacity, agent concurrency, and log growth as the number and size of jobs increase; dynamically creating agents does not remove those scaling concerns.

What Spinnaker installation requires—and Halyard’s status

Spinnaker’s current installation guidance calls for a Kubernetes cluster, kubectl with Kustomize, external storage, and configured deployment-provider accounts. The guidance lists AKS, EKS, GKE, and on-premises Kubernetes as examples of supported environments. Exact configuration depends on the chosen provider accounts and deployment targets, so treat these as prerequisites rather than a complete, universal installation recipe.

Halyard is deprecated in favor of native installation using Kustomize configurations. For a new installation, follow the native Kustomize path in the current Spinnaker installation documentation rather than adopting an older Halyard-based setup. Configuration also includes CI integration, notifications, authentication, and the accounts or clusters where Spinnaker is permitted to deploy.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How Spinnaker’s services fit together

Spinnaker is made up of services with distinct responsibilities. Knowing the boundaries helps teams decide who owns each operational issue and where to investigate when a pipeline fails.

Service Role
Deck User interface
Gate API gateway
Orca Pipeline orchestration
Clouddriver Cloud-provider mutations and caching
Front50 Metadata persistence
Rosco Baking
Igor CI triggers
Echo Eventing
Fiat Authorization
Kayenta Automated canary analysis

Use progressive delivery only when the signals and rollback are ready

Release pattern How to use it What must be in place
Rolling Replace instances or pods over time as the deployment progresses. Health checks that detect an unhealthy rollout and a defined way to restore the prior version.
Blue-green Deploy a new version alongside the current one, then shift traffic when it is ready. A traffic-routing mechanism able to switch between versions, plus verification and a switch-back plan.
Canary Expose a limited share of traffic to the new version, assess it, then increase exposure or roll back. Traffic routing and useful health or business metrics. Spinnaker includes Kayenta for automated canary analysis, but the deployment environment still needs suitable signals and routing.

These patterns are not interchangeable toggles: the Kubernetes provider and the service-mesh or other traffic-routing setup must support the intended behavior. Do not call a release a canary or blue-green deployment unless traffic exposure and rollback are actually controlled.

Security and operations to plan before production

  • Restrict deployment authority. Use least-privilege service or cloud accounts for Spinnaker targets, and configure Fiat authorization for access control.
  • Protect credentials. Scope Jenkins credentials to the jobs that need them and protect Spinnaker’s external storage and configuration.
  • Enable authentication. Configure authentication and authorization rather than treating an internal UI as a security boundary.
  • Make failures diagnosable. Use Spinnaker execution history and deployment events alongside notifications and Kubernetes metrics; correlate them with the Jenkins build and the immutable image reference.
  • Measure the real operating cost. Compare pipeline duration, deployment failure and recovery rates, agent and controller capacity, release frequency, and operator effort in your own environment. There is no authoritative benchmark here that establishes a universal cost or performance advantage.

When this combination is a good fit

Jenkins plus Spinnaker makes sense when Jenkins already provides the CI plugins and build workflows a team needs, while deployment requires structured promotion, Kubernetes or multi-cloud targets, release gates, or progressive-delivery controls. It is a less compelling choice for a small workload that only needs one straightforward deploy step: in that case, Jenkins can deploy directly, avoiding the extra platform operations.

Before committing, compare the options against the team’s CI depth and plugin needs, Kubernetes and multi-cloud deployment requirements, progressive-delivery controls, pipeline-as-code and templating approach, secret and authorization model, auditability and notifications, operational footprint, upgrade path, and staff experience. The right boundary is the one the team can secure, operate, and recover—not simply the one with more pipeline features.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.