Skip to content

Commit 4565d5a

Browse files
authored
Initial commit
0 parents  commit 4565d5a

42 files changed

Lines changed: 1734 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.github/workflows/*.lock.yml linguist-generated=true merge=ours
2+
.github/workflows/*.campaign.g.md linguist-generated=true merge=ours

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# TODO: Replace with your team's GitHub usernames or team names
2+
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
3+
4+
# Default owners for everything in the repo
5+
# * @llm-d/your-team
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Bug Report
2+
description: File a bug report.
3+
title: "[Bug]: "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to fill out this bug report!
10+
11+
- type: input
12+
id: contact
13+
attributes:
14+
label: Contact Details
15+
description: How can we get in touch with you if we need more info?
16+
placeholder: ex. email@example.com
17+
validations:
18+
required: false
19+
20+
- type: textarea
21+
id: what-happened
22+
attributes:
23+
label: What happened?
24+
description: Also tell us, what did you expect to happen?
25+
placeholder: Describe the bug and expected behavior
26+
validations:
27+
required: true
28+
29+
- type: input
30+
id: version
31+
attributes:
32+
label: Version
33+
description: What version are you running? (e.g., v0.1.0, commit SHA, or "main")
34+
placeholder: v0.1.0
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: reproduce
40+
attributes:
41+
label: Steps to Reproduce
42+
description: How can we reproduce this issue?
43+
placeholder: |
44+
1. Deploy with config...
45+
2. Send request to...
46+
3. Observe error...
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: environment
52+
attributes:
53+
label: Environment
54+
description: |
55+
Please provide relevant environment details.
56+
placeholder: |
57+
- Kubernetes version:
58+
- Cloud provider:
59+
- GPU type:
60+
- OS:
61+
render: markdown
62+
validations:
63+
required: false
64+
65+
- type: textarea
66+
id: logs
67+
attributes:
68+
label: Relevant log output
69+
description: Please copy and paste any relevant log output. This will be automatically formatted into code.
70+
render: shell
71+
validations:
72+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Questions & Discussion
4+
url: https://github.com/llm-d/llm-d/discussions
5+
about: Ask questions and discuss ideas in the llm-d community
6+
- name: Slack
7+
url: https://cloud-native.slack.com/archives/llm-d
8+
about: Chat with the community on Slack
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement.
3+
title: "[Feature]: "
4+
labels: ["enhancement", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
## Feature Request
10+
11+
Thank you for suggesting an improvement! Please fill in the details below.
12+
13+
Before opening a new feature request, please check
14+
[existing issues](https://github.com/llm-d/{{PROJECT_NAME}}/issues)
15+
to see if a similar request already exists.
16+
17+
- type: textarea
18+
id: problem
19+
attributes:
20+
label: Problem Statement
21+
description: |
22+
What problem does this feature solve? Describe the use case or pain point.
23+
placeholder: "I'm always frustrated when..."
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: solution
29+
attributes:
30+
label: Proposed Solution
31+
description: |
32+
Describe the solution you'd like. Be as specific as possible about
33+
expected behavior and user experience.
34+
placeholder: "Ideally, it would..."
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: alternatives
40+
attributes:
41+
label: Alternatives Considered
42+
description: Describe any alternative solutions or workarounds you've considered.
43+
validations:
44+
required: false
45+
46+
- type: dropdown
47+
id: contribution
48+
attributes:
49+
label: Willingness to Contribute
50+
description: Would you be willing to help implement this feature?
51+
options:
52+
- "Yes, I can submit a PR"
53+
- "Yes, with guidance"
54+
- "No, but I can help test"
55+
- "No"
56+
validations:
57+
required: true
58+
59+
- type: textarea
60+
id: additional-context
61+
attributes:
62+
label: Additional Context
63+
description: Add any other context, screenshots, links, or references.
64+
validations:
65+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## What does this PR do?
2+
3+
<!-- Describe the changes and their purpose -->
4+
5+
## Why is this change needed?
6+
7+
<!-- Explain the motivation: bug fix, feature request, performance improvement, etc. -->
8+
9+
## How was this tested?
10+
11+
<!-- Describe how you verified the changes work correctly -->
12+
- [ ] Unit tests added/updated
13+
- [ ] Integration/e2e tests added/updated
14+
- [ ] Manual testing performed
15+
16+
## Checklist
17+
18+
- [ ] Commits are signed off (`git commit -s`) per [DCO](PR_SIGNOFF.md)
19+
- [ ] Code follows project [contributing guidelines](CONTRIBUTING.md)
20+
- [ ] Tests pass locally (`make test`)
21+
- [ ] Linters pass (`make lint`)
22+
- [ ] Documentation updated (if applicable)
23+
24+
## Related Issues
25+
26+
<!-- Link to related issues: Fixes #123, Related to #456 -->
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Docker Build and Push
2+
description: Build and push multi-arch container image to ghcr.io
3+
4+
inputs:
5+
image-name:
6+
required: true
7+
description: Image name (e.g., my-project)
8+
tag:
9+
required: true
10+
description: Image tag (e.g., v0.1.0)
11+
github-token:
12+
required: true
13+
description: GitHub token for ghcr.io login
14+
registry:
15+
required: false
16+
description: Container registry
17+
default: ghcr.io/llm-d
18+
platforms:
19+
required: false
20+
description: Target platforms
21+
default: linux/amd64,linux/arm64
22+
prerelease:
23+
required: false
24+
description: If true, skip tagging as 'latest'
25+
default: "false"
26+
27+
runs:
28+
using: "composite"
29+
steps:
30+
- name: Set up QEMU
31+
uses: docker/setup-qemu-action@v3
32+
33+
- name: Set up Docker Buildx
34+
uses: docker/setup-buildx-action@v3
35+
36+
- name: Log in to GitHub Container Registry
37+
run: echo "${{ inputs.github-token }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
38+
shell: bash
39+
40+
- name: Build and push image
41+
run: |
42+
if [[ "${{ inputs.prerelease }}" == "true" ]]; then
43+
LATEST_TAG=""
44+
else
45+
LATEST_TAG="-t ${{ inputs.registry }}/${{ inputs.image-name }}:latest"
46+
fi
47+
docker buildx build \
48+
--platform ${{ inputs.platforms }} \
49+
--push \
50+
--annotation "index:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}" \
51+
--annotation "index:org.opencontainers.image.licenses=Apache-2.0" \
52+
-t ${{ inputs.registry }}/${{ inputs.image-name }}:${{ inputs.tag }} \
53+
${LATEST_TAG} .
54+
shell: bash
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Trivy Security Scan
2+
description: Scan container image for HIGH and CRITICAL vulnerabilities
3+
4+
inputs:
5+
image:
6+
required: true
7+
description: Container image to scan (e.g., ghcr.io/llm-d/my-project:v0.1.0)
8+
severity:
9+
required: false
10+
description: Severity levels to report
11+
default: HIGH,CRITICAL
12+
exit-code:
13+
required: false
14+
description: Exit code when vulnerabilities are found (0 = warn only, 1 = fail)
15+
default: "0"
16+
17+
runs:
18+
using: "composite"
19+
steps:
20+
- name: Run Trivy vulnerability scanner
21+
uses: aquasecurity/trivy-action@master
22+
with:
23+
image-ref: ${{ inputs.image }}
24+
format: table
25+
severity: ${{ inputs.severity }}
26+
exit-code: ${{ inputs.exit-code }}

.github/dependabot.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Canonical Dependabot configuration for llm-d repos
2+
# Copy this file to .github/dependabot.yml in your repo
3+
#
4+
# Covers: Go modules, GitHub Actions, Docker base images
5+
# Remove sections that don't apply to your repo
6+
7+
version: 2
8+
updates:
9+
10+
# Go module updates
11+
- package-ecosystem: "gomod"
12+
directory: "/"
13+
schedule:
14+
interval: "weekly"
15+
open-pull-requests-limit: 10
16+
commit-message:
17+
prefix: "deps(go)"
18+
labels:
19+
- "dependencies"
20+
- "release-note-none"
21+
ignore:
22+
# Ignore major and minor updates to Go toolchain
23+
- dependency-name: "go"
24+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
25+
# Ignore major and minor version updates to k8s packages
26+
- dependency-name: "k8s.io/*"
27+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
28+
- dependency-name: "sigs.k8s.io/*"
29+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
30+
# Ignore major updates for all packages
31+
- dependency-name: "*"
32+
update-types: ["version-update:semver-major"]
33+
groups:
34+
kubernetes:
35+
patterns:
36+
- "k8s.io/*"
37+
- "sigs.k8s.io/*"
38+
go-dependencies:
39+
patterns:
40+
- "*"
41+
42+
# GitHub Actions dependencies
43+
- package-ecosystem: "github-actions"
44+
directory: "/"
45+
schedule:
46+
interval: "weekly"
47+
labels:
48+
- "dependencies"
49+
- "release-note-none"
50+
commit-message:
51+
prefix: "deps(actions)"
52+
53+
# Docker base image updates
54+
- package-ecosystem: "docker"
55+
directory: "/"
56+
schedule:
57+
interval: "weekly"
58+
labels:
59+
- "dependencies"
60+
commit-message:
61+
prefix: "deps(docker)"
62+
63+
# Python dependencies (uncomment if repo uses pip/requirements.txt)
64+
# - package-ecosystem: "pip"
65+
# directory: "/"
66+
# schedule:
67+
# interval: "weekly"
68+
# labels:
69+
# - "dependencies"
70+
# commit-message:
71+
# prefix: "deps(pip)"

0 commit comments

Comments
 (0)