Skip to content

Support for slim-api, ctsm model & fixes#137

Merged
spl-arif merged 6 commits into
ai-tier-gafrom
aitk-on-aitier-ga
Jul 23, 2026
Merged

Support for slim-api, ctsm model & fixes#137
spl-arif merged 6 commits into
ai-tier-gafrom
aitk-on-aitier-ga

Conversation

@spl-arif

Copy link
Copy Markdown
Collaborator

Description

Related Issues

  • Related to #

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test improvement
  • CI/CD improvement
  • Chore (dependency updates, etc.)

Changes Made

Testing Performed

  • Unit tests pass (make test)
  • Linting passes (make lint)
  • Integration tests pass (if applicable)
  • E2E tests pass (if applicable)
  • Manual testing performed

Test Environment

  • Kubernetes Version:
  • Cloud Provider:
  • Deployment Method:

Test Steps

Documentation

  • Updated inline code comments
  • Updated README.md (if adding features)
  • Updated API documentation
  • Updated deployment guides
  • Updated CHANGELOG.md
  • No documentation needed

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published
  • I have updated the Helm chart version (if applicable)
  • I have updated CRD schemas (if applicable)

Breaking Changes

Impact:

Migration Path:

Screenshots/Recordings

Additional Notes

Reviewer Notes

Please pay special attention to:


Commit Message Convention: This PR follows Conventional Commits

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24cd764edb

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread pkg/ai/features/slim/impl.go
Comment thread pkg/ai/features/slim/impl.go
Comment thread config/configs/features/slim.yaml Outdated
Comment thread pkg/ai/features/slim/impl.go Outdated
Comment thread pkg/ai/features/slim/impl.go Outdated
Comment thread config/configs/features/slim.yaml
spl-arif and others added 3 commits July 23, 2026 16:02
…ternal mode

Splunk's oauth2_settings.issuer_uri (the JWT "iss" claim on every interactive
token) was hardcoded to a literal string decoupled from
splunkConfiguration.endpoint, which feeds SPLUNK_ISSUERS on saia/slim via
buildSplunkIssuersVal. The two also differed in scheme (http vs https) and
service name (missing the Splunk Operator's own "splunk-" prefix), so CMP
auth rejected every real token with "Issuer not allowed"/"Malformed JWT" and
AI Tier's refresh_models silently returned no models.

Both values now derive from AI_STANDALONE_NAME/AI_NS and match byte-for-byte
in the https://splunk-<name>-standalone-service.<ns>.svc.<domain>:8089 form
already used by the operator's SplunkCustomResourceRef path. Verified live:
minted a real interactive JWT and confirmed slim-api's chat/models endpoint
now returns models end-to-end.

Co-Authored-By: Claude <noreply@anthropic.com>
- Split the metrics port into a dedicated internal-only ClusterIP Service
  (reconcileSlimMetricsService) so NodePort/LoadBalancer public exposure
  never publishes /metrics or allocates an extra NodePort for it. The new
  Service carries the "component" label so the existing ServiceMonitor
  selector (app+component) actually matches it.
- Fix reconcileSlimService to set Type/Ports/Selector inside the
  CreateOrUpdate mutate callback instead of before it, since CreateOrUpdate
  reloads the live Service first and was discarding the templated NodePort
  on both create and update.
- Honor AIPlatformScheme when synthesizing AIPlatformUrl instead of
  hardcoding http://, so HTTPS-only Ray endpoints work.
- Populate slim.yaml's instanceScale for all GPU tiers so slim-only
  AIPlatforms (saia disabled) actually get GPU worker replicas to schedule
  the FmTimeseries model on.
- Guard the SAIA application blocks in applications.yaml with
  {{- if .Replicas.X }} so slim-only platforms don't render SAIA templates
  referencing replica counts that were never set (avoiding <no value>
  Go-template output in the rendered Ray Serve config).

Co-Authored-By: Claude <noreply@anthropic.com>
artifacts.yaml's CRD schema still only allowed "saia" or "seca" for
features[].name, so applying an AIPlatform/AIService CR with the slim
feature enabled was rejected by API server validation. Add "slim" to both
enums.

Co-Authored-By: Claude <noreply@anthropic.com>
@spl-arif
spl-arif requested review from kbhos-splunk and removed request for vvarshney-splunk July 23, 2026 10:40
@spl-arif
spl-arif merged commit 9cbdf85 into ai-tier-ga Jul 23, 2026
1 check passed
spl-arif added a commit that referenced this pull request Jul 23, 2026
- Split the metrics port into a dedicated internal-only ClusterIP Service
  (reconcileSlimMetricsService) so NodePort/LoadBalancer public exposure
  never publishes /metrics or allocates an extra NodePort for it. The new
  Service carries the "component" label so the existing ServiceMonitor
  selector (app+component) actually matches it.
- Fix reconcileSlimService to set Type/Ports/Selector inside the
  CreateOrUpdate mutate callback instead of before it, since CreateOrUpdate
  reloads the live Service first and was discarding the templated NodePort
  on both create and update.
- Honor AIPlatformScheme when synthesizing AIPlatformUrl instead of
  hardcoding http://, so HTTPS-only Ray endpoints work.
- Populate slim.yaml's instanceScale for all GPU tiers so slim-only
  AIPlatforms (saia disabled) actually get GPU worker replicas to schedule
  the FmTimeseries model on.
- Guard the SAIA application blocks in applications.yaml with
  {{- if .Replicas.X }} so slim-only platforms don't render SAIA templates
  referencing replica counts that were never set (avoiding <no value>
  Go-template output in the rendered Ray Serve config).

Co-Authored-By: Claude <noreply@anthropic.com>
@spl-arif
spl-arif deleted the aitk-on-aitier-ga branch July 23, 2026 10:43
@spl-arif
spl-arif restored the aitk-on-aitier-ga branch July 23, 2026 10:43
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