DevOps

This guide is for communicating the NGSS-defined processes, practices, and conventions used in developing, building and deploying services to Kubernetes clusters in VA Mobile environments.

Latest News

Buildpacks Integration

ngss-maven-tiles 2.9 has added buildpacks-java-tile for configuring Cloud Native Buildpacks. Buildpacks automatically create container images from source code without needing a Dockerfile, offering consistent, secure, and language-agnostic builds. Compared to tools like Jib or Docker, they handle dependency detection, layering, and base image management automatically — making builds more reproducible and maintenance simpler.

They also enable the base image to be updated without having to rebuild the application codebase, leading to faster turnaround of base image updates. skaffold.yaml changes are required.

Skaffold and Kustomize Migration

We have finished migrating CKM services to incorporate Kustomize and Skaffold for configuring Kubernetes deployments, spanning both development and CI/CD utilization. This effectively replaces the collection of custom Maven plugins such as helm-maven-plugin, ci-file-generator, and their associated custom configuration formats. Moving to a set of well-maintained, publicly available, and stable tools and standard configuration specification formats will make it easier for developers and DevOps engineers to define, maintain, and troubleshoot Kubernetes-based applications.

Use of Consul for managing non-sensitive application environment variables is being discontinued in favor of Kubernetes ConfigMaps generated via Kustomize’s built in configMapGenerator, making it easier to specify deployment environment-specific values.

Please see the below pages for more details on the changes.