Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
a29bbcd
Bump cortex chart appVersions to sha-2c7ae897 [skip ci]
github-actions[bot] May 4, 2026
3234e85
Move bundle-specific RBAC templates into bundle charts (#797)
PhilippMatthes May 5, 2026
a53b56e
Fix postgres resource references in Tiltfile
PhilippMatthes May 5, 2026
7ec8270
Bump cortex chart appVersions to sha-a53b56e2 [skip ci]
github-actions[bot] May 5, 2026
33cb060
Move webhook templates from library chart to cortex-nova (#798)
PhilippMatthes May 5, 2026
b4f040a
Bump cortex chart appVersions to sha-33cb060c [skip ci]
github-actions[bot] May 5, 2026
af3ba9e
Don't alert on 'no such host' errors during nova scheduling
PhilippMatthes May 5, 2026
e8319ab
Bump cortex chart appVersions to sha-af3ba9e7 [skip ci]
github-actions[bot] May 5, 2026
a808d68
Remove testlib.Ptr and replace with native new() (#801)
PhilippMatthes May 5, 2026
9123891
Bump cortex chart appVersions to sha-a808d689 [skip ci]
github-actions[bot] May 5, 2026
7883765
feat: add domain_id and name to vmware project capacity metrics (#802)
SoWieMarkus May 6, 2026
77e804c
Bump cortex chart appVersions to sha-78837653 [skip ci]
github-actions[bot] May 6, 2026
b22689a
Rename hypervisor ClusterRoleBindings to avoid roleRef conflict (#804)
PhilippMatthes May 6, 2026
f17d745
fix: add identity-domains to KPI dependencies
SoWieMarkus May 6, 2026
bed9f9a
Bump cortex chart appVersions to sha-f17d7454 [skip ci]
github-actions[bot] May 6, 2026
e239d66
Revert moving webhook templates out of library chart (#805)
PhilippMatthes May 6, 2026
e62e018
Bump cortex chart appVersions to sha-e239d66e [skip ci]
github-actions[bot] May 6, 2026
f13348e
feat: add kvm project usage metrics (#803)
SoWieMarkus May 6, 2026
f86777e
Bump cortex chart appVersions to sha-f13348ed [skip ci]
github-actions[bot] May 6, 2026
f001f49
Add weighing explainer for scheduling decisions (#808)
PhilippMatthes May 6, 2026
04ca7b8
Bump cortex chart appVersions to sha-f001f49c [skip ci]
github-actions[bot] May 6, 2026
569aabc
feat: vmware project commitment kpi include domain_id (#806)
SoWieMarkus May 6, 2026
3e67807
Bump cortex chart appVersions to sha-569aabc0 [skip ci]
github-actions[bot] May 6, 2026
d7cacd0
refactor: move kvm host capacity metric in infrastructure package (#809)
SoWieMarkus May 6, 2026
d62a248
refactor: remove deprecated infrastructure kpis (#807)
SoWieMarkus May 6, 2026
1d90000
Bump cortex chart appVersions to sha-d62a2485 [skip ci]
github-actions[bot] May 6, 2026
f36c5b6
feat: Add KVM OS version as label to host metrics (#810)
SoWieMarkus May 7, 2026
bb551d2
Bump cortex chart appVersions to sha-f36c5b60 [skip ci]
github-actions[bot] May 7, 2026
fa9f5b6
Re-enable claude workflows
PhilippMatthes May 7, 2026
e1444fd
feat: Add FlavorGroupCapacity CRD and Capacity Controller (#728)
juliusclausnitzer May 7, 2026
9c7c4b2
feat: report capacity from FlavorGroupCapacity CRDs
juliusclausnitzer May 7, 2026
0f1c9b4
Bump cortex chart appVersions to sha-9c7c4b20 [skip ci]
github-actions[bot] May 7, 2026
08d7cd6
feat: CR usage controller - moving CR usage calculation into CRD stat…
mblos May 7, 2026
d2549a1
Use correct reference in claude workflows
PhilippMatthes May 7, 2026
f15ddab
Bump cortex chart appVersions to sha-d2549a1e [skip ci]
github-actions[bot] May 7, 2026
3a9d238
Downgrade Python to 3.13 for claude-code-action setup (#811)
PhilippMatthes May 7, 2026
c0b46f8
Bump cortex chart appVersions to sha-3a9d2384 [skip ci]
github-actions[bot] May 7, 2026
bab3199
fix: Remove ignoreAllocations from kvm-report-capacity pipeline (#812)
juliusclausnitzer May 7, 2026
07ac4e3
Bump cortex chart appVersions to sha-bab31994 [skip ci]
github-actions[bot] May 7, 2026
7d1745d
feat: Qutoa add CRD and calc payg (#796)
umswmayj May 7, 2026
9857c19
Bump cortex chart appVersions to sha-7d1745d8 [skip ci]
github-actions[bot] May 7, 2026
461a091
docs: add CHANGELOG entry for 2026-05-07 release (#814)
github-actions[bot] May 7, 2026
b8cecd0
fix: CR syncer (#813)
mblos May 7, 2026
4179c34
Bump cortex chart appVersions to sha-b8cecd0c [skip ci]
github-actions[bot] May 7, 2026
f9c27d0
Use max effort for claude actions
PhilippMatthes May 7, 2026
658c347
Update version in changelog for release [skip ci] (#815)
mblos May 7, 2026
91f4f05
Bump cortex chart appVersions to sha-f9c27d07 [skip ci]
github-actions[bot] May 7, 2026
8f26298
Bump core to v0.0.47 and bundle to v0.0.60 [skip ci]
PhilippMatthes May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/setup-claude-code-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.14"
python-version: "3.13"

- name: Install LiteLLM dependencies
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
],
"commitMessageAction": "Renovate: Update",
"constraints": {
"go": "1.26"
"go": "1.26",
"python": "3.13"
},
"dependencyDashboardOSVVulnerabilitySummary": "all",
"osvVulnerabilityAlerts": true,
Expand Down
21 changes: 8 additions & 13 deletions .github/workflows/claude-assistant.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
# NOTE: This workflow is temporarily disabled.
# We need to determine a compliant approach for passing AI Core credentials
# and whether utilizing the SAP AI Core Proxy is a viable and compliant option.
# Until this is resolved, no AI Core credentials are configured and no
# communication with AI Core takes place.

name: Claude Code Assistant on Issues and PRs

on:
Expand All @@ -18,7 +12,6 @@ on:

jobs:
check-allowlist:
if: false # Temporarily disabled
runs-on: ubuntu-latest
outputs:
allowed: ${{ steps.check.outputs.allowed }}
Expand All @@ -38,7 +31,6 @@ jobs:

claude:
needs: check-allowlist
if: false # Temporarily disabled
runs-on: ubuntu-latest
permissions:
contents: write
Expand All @@ -52,29 +44,32 @@ jobs:
uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'

- name: Generate GitHub App token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.CORTEX_AI_AGENTS_APP_ID }}
private-key: ${{ secrets.CORTEX_AI_AGENTS_CLIENT_PKEY }}
- uses: ./.github/actions/setup-claude-code-action

- uses: ./.github/actions/start-litellm-proxy
env:
AICORE_RESOURCE_GROUP: ${{ secrets.AICORE_RESOURCE_GROUP }}
AICORE_BASE_URL: ${{ secrets.AICORE_BASE_URL }}
AICORE_AUTH_URL: ${{ secrets.AICORE_AUTH_URL }}
AICORE_CLIENT_ID: ${{ secrets.AICORE_CLIENT_ID }}
AICORE_CLIENT_SECRET: ${{ secrets.AICORE_CLIENT_SECRET }}

- uses: ./.claude-code-action
with:
claude_args: |
--max-turns 1000
--permission-mode auto
--effort-level max
--allowedTools "Read,Write,Edit,Bash(*),WebSearch,WebFetch"
trigger_phrase: "@claude"
include_comments_by_actor: "auhlig,umswmayj,juliusclausnitzer,mblos,PhilippMatthes,Varsius,henrichter,SoWieMarkus,*[bot]"
use_litellm: "true"
litellm_model: "sap/anthropic--claude-4.6-opus"
github_token: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ steps.app-token.outputs.token }}
show_full_output: "true"

- uses: ./.github/actions/stop-litellm-proxy
if: always()
52 changes: 0 additions & 52 deletions .github/workflows/claude-release.yaml

This file was deleted.

74 changes: 0 additions & 74 deletions .github/workflows/claude-review.yaml

This file was deleted.

20 changes: 8 additions & 12 deletions .github/workflows/claude-weekly.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
# NOTE: This workflow is temporarily disabled.
# We need to determine a compliant approach for passing AI Core credentials
# and whether utilizing the SAP AI Core Proxy is a viable and compliant option.
# Until this is resolved, no AI Core credentials are configured and no
# communication with AI Core takes place.

name: Weekly Claude Code Repo Analysis and Grooming

on:
Expand All @@ -13,7 +7,6 @@ on:

jobs:
claude:
if: false # Temporarily disabled
runs-on: ubuntu-latest
permissions:
contents: write
Expand All @@ -26,28 +19,31 @@ jobs:
uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'

- name: Generate GitHub App token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.CORTEX_AI_AGENTS_APP_ID }}
private-key: ${{ secrets.CORTEX_AI_AGENTS_CLIENT_PKEY }}
- uses: ./.github/actions/setup-claude-code-action

- uses: ./.github/actions/start-litellm-proxy
env:
AICORE_RESOURCE_GROUP: ${{ secrets.AICORE_RESOURCE_GROUP }}
AICORE_BASE_URL: ${{ secrets.AICORE_BASE_URL }}
AICORE_AUTH_URL: ${{ secrets.AICORE_AUTH_URL }}
AICORE_CLIENT_ID: ${{ secrets.AICORE_CLIENT_ID }}
AICORE_CLIENT_SECRET: ${{ secrets.AICORE_CLIENT_SECRET }}

- uses: ./.claude-code-action
with:
prompt: "/weekly"
claude_args: |
--max-turns 1000
--permission-mode auto
--effort-level max
--allowedTools "Read,Write,Edit,Bash(*),WebSearch,WebFetch"
use_litellm: "true"
litellm_model: "sap/anthropic--claude-4.6-opus"
github_token: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ steps.app-token.outputs.token }}
show_full_output: "true"

- uses: ./.github/actions/stop-litellm-proxy
if: always()
1 change: 0 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ General:
- You can use `maps.Copy` instead of iteratively copying a map
- You can use `strings.Contains` to check if some string is in another
- You can use `slices.Contains` to check if an element is part of a slice
- And definitely use `testlib.Ptr` for test cases that require pointer values

Testing:
- Ideally test files should be short and contain only the necessary cases
Expand Down
34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog

## 2026-05-07 — [#814](https://github.com/cobaltcore-dev/cortex/pull/814)

### cortex v0.0.47 (sha-b8cecd0c)

Non-breaking changes:
- Add `ProjectQuota` CRD with per-resource, per-AZ quota breakdown and PAYG (pay-as-you-go) calculation support ([#796](https://github.com/cobaltcore-dev/cortex/pull/796))
- Add `FlavorGroupCapacity` CRD and background capacity controller that pre-computes per-flavor VM slot capacity for each (flavor group × AZ) pair on a configurable interval ([#728](https://github.com/cobaltcore-dev/cortex/pull/728))
- Report capacity from `FlavorGroupCapacity` CRDs in `POST /commitments/v1/report-capacity` — replaces placeholder zeros with real values; stale CRDs report last-known capacity
- Move CommittedResource usage computation from the API handler into a dedicated reconciler that persists results in CRD status, making usage data available to both the LIQUID API and quota controller ([#800](https://github.com/cobaltcore-dev/cortex/pull/800))
- Add KVM OS version as a label to KVM host capacity metrics ([#810](https://github.com/cobaltcore-dev/cortex/pull/810))
- Add KVM project usage metrics (running VMs and resource usage per project/flavor) ([#803](https://github.com/cobaltcore-dev/cortex/pull/803))
- Add `domain_id` and name to vmware project capacity metrics ([#802](https://github.com/cobaltcore-dev/cortex/pull/802))
- Include `domain_id` in vmware project commitment KPI ([#806](https://github.com/cobaltcore-dev/cortex/pull/806))
- Add weighing explainer for scheduling decisions, surfacing per-host scoring rationale ([#808](https://github.com/cobaltcore-dev/cortex/pull/808))
- Move KVM host capacity metric into infrastructure plugins package ([#809](https://github.com/cobaltcore-dev/cortex/pull/809))
- Remove deprecated per-compute infrastructure KPIs (`flavor_running_vms`, `host_running_vms`, `resource_capacity_kvm`) ([#807](https://github.com/cobaltcore-dev/cortex/pull/807))
- Rename hypervisor `ClusterRoleBinding` objects to avoid `roleRef` conflicts on redeploy ([#804](https://github.com/cobaltcore-dev/cortex/pull/804))
- Move bundle-specific RBAC templates from the library chart into individual bundle charts (`cortex-ironcore`, `cortex-pods`) ([#797](https://github.com/cobaltcore-dev/cortex/pull/797))
- Move webhook templates from library chart back into `cortex-nova` bundle (reverts earlier move) ([#805](https://github.com/cobaltcore-dev/cortex/pull/805))
- Fix: add `identity-domains` as a KPI dependency
- Fix: remove `ignoreAllocations` from kvm-report-capacity pipeline to unblock deployment against older admission webhook ([#812](https://github.com/cobaltcore-dev/cortex/pull/812))
- Fix: suppress nova scheduling alerts on transient `no such host` DNS errors
- Replace `testlib.Ptr` helper with native `new()` across test files ([#801](https://github.com/cobaltcore-dev/cortex/pull/801))

### cortex-nova v0.0.60 (sha-b8cecd0c)

Includes updated chart cortex v0.0.47.

Non-breaking changes:
- Add Prometheus datasource for KVM project usage metrics
- Add KVM project usage KPI CRD templates
- Add KVM project utilization KPI CRD templates
- Update `cortex-nova` RBAC to grant permissions for `FlavorGroupCapacity` and `ProjectQuota` CRDs

## 2026-05-04 — [#793](https://github.com/cobaltcore-dev/cortex/pull/793)

### cortex v0.0.46 (sha-ab6eb45d)
Expand Down
6 changes: 3 additions & 3 deletions Tiltfile
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ k8s_yaml(helm('./helm/bundles/cortex-crds', name='cortex-crds', set=crd_extra_va
if 'nova' in ACTIVE_DEPLOYMENTS:
print("Activating Cortex Nova bundle")
k8s_yaml(helm('./helm/bundles/cortex-nova', name='cortex-nova', values=tilt_values, set=env_set_overrides))
k8s_resource('cortex-nova-postgresql', labels=['Cortex-Nova'], port_forwards=[
k8s_resource('cortex-nova-postgresql-v18', labels=['Cortex-Nova'], port_forwards=[
port_forward(8000, 5432),
])
k8s_resource('cortex-nova-scheduling-controller-manager', labels=['Cortex-Nova'], port_forwards=[
Expand All @@ -221,7 +221,7 @@ if 'nova' in ACTIVE_DEPLOYMENTS:
if 'manila' in ACTIVE_DEPLOYMENTS:
print("Activating Cortex Manila bundle")
k8s_yaml(helm('./helm/bundles/cortex-manila', name='cortex-manila', values=tilt_values, set=env_set_overrides))
k8s_resource('cortex-manila-postgresql', labels=['Cortex-Manila'], port_forwards=[
k8s_resource('cortex-manila-postgresql-v18', labels=['Cortex-Manila'], port_forwards=[
port_forward(8002, 5432),
])
k8s_resource('cortex-manila-scheduling-controller-manager', labels=['Cortex-Manila'], port_forwards=[
Expand All @@ -238,7 +238,7 @@ if 'manila' in ACTIVE_DEPLOYMENTS:

if 'cinder' in ACTIVE_DEPLOYMENTS:
k8s_yaml(helm('./helm/bundles/cortex-cinder', name='cortex-cinder', values=tilt_values, set=env_set_overrides))
k8s_resource('cortex-cinder-postgresql', labels=['Cortex-Cinder'], port_forwards=[
k8s_resource('cortex-cinder-postgresql-v18', labels=['Cortex-Cinder'], port_forwards=[
port_forward(8004, 5432),
])
k8s_resource('cortex-cinder-scheduling-controller-manager', labels=['Cortex-Cinder'], port_forwards=[
Expand Down
Loading
Loading