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-tilefunctionality -
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-tileand 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:
-
JaCoCo Integration Tests: The integration test coverage requires a running service instance
-
Service Dependencies: Integration tests need databases, messaging systems, and other dependencies
-
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-tilewhen 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>