DevOps and Development Tiles

This page documents tiles that provide development workflow automation and operational tooling for NGSS projects.

Development Workflow Automation

skaffold-tile

Provides comprehensive Kubernetes development workflow with Skaffold integration.

Purpose

Manages Skaffold lifecycle for Kubernetes development, deployment, and integration testing with hot reloading capabilities.

Features
  • Skaffold lifecycle management for Kubernetes development

  • Multiple development and integration profiles

  • Integration with JaCoCo for test coverage in containerized environments

  • Hot reloading support with Spring Boot DevTools

  • Integration test orchestration

Key Capabilities
  • Development Workflow: Local Kubernetes development with hot reloading

  • Integration Testing: Orchestrates integration tests in Kubernetes environments

  • Coverage Collection: Includes JaCoCo integration test configurations (absorbed from deprecated jacoco-integration-tests-tile)

  • Multi-Profile Support: Different profiles for various development and CI scenarios

Profile Support
  • skaffold-dev: Local development with hot reloading

  • skaffold-integration: Integration testing orchestration

  • with-skaffold: Skaffold-enabled builds

  • jenkins: CI/CD integration with Jenkins pipelines

Integration Test Features
  • JaCoCo agent configuration for containerized tests

  • Remote coverage data collection from Kubernetes pods

  • Coverage dumping and reporting for services running in containers

  • Spring Boot DevTools integration for development efficiency

Usage
  • Essential for modern Kubernetes-based development workflows

  • Recommended for services requiring integration testing in Kubernetes

  • Ideal for teams using Skaffold for local development

Dependencies
  • Integrates with container build tiles (jib-maven-plugin-tile, docker-maven-plugin-tile)

  • Works with generated Skaffold configurations from filegen-tile

Process Automation

vv-automation-tile

Automates Vulnerability and Version (V&V) management and documentation.

Purpose

Generates V&V YAML files for vulnerability scanning, version management, and compliance tracking.

Features
  • Automated V&V YAML file generation using ngss-filegen-maven-plugin

  • Vulnerability tracking and documentation

  • Version management automation

  • Integration with NGSS compliance processes

Plugin Configuration
  • Uses ngss-filegen-maven-plugin for file generation

  • Executes during Maven build lifecycle

  • Generates standardized V&V documentation

Generated Artifacts
  • V&V YAML files for vulnerability tracking

  • Version management documentation

  • Compliance tracking files

  • Security scanning integration files

Usage
  • Required for services that must comply with NGSS security and compliance requirements

  • Essential for vulnerability management processes

  • Integrates with security scanning pipelines

Integration Points
  • Works with filegen-tile for comprehensive file generation

  • Integrates with CI/CD pipelines for automated compliance

  • Supports security scanning workflows

Development Workflow Selection Guide

Use skaffold-tile when: - Developing with Kubernetes locally - Need integration testing in containerized environments - Want hot reloading and rapid development cycles - Require JaCoCo coverage from containerized integration tests - Working with modern microservice architectures

Use vv-automation-tile when: - Need automated vulnerability and version tracking - Must comply with NGSS security requirements - Want automated compliance documentation - Integrating with security scanning processes

Modern Development Workflow

The recommended modern NGSS development workflow combines:

Core Development Stack: - jib-maven-plugin-tile: Efficient container builds - skaffold-tile: Kubernetes development workflow - filegen-tile: Automated configuration generation - backstage-tile: Developer portal integration

Example Configuration:

<tiles>
    <tile>gov.va.mobile.tools.maven:jib-maven-plugin-tile:${ngss-tiles.version}</tile>
    <tile>gov.va.mobile.tools.maven:skaffold-tile:${ngss-tiles.version}</tile>
    <tile>gov.va.mobile.tools.maven:filegen-tile:${ngss-tiles.version}</tile>
    <tile>gov.va.mobile.tools.maven:vv-automation-tile:${ngss-tiles.version}</tile>
    <tile>gov.va.mobile.tools.maven:backstage-tile:${ngss-tiles.version}</tile>
</tiles>

Development Benefits: - Hot reloading for rapid development - Integrated testing in Kubernetes - Automated configuration generation - Comprehensive coverage collection - Developer portal integration - Security and compliance automation

Migration from Legacy Workflows

From Helm-based workflows: - Replace helm-tile with skaffold-tile for modern Kubernetes development - skaffold-tile provides superior development experience with hot reloading - Integration testing capabilities are maintained and enhanced

From separate JaCoCo integration testing: - skaffold-tile includes JaCoCo integration test configurations - No longer need separate jacoco-integration-tests-tile - Simplified configuration with better Kubernetes integration