Skip to content

🤖 Fix for issue #168: Support httpHeaders in health probe configuration (readinessProbe/startupProbe)#170

Merged
smecsia merged 4 commits intomainfrom
simple-forge/issue-168-support-httpheaders-in-health-tb2lry
Feb 28, 2026
Merged

🤖 Fix for issue #168: Support httpHeaders in health probe configuration (readinessProbe/startupProbe)#170
smecsia merged 4 commits intomainfrom
simple-forge/issue-168-support-httpheaders-in-health-tb2lry

Conversation

@simple-container-forge
Copy link
Contributor

Summary

This pull request addresses issue #168.

Changes Made

📝 Execution Summary:
I've processed the issue and made the following changes:

I'll analyze the codebase to understand the issue and create the necessary design documentation for supporting httpHeaders in health probe configuration.

Let me start by exploring the repository structure and understanding the current health probe implementation.

Now let me search for more information about the Kubernetes probe structure and check the issue details:

Let me look for the original issue context:

Let me check the context.json for more detailed information about the issue:

Based on the issue title and the codebase analysis, I now understand the requirement. Let me check the Kubernetes HTTPGet probe structure to understand what needs to be added:

Now let me check the Pulumi Kubernetes provider's HTTPGetActionArgs structure to understand what fields are available:

Now I have enough information to create the design documentation. Let me create the directory structure and design documents:

Now let me create the handoff JSON and write it to both locations:

Let me verify the handoff files were created correctly:

Perfect! Both handoff files have been created successfully. Let me verify the directory structure:

Excellent! All files have been created. Let me provide the final response with the backup handoff JSON:

Software Architect Role Complete

I have successfully completed the architectural design for Issue #168: Support httpHeaders in health probe configuration (readinessProbe/startupProbe).

Deliverables Created

  1. Design Document: docs/design/2026-02-26/health-probe-http-headers/design.md
  • Comprehensive 13KB architectural design document
  • Covers data model changes, Kubernetes integration, validation rules
  • Includes detailed configuration examples and testing strategy
  • Documents backward compatibility guarantees
  1. Handoff JSON (written to both locations):
  • docs/design/2026-02-26/health-probe-http-headers/handoff.json (persistent fallback)
  • .forge-workspace/handoff.json (primary delivery via API)

Design Summary

The design adds HTTP headers support to health probes through:

Data Model Changes:

  • New HTTPHeader type with Name and Value fields
  • Extended ProbeHttpGet with optional HTTPHeaders []HTTPHeader field
  • Uses omitempty tags for backward compatibility

Implementation Approach:

  • Modify toProbeArgs() function in pkg/clouds/pulumi/kubernetes/deployment.go
  • Convert headers to Kubernetes corev1.HTTPHeaderArray format
  • Only set headers when specified (preserves current behavior)

Key Features:

  • 100% backward compatible - existing configs work without changes
  • Supports authentication tokens, host headers, custom identifiers
  • Validates header names and values
  • Comprehensive examples and documentation

Scope Group: Single sequential workflow (health-probe-http-headers)

  • All implementation phases touch the same codebase area (Kubernetes probe handling)
  • Logical ordering: types → conversion logic → tests → docs

[Content truncated - full details available in workflow logs]

Related Issue

Closes #168


This PR was automatically created by Simple Forge

Generated by simple-forge workflow
Job ID: 28aef40d-c4c4-4ff3-9cfd-0011b464c0c3
Workflow: https://github.com/simple-container-com/api/actions/runs/22457635979
Generated by simple-forge workflow
Job ID: 0a78f96b-340f-4828-8e57-d467cd30883d
Workflow: https://github.com/simple-container-com/api/actions/runs/22457913327
@universe-ops
Copy link
Contributor

@forge

2026-02-27T14:21:25make [api] [linters]pkg/clouds/k8s/types.go:129:1: File is not properly formatted (gci)

Please run welder run fmt to ensure proper formatting is applied

Generated by simple-forge workflow
Job ID: 802bf524-160e-48f4-a53f-ef84988ec750
Workflow: https://github.com/simple-container-com/api/actions/runs/22496592920
@simple-container-forge
Copy link
Contributor Author

Workflow Completed Successfully!

Great news! The Simple Forge has successfully processed your request.

📋 Job Details:

📝 Execution Summary:
I've processed the issue and made the following changes:

I'll help you fix the formatting issue in the codebase. Let me start by examining the current state of the file that needs formatting.

Now I can see the file. The error indicates that the file is not properly formatted according to the gci linter, which checks for proper import grouping and ordering. Looking at the imports section (lines 3-16), I can see they're grouped but may need to be reformatted. Let me run the formatting command as suggested:

The welder run fmt command failed because the gofumpt binary is missing. Let me try to run the specific formatter directly using gci since that's what the error message mentions:

Perfect! Now let me verify the changes were applied:

Excellent! The file has been properly formatted. The imports are now grouped correctly:

  1. Standard library imports (lines 4-8)
  2. Local project imports (lines 10-11)
  3. Third-party imports (lines 13-15)

Let me verify that the formatting is now correct by running gci in check mode:

Perfect! No diff output means the file is now properly formatted. Let me also run a quick check to ensure there are no syntax errors:

Excellent! The file has been successfully formatted. Let me create a summary of the changes:

Summary

I've successfully fixed the formatting issue in pkg/clouds/k8s/types.go as reported by the linter. The problem was with improper import grouping according to the gci linter standards.

Changes Made:

File: pkg/clouds/k8s/types.go

The import section (lines 3-16) was reformatted to follow proper Go import ordering:

  1. Standard library imports - sorted and grouped together
  2. Local project imports (github.com/simple-container-com/api/*) - grouped together
  3. Third-party imports - grouped together

Before:

import (
"fmt"
"math"
"strconv"
"strings"
"time"

"github.com/compose-spec/compose-go/types"
"github.com/pkg/errors"
"github.com/samber/lo"

"github.com/simple-container-com/api/pkg/api"
"github.com/simple-container-com/api/pkg/clouds/compose"
)

After:

import (
"fmt"
"math"
"strconv"
"strings"
"time"

"github.com/simple-container-com/api/pkg/api"
"github.com/simple-container-com/api/pkg/clouds/compose"

"github.com/compose-spec/compose-go/types"
"github.com/pkg/errors"
"github.com/samber/lo"
)

The file is now properly formatted and should pass the gci linter checks. The change is purely cosmetic and doesn't affect any functionality - it only reorganizes the imports to follow the project's formatting standards.

Changes have been committed to branch simple-forge/issue-168-support-httpheaders-in-health-tb2lry.

🎉 Next Steps:

  • Review the changes in the Pull Request #170
  • Test the implementation
  • Merge the pull request when ready

Feel free to ask for any modifications or improvements!

Generated by simple-forge workflow
Job ID: 82f1d67a-8114-4fa9-9c9d-f5d2d4430196
Workflow: https://github.com/simple-container-com/api/actions/runs/22496793630
@smecsia smecsia merged commit a336188 into main Feb 28, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support httpHeaders in health probe configuration (readinessProbe/startupProbe)

3 participants