DevOps and Deployment Tiles

This page documents tiles that provide CI/CD integration, deployment automation, and operational tooling for NGSS projects.

CI/CD Pipeline Tiles

jenkinsfile-generator-tile

Automatically generates Jenkinsfiles for CI/CD pipeline execution.

Purpose

Creates standardized Jenkins pipeline configurations that follow NGSS build and deployment practices.

Features
  • Automated Jenkinsfile generation based on project metadata

  • NGSS-standard pipeline stages (build, test, security scan, deploy)

  • Multi-environment deployment support

  • Integration with NGSS deployment infrastructure

  • Build artifact management

Generated Pipeline Stages
  • Source code checkout

  • Maven build and test execution

  • Code quality analysis and security scanning

  • Container image building and pushing

  • Deployment to staging environments

  • Integration testing

  • Production deployment (with approvals)

Usage

Automatically generates CI/CD pipelines that integrate with NGSS Jenkins infrastructure.

Kubernetes and Container Orchestration

kubernetes-generator-tile

Generates Kubernetes deployment manifests and configurations.

Purpose

Automatically creates Kubernetes YAML manifests for service deployment based on project metadata and NGSS deployment standards.

Generated Artifacts
  • Deployment manifests

  • Service definitions

  • ConfigMap and Secret templates

  • Ingress configurations

  • Resource limits and requests

  • Health check configurations

Features
  • NGSS-standard Kubernetes configurations

  • Multi-environment support (dev, staging, production)

  • Security best practices implementation

  • Resource management and scaling policies

Usage

Essential for services deployed to NGSS Kubernetes clusters.

helm-tile

Provides comprehensive Helm chart development and deployment capabilities.

Purpose

Enables local development with full service dependencies using Helm charts and Kubernetes.

Key Features
Development Environment
  • Local Kubernetes namespace creation and management

  • Helm chart processing and dependency management

  • Service dependency deployment (databases, messaging, etc.)

  • Integration testing environment setup

Chart Management
  • Helm chart copying and processing

  • Dependency building and resolution

  • Values file templating and environment-specific overrides

  • Chart packaging for deployment

Integration Testing Support
  • Automated service deployment for integration tests

  • JaCoCo agent configuration for coverage collection

  • Test environment lifecycle management

  • Cleanup after test execution

Multi-Environment Profiles
  • local: Development testing with local Docker registry

  • jenkins: CI/CD pipeline integration with remote registries

  • local-override: Custom values file support for local development

Integration with Coverage
  • Enables JaCoCo integration test coverage collection

  • Required dependency for jacoco-integration-tests-tile functionality

  • Provides the running service instance that JaCoCo can connect to

Usage

Essential for services that require integration testing with dependencies or local development environments.

Process Automation Tiles

vv-automation-tile

Automates Verification and Validation (V&V) process documentation and compliance.

Purpose

Generates V&V artifacts required for NGSS compliance and regulatory requirements.

Features
  • Automated V&V documentation generation

  • Test result compilation and reporting

  • Compliance artifact creation

  • Integration with NGSS V&V processes

Generated Artifacts
  • V&V reports and summaries

  • Test coverage documentation

  • Security scan results

  • Compliance checklists

Usage

Required for services that must comply with VA regulatory and V&V requirements.

Development and Operational Support

Tile Interdependencies

Critical Dependency

helm-tile and Integration Testing

Many NGSS projects that use ngss-java-service-build-conventions-tile will encounter build failures if helm-tile is not included. This is because:

  1. JaCoCo Integration Tests: The integration test coverage requires a running service instance

  2. Service Dependencies: Integration tests need databases, messaging systems, and other dependencies

  3. Coverage Collection: JaCoCo agent connects to the running service (typically on port 6300)

    Error Symptoms
[INFO] --- jacoco-maven-plugin:0.8.6:dump (coverage-data) @ service-name ---
[INFO] Connecting to localhost/127.0.0.1:6300
[INFO] Connection refused (Connection refused)
Solution

Include helm-tile when using tiles that require integration testing, or implement alternative integration test infrastructure.

Usage Recommendations

For Standard Java Services
<tiles>
    <tile>gov.va.mobile.tools.maven:ngss-java-service-build-conventions-tile:${version}</tile>
    <tile>gov.va.mobile.tools.maven:helm-tile:${version}</tile>
    <tile>gov.va.mobile.tools.maven:java-11-tile:${version}</tile>
</tiles>
For Services Without Integration Testing
  • Use individual tiles as needed

  • Exclude coverage-related tiles that require running services

  • Consider custom integration test approaches

For Web Applications
<tiles>
    <tile>gov.va.mobile.tools.maven:ngss-service-build-conventions-tile:${version}</tile>
    <tile>gov.va.mobile.tools.maven:web-docker-tile:${version}</tile>
    <tile>gov.va.mobile.tools.maven:kubernetes-generator-tile:${version}</tile>
</tiles>