Implementation:Kubeflow Kubeflow Issue Template Contact Links
| Knowledge Sources | |
|---|---|
| Domains | Issue Tracking, GitHub Configuration, YAML Configuration |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
Concrete tool for routing contributor issues to the correct Kubeflow sub-project repository provided by GitHub Issue Template contact_links configuration.
Description
The .github/ISSUE_TEMPLATE/config.yml file in the kubeflow/kubeflow umbrella repository uses GitHub's declarative issue template chooser to present contributors with a structured list of sub-project repositories and community resources. When a contributor navigates to create a new issue, GitHub renders this configuration as a chooser interface. Blank issues are disabled, so the contributor must select one of the provided contact links, each of which redirects to the appropriate sub-project issue tracker or resource page.
The configuration defines 15 contact link entries covering documentation, Slack, community governance, and 12 component-specific repositories (KServe, Katib, Model Registry, MPI Operator, Notebooks, Pipelines, SDK, Spark Operator, Trainer, Dashboard, Profile Controller, and Manifests).
Usage
Use this configuration when:
- Setting up or maintaining the Kubeflow umbrella repository's issue routing.
- Adding a new sub-project that needs its own issue tracker entry.
- Updating repository URLs after organizational changes (e.g., repository renames or migrations).
- Verifying that contributors are being directed to the correct locations for issue filing.
Code Reference
Source Location
- Repository: kubeflow/kubeflow
- File:
.github/ISSUE_TEMPLATE/config.yml(Lines 1-61)
Signature
blank_issues_enabled: false
contact_links:
- name: Kubeflow Documentation
url: https://www.kubeflow.org/
about: Official Kubeflow Documentation
- name: Kubeflow Slack
url: https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels
about: Join the Kubeflow Slack
- name: Issues - Community & Governance
url: https://github.com/kubeflow/community/issues
about: Please use the `kubeflow/community` repository
- name: Issues - KServe
url: https://github.com/kserve/kserve/issues
about: Please use the `kserve/kserve` repository
- name: Issues - Kubeflow Katib
url: https://github.com/kubeflow/katib/issues
about: Please use the `kubeflow/katib` repository
- name: Issues - Kubeflow Model Registry
url: https://github.com/kubeflow/model-registry/issues
about: Please use the `kubeflow/model-registry` repository
- name: Issues - Kubeflow MPI Operator
url: https://github.com/kubeflow/mpi-operator/issues
about: Please use the `kubeflow/mpi-operator` repository
- name: Issues - Kubeflow Notebooks
url: https://github.com/kubeflow/notebooks/issues
about: Please use the `kubeflow/notebooks` repository
- name: Issues - Kubeflow Pipelines
url: https://github.com/kubeflow/pipelines/issues
about: Please use the `kubeflow/pipelines` repository
- name: Issues - Kubeflow SDK
url: https://github.com/kubeflow/sdk/issues
about: Please use the `kubeflow/sdk` repository
- name: Issues - Kubeflow Spark Operator
url: https://github.com/kubeflow/spark-operator/issues
about: Please use the `kubeflow/spark-operator` repository
- name: Issues - Kubeflow Trainer
url: https://github.com/kubeflow/trainer/issues
about: Please use the `kubeflow/trainer` repository
- name: Issues - Kubeflow Platform - Central Dashboard
url: https://github.com/kubeflow/dashboard/issues
about: Please use the `kubeflow/dashboard` repository
- name: Issues - Kubeflow Platform - Profile Controller
url: https://github.com/kubeflow/dashboard/issues
about: Please use the `kubeflow/dashboard` repository
- name: Issues - Kubeflow Platform - Kubeflow Manifests
url: https://github.com/kubeflow/manifests/issues
about: Please use the `kubeflow/manifests` repository
Import
# This file is automatically read by GitHub when a contributor
# navigates to the "New Issue" page. No import or installation required.
# To modify, edit .github/ISSUE_TEMPLATE/config.yml in the repository root.
git clone https://github.com/kubeflow/kubeflow.git
cd kubeflow/.github/ISSUE_TEMPLATE/
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| blank_issues_enabled | boolean | Yes | Controls whether contributors can file blank issues. Set to false to enforce routing.
|
| contact_links[].name | string | Yes | Human-readable label for the sub-project or resource displayed in the issue chooser. |
| contact_links[].url | string (URL) | Yes | Target URL where the contributor is redirected (typically a sub-project issue tracker). |
| contact_links[].about | string | Yes | Brief description or instruction shown beneath the link name in the chooser interface. |
Outputs
| Name | Type | Description |
|---|---|---|
| Issue chooser UI | HTML page | GitHub renders the config.yml as an interactive chooser when contributors click "New Issue". |
| Redirect to sub-project | HTTP redirect | Clicking a contact link navigates the contributor to the specified URL. |
| Blank issue prevention | UI constraint | With blank_issues_enabled: false, the "Open a blank issue" option is removed from the chooser.
|
Usage Examples
Example: Adding a New Sub-Project
# To add a new sub-project, append a contact_links entry:
contact_links:
# ... existing entries ...
- name: Issues - Kubeflow New Component
url: https://github.com/kubeflow/new-component/issues
about: Please use the `kubeflow/new-component` repository
Example: Verifying the Configuration Locally
# Validate YAML syntax before committing
python3 -c "import yaml; yaml.safe_load(open('.github/ISSUE_TEMPLATE/config.yml'))"
# Check that all URLs are reachable
grep 'url:' .github/ISSUE_TEMPLATE/config.yml | awk '{print $2}' | \
xargs -I{} curl -s -o /dev/null -w "%{http_code} {}\n" {}