Skip to content

add basedomain to each product#66

Merged
stevenolen merged 2 commits intomainfrom
feature-per-product-domain
Feb 3, 2026
Merged

add basedomain to each product#66
stevenolen merged 2 commits intomainfrom
feature-per-product-domain

Conversation

@stevenolen
Copy link
Collaborator

enables full differences between products without requiring full url specification. not sure it is the best path, but it keeps backwards compat with the existing prefix tooling and implementers don't have to deal with use cases where some fields are ignored.

enables full differences between products without requiring full url specification.
not sure it is the best path, but it keeps backwards compat with the existing prefix tooling and implementers don't have to deal with use cases where some fields are ignored.
@claude
Copy link

claude bot commented Feb 3, 2026

Claude finished @stevenolen's task —— View job


Reviewing PR #66: add basedomain to each product

  • Read review guidelines
  • Get PR diff and understand changes
  • Review API changes
  • Review controller changes
  • Review flightdeck changes
  • Review tests
  • Submit review

Review submitted. Key findings:

  • Well-structured change maintaining backward compatibility
  • Comprehensive test coverage
  • One code duplication to consider (getEffectiveBaseDomain in both flightdeck and controller)
  • Optional: Add hostname validation to the API field

Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Overall, this is a well-structured change that maintains backward compatibility while enabling per-product domain configuration. The tests are comprehensive and cover the key scenarios.

API Changes (api/core/v1beta1/site_types.go)

  • ✅ Kubebuilder annotations are correct (+optional)
  • ✅ Sensible defaults (empty string falls back to site.Spec.Domain)
  • ✅ No breaking changes - backward compatible
  • Suggestion: Consider adding hostname format validation via kubebuilder annotations (e.g., +kubebuilder:validation:Pattern) to catch invalid domain values early.

Controller Changes (internal/controller/core/site_controller.go)

  • ✅ Reconciliation remains idempotent
  • ✅ Config flows correctly from Site -> Product
  • ✅ The getEffectiveBaseDomain helper is clear and simple

Flightdeck (flightdeck/html/home.go)

  • ✅ Go templates render correctly with the new logic
  • Important: getEffectiveBaseDomain is duplicated in both flightdeck/html/home.go:12-17 and internal/controller/core/site_controller.go:92-97. Consider extracting to a shared utility package to avoid duplication.

Tests (internal/controller/core/site_test.go)

  • ✅ Comprehensive coverage of key scenarios:
    • BaseDomain not set (backward compatibility)
    • Single product with BaseDomain
    • All products with BaseDomain
    • Custom prefix with BaseDomain
  • ✅ Verifies DefaultRSConnectServer correctly uses Connect's BaseDomain

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks like it should belong to a different pr, it was created with make helm-generate though, which is needed for this pr.

Copy link
Contributor

@timtalbot timtalbot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weird that the auth proxy shows up here but to your point if generate is making that change then it's expected elsewhere 👍

@stevenolen stevenolen merged commit 49e0229 into main Feb 3, 2026
4 checks passed
@stevenolen stevenolen deleted the feature-per-product-domain branch February 3, 2026 18:48
ian-flores added a commit that referenced this pull request Feb 4, 2026
Adds a GitHub Action that validates PR titles follow conventional
commit format (feat:, fix:, docs:, etc.). This ensures squash merges
produce commits that semantic-release can analyze for version bumps.

Required because semantic-release was skipping releases when commits
didn't follow the convention (e.g., PR #66's "fix tests" instead of
"fix: tests").
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.

2 participants