Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
105bd54
UX fixes for model catalog and hardware configuration table (#1932)
manaswinidas Dec 1, 2025
86d82a9
Ensure deploy_local_kind_registry.sh creates namespaced resources (#1…
dbasunag Dec 2, 2025
8ca3dd2
Status Column on Model Catalog Setting page (#1925)
YuliaKrimerman Dec 2, 2025
62b35ce
Add submit logic to add/manage source form (#1921)
ppadti Dec 2, 2025
2de34d3
fix: sql errors with no models loaded (#1948)
Al-Pragliola Dec 2, 2025
e4381fe
Fix error when catalog source is empty (#1951)
ppadti Dec 2, 2025
1bb7a18
Wired the deletion prop to the bff (#1950)
YuliaKrimerman Dec 2, 2025
d9ebc23
Hide truncate tooltip on the Model Catalog Setting page (#1952)
YuliaKrimerman Dec 2, 2025
a50b1f8
Merge pull request #755 from kubeflow/main
openshift-merge-bot[bot] Dec 2, 2025
8a16325
Show enable toggle even for default catalog sources, auto-expand mode…
mturley Dec 3, 2025
fc497f2
build(deps): bump huggingface-hub from 1.1.5 to 1.1.7 in /clients/pyt…
dependabot[bot] Dec 3, 2025
db1c85c
build(deps-dev): bump types-python-dateutil from 2.9.0.20251108 to 2.…
dependabot[bot] Dec 3, 2025
7b98f52
build(deps): bump olot from 0.1.11 to 0.1.13 in /clients/python (#1940)
dependabot[bot] Dec 3, 2025
a19900f
build(deps-dev): bump ruff from 0.14.6 to 0.14.7 in /clients/python (…
dependabot[bot] Dec 3, 2025
289a42a
build(deps-dev): bump mypy from 1.18.2 to 1.19.0 in /clients/python (…
dependabot[bot] Dec 3, 2025
c1a3fca
build(deps-dev): bump werkzeug from 3.1.3 to 3.1.4 in /clients/python…
dependabot[bot] Dec 3, 2025
d7cf2e9
chore: don't welcome dependabot (#1943)
pboyd Dec 3, 2025
561a2db
build(deps): bump actions/checkout from 5.0.1 to 6.0.0 (#1936)
dependabot[bot] Dec 3, 2025
6771b81
build(deps): bump huggingface-hub from 1.1.5 to 1.1.7 in /jobs/async-…
dependabot[bot] Dec 3, 2025
156b4f9
support hf api model retrieval basic md (#1852)
adysenrothman Dec 3, 2025
b51c100
Add logic to enable/disable toggle (#1923)
ppadti Dec 3, 2025
dbf79f7
fix: keyboard menu bug (#1920)
jenny-s51 Dec 3, 2025
18fc381
feat: merge sources when an user overrides one (#1956)
Al-Pragliola Dec 4, 2025
5d22fa7
Merge pull request #758 from kubeflow/main
openshift-merge-bot[bot] Dec 4, 2025
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
6 changes: 3 additions & 3 deletions .github/workflows/async-upload-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
run:
working-directory: jobs/async-upload
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Set up Python
uses: actions/setup-python@v6
with:
Expand All @@ -66,7 +66,7 @@ jobs:
run:
working-directory: jobs/async-upload
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Set up Python
uses: actions/setup-python@v6
with:
Expand All @@ -89,7 +89,7 @@ jobs:
working-directory: jobs/async-upload
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
with:
fetch-depth: 0
- name: Set up Python
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-async-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-csi-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
if: github.head_ref == '' && github.ref == 'refs/heads/main'
run: echo "BUILD_CONTEXT=main" >> $GITHUB_ENV
# checkout branch
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
if: github.head_ref == '' && github.ref == 'refs/heads/main'
run: echo "BUILD_CONTEXT=main" >> $GITHUB_ENV
# checkout branch
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
# Set up QEMU for multi-architecture builds
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-ui-images-standalone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-ui-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-image-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
build-and-test-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Generate Tag
shell: bash
id: tags
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-image-ui-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout branch
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Build UI Image
shell: bash
run: ./scripts/build_deploy.sh
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
- name: Setup Go
uses: actions/setup-go@v6
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check-db-schema-structs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
check-mysql-schema-structs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Setup Go
uses: actions/setup-go@v6
with:
Expand All @@ -34,7 +34,7 @@ jobs:
check-postgres-schema-structs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Setup Go
uses: actions/setup-go@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-gitattributes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Validate OpenAPI spec
run: ./scripts/gen_gitattributes.sh --check
2 changes: 1 addition & 1 deletion .github/workflows/check-openapi-spec-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Validate OpenAPI spec
run: |
make openapi/validate
2 changes: 1 addition & 1 deletion .github/workflows/controller-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
echo "tag=${tag}" >> $GITHUB_OUTPUT

- name: Clone the code
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Setup Go
uses: actions/setup-go@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/csi-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
build-and-test-csi-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0

- name: Generate tag
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/first-time-contributor-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule Token

jobs:
welcome:
if: ${{ github.actor != 'dependabot[bot]' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Install PyYAML
run: pip3 install pyyaml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/go-mod-tidy-diff-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Set up Go
uses: actions/setup-go@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
prepare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0
- name: Setup Go
uses: actions/setup-go@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
FORCE_COLOR: "1"
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
with:
fetch-depth: 0
- name: Set up Python
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
FORCE_COLOR: "1"
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v6
with:
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:
nodejs: ["20"]
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
with:
fetch-depth: 0
- name: Set up Python
Expand Down Expand Up @@ -148,7 +148,7 @@ jobs:
DEPLOY_MANIFEST_DB: "${{ matrix.manifest-db }}"
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v6
with:
Expand Down Expand Up @@ -227,7 +227,7 @@ jobs:
run: |
kubectl port-forward -n ${{ env.MR_NAMESPACE }} service/model-registry-service 8080:8080 &
kubectl port-forward -n minio svc/minio 9000:9000 &
kubectl port-forward service/distribution-registry-test-service 5001:5001 &
kubectl port-forward service/distribution-registry-test-service -n local-oci-registry-ns 5001:5001 &
sleep 2
nox --python=${{ matrix.python }} --session=e2e -- --cov-report=xml
- name: Upload coverage report # we upload coverage stats for py once, regardless if previous step failed
Expand All @@ -251,7 +251,7 @@ jobs:
run: |
kubectl port-forward -n ${{ env.MR_NAMESPACE }} service/model-registry-service 8080:8080 > /dev/null 2>&1 &
kubectl port-forward -n minio svc/minio 9000:9000 > /dev/null 2>&1 &
kubectl port-forward service/distribution-registry-test-service 5001:5001 > /dev/null 2>&1 &
kubectl port-forward service/distribution-registry-test-service -n local-oci-registry-ns 5001:5001 > /dev/null 2>&1 &
sleep 2
nox --python=${{ matrix.python }} --session=fuzz

Expand All @@ -268,7 +268,7 @@ jobs:
FORCE_COLOR: "1"
steps:
- name: Check out the repository
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

steps:
- name: "Checkout code"
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.0
uses: actions/checkout@v6.0.0 # unify for Dependabot bump
with:
persist-credentials: false

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
}

- name: Checkout PR
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0
with:
ref: ${{ fromJson(steps.pr.outputs.result).sha }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/trivy-image-scanning.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
]
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@v6.0.0

- name: Sanitize image name for SARIF filename
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-bff-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0

- name: Setup Go
uses: actions/setup-go@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-frontend-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v6.0.0

- name: Set up Node.js
uses: actions/setup-node@v6
Expand Down
71 changes: 71 additions & 0 deletions catalog/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ The catalog service operates as a **metadata aggregation layer** that:
### Supported Catalog Sources

- **YAML Catalog** - Static YAML files containing model metadata
- **HuggingFace Hub** - Discover models from HuggingFace's model repository

## REST API

Expand Down Expand Up @@ -75,6 +76,76 @@ catalogs:
path: "./models"
```

### HuggingFace Source Configuration

The HuggingFace catalog source allows you to discover and import models from the HuggingFace Hub. To configure a HuggingFace source:

#### 1. Set Your API Key

The HuggingFace provider requires an API key for authentication. By default, the service reads the API key from the `HF_API_KEY` environment variable:

```bash
export HF_API_KEY="your-huggingface-api-key-here"
```

**Getting a HuggingFace API Key:**
1. Sign up or log in to [HuggingFace](https://huggingface.co)
2. Go to your [Settings > Access Tokens](https://huggingface.co/settings/tokens)
3. Create a new token with "Read" permissions
4. Copy the token and set it as an environment variable

**For Kubernetes deployments:**
- Store the API key in a Kubernetes Secret
- Reference it in your deployment configuration
- The catalog service will read it from the configured environment variable (defaults to `HF_API_KEY`)

**Custom Environment Variable Name:**
You can configure a custom environment variable name per source by setting the `apiKeyEnvVar` property in your source configuration (see below). This is useful when you need different API keys for different sources.

**Important Notes:**
- **Private Models**: For private models, the API key must belong to an account that has been granted access to the model. Without proper access, the catalog service will not be able to retrieve model information.
- **Gated Models**: For gated models (models with usage restrictions), you must accept the model's terms of service on HuggingFace before the catalog service can access all available model information. Visit the model's page on HuggingFace and accept the terms to ensure full metadata is available.

#### 2. Configure the Source

Add a HuggingFace source to your `catalog-sources.yaml`:

```yaml
catalogs:
- name: "HuggingFace Hub"
id: "huggingface"
type: "hf"
enabled: true
# Required: List of model identifiers to include
# Format: "organization/model-name" or "username/model-name"
includedModels:
- "meta-llama/Llama-3.1-8B-Instruct"
- "ibm-granite/granite-4.0-h-small"
- "microsoft/phi-2"

# Optional: Exclude specific models or patterns
# Supports exact matches or patterns ending with "*"
excludedModels:
- "some-org/unwanted-model"
- "another-org/test-*" # Excludes all models starting with "test-"

# Optional: Configure a custom environment variable name for the API key
# Defaults to "HF_API_KEY" if not specified
properties:
apiKeyEnvVar: "MY_CUSTOM_API_KEY_VAR"
```

#### Model Filtering

Both `includedModels` and `excludedModels` are top-level properties (not nested under `properties`):

- **`includedModels`** (required): List of model identifiers to fetch from HuggingFace. Format: `"organization/model-name"` or `"username/model-name"`
- **`excludedModels`** (optional): List of models or patterns to exclude from the results

The `excludedModels` property supports:
- **Exact matches**: `"meta-llama/Llama-3.1-8B-Instruct"` - excludes this specific model
- **Pattern matching**: `"test-*"` - excludes all models starting with "test-"

## Development

### Prerequisites
Expand Down
2 changes: 2 additions & 0 deletions catalog/internal/catalog/assets/catalog_logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading