CASE 16 / KUBERNETES / CI/CD / PROMOTION

CI/CD Delivery to Kubernetes.

Define a release pipeline for Java integration services around AEM, from Maven verification to Kubernetes promotion. The central decision is to promote the same tested image while recording configuration and deployment evidence separately.

Representative engineering design, not a verified client delivery record. Implementation steps and validation checks describe the proposed approach; no measured results are claimed.

CONTEXTRepresentative engineering design
TECHNICAL FOCUSKubernetes CI/CD Delivery for Java Services
STATUSRepresentative case study
RELEASE EVIDENCE
  1. Git
  2. Build
  3. Test
  4. Quality gate
  5. Docker image
  6. Registry
  7. Deployment
  8. Validate
  9. Promote

AEM packages follow their own delivery process. This pipeline releases complementary Java services.

01 / CONTEXT

Delivery is part of the architecture

A service can pass unit tests and still fail when its runtime configuration, network access or dependency contract changes. This scenario connects application verification with deployment checks without merging the service lifecycle into AEM package delivery.

02 / PROBLEM

A successful build is not a validated release

Rebuilding for each environment makes it difficult to prove that the promoted artifact is the tested artifact. Mutable image tags and undocumented manual configuration changes make rollback equally ambiguous.

03 / ARCHITECTURE

Promote a digest and a deployment record

Use Git to identify source and reviewed manifests, Maven to produce the Java artifact, and a registry to retain the resulting image. A release record binds source commit, image digest, test evidence and environment configuration revision.

04 / ENGINEERING APPROACH

Separate application gates from release gates

Run unit and integration tests before publishing the image, with code analysis and dependency checks as explicit pipeline gates. Pin base-image inputs, verify runtime startup and make the deploy identity distinct from the build identity.

  • Keep registry publication permissions separate from deployment permissions.
  • Use digest-pinned workload manifests and retain prior release references.
  • Serialize or reconcile deployment operations so two pipelines cannot promote conflicting versions.
05 / DEPLOYMENT FLOW

Validate the candidate before promotion

Apply the reviewed deployment configuration, observe rollout progress, then run smoke tests through the real service route. Promotion requires evidence about API behavior and dependency connectivity as well as available Pods.

CONTROLLED PROMOTION
  1. Commit
  2. CI
  3. Registry
  4. Kubernetes
  5. Validate
  6. Promote

Each environment consumes the same image digest with its own reviewed configuration.

06 / OPERATIONAL CONSIDERATIONS

Make rollback an explicit release operation

Retain the previous digest and configuration revision, and define who can stop promotion. Deployment revision rollback does not restore externally changed data or separately mutated configuration, so those changes need their own recovery plan.

07 / TRADEOFFS

Repeatability versus pipeline complexity

More gates can increase confidence but also create slow, brittle feedback if checks duplicate one another. Put fast deterministic tests early and reserve environment-dependent checks for the narrow release boundary they actually verify.

Continue with the complementary design in AEM CI/CD Engineering: From Maven Build to Release Validation.

08 / WHAT I WOULD VALIDATE IN PRODUCTION

Test the pipeline's failure paths

The proposed technical outcome is a traceable, repeatable release process. Validation must demonstrate that rejected releases stay rejected and that a rollback restores compatible behavior.

  • Compare promoted digests across environments and reject mutable-only references.
  • Fail a smoke test and verify promotion stops while evidence remains available.
  • Roll back the image and configuration together; check compatibility with the current data schema.
  • Simulate a registry outage and overlapping release requests without losing the known-good revision.
09 / LESSONS

A release is more than an image

The immutable artifact solves only part of reproducibility. A useful delivery record also explains what configuration ran, which checks passed and how operators can return to a known compatible state.

REFERENCE MATERIAL

Technical references

These sources document product behavior. The design and validation approach above are engineering proposals, not claims made by the vendors.

NEXT STEPS

Working through a similar platform problem?

This representative case study explores technical trade-offs and architectural decisions for a specific engineering scenario. If you are planning a similar migration, modernization, or integration, let's discuss the engineering approach.

Start a conversation
TECHNOLOGY STACK
KubernetesMavenJavaDockerGitCI/CDContainer Registry