Skip to content

Commit 394da6b

Browse files
Merge branch 'llm-d-incubation:main' into externalize-utils-for-controllers
2 parents 32c0ae0 + e998d3f commit 394da6b

7 files changed

Lines changed: 136 additions & 1 deletion

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: launcher-populator
3+
description: A Helm chart for the launcher populator
4+
type: application
5+
version: 0.1.0
6+
appVersion: "v0.0.1-alpha"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: launcher-populator
6+
app.kubernetes.io/component: controller
7+
name: launcher-populator
8+
spec:
9+
replicas: {{ .Values.replicaCount | default 1 }}
10+
selector:
11+
matchLabels:
12+
app.kubernetes.io/name: launcher-populator
13+
app.kubernetes.io/component: controller
14+
template:
15+
metadata:
16+
labels:
17+
app.kubernetes.io/name: launcher-populator
18+
app.kubernetes.io/component: controller
19+
spec:
20+
serviceAccountName: launcher-populator
21+
containers:
22+
- name: launcher-populator
23+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
24+
imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent" }}
25+
command:
26+
- /launcher-populator
27+
- --namespace=$(CONTROLLER_NAMESPACE)
28+
env:
29+
- name: CONTROLLER_NAMESPACE
30+
valueFrom:
31+
fieldRef:
32+
fieldPath: metadata.namespace
33+
ports:
34+
- containerPort: 8080
35+
name: metrics
36+
protocol: TCP
37+
resources:
38+
limits:
39+
cpu: {{ .Values.resources.limits.cpu | default "2" }}
40+
memory: {{ .Values.resources.limits.memory | default "2Gi" }}
41+
requests:
42+
cpu: {{ .Values.resources.requests.cpu | default "100m" }}
43+
memory: {{ .Values.resources.requests.memory | default "128Mi" }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: launcher-populator
6+
app.kubernetes.io/component: controller
7+
name: launcher-populator-role
8+
rules:
9+
# LauncherPopulationPolicy resource permissions
10+
- apiGroups: ["fma.llm-d.ai"]
11+
resources: ["launcherpopulationpolicies"]
12+
verbs: ["get", "list", "watch"]
13+
14+
# LauncherConfig resource permissions
15+
- apiGroups: ["fma.llm-d.ai"]
16+
resources: ["launcherconfigs"]
17+
verbs: ["get", "list", "watch"]
18+
19+
# InferenceServerConfig resource permissions
20+
- apiGroups: ["fma.llm-d.ai"]
21+
resources: ["inferenceserverconfigs"]
22+
verbs: ["get", "list", "watch"]
23+
24+
# Pod resource permissions (full CRUD)
25+
- apiGroups: [""]
26+
resources: ["pods"]
27+
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: RoleBinding
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: launcher-populator
6+
app.kubernetes.io/component: controller
7+
name: launcher-populator-rolebinding
8+
roleRef:
9+
apiGroup: rbac.authorization.k8s.io
10+
kind: Role
11+
name: launcher-populator-role
12+
subjects:
13+
- kind: ServiceAccount
14+
name: launcher-populator
15+
namespace: {{ .Release.Namespace }}
16+
{{if .Values.NodeViewClusterRole}}
17+
---
18+
apiVersion: rbac.authorization.k8s.io/v1
19+
kind: ClusterRoleBinding
20+
metadata:
21+
labels:
22+
app.kubernetes.io/name: launcher-populator
23+
app.kubernetes.io/component: controller
24+
name: launcher-populator-node-view
25+
roleRef:
26+
apiGroup: rbac.authorization.k8s.io
27+
kind: ClusterRole
28+
name: "{{ .Values.NodeViewClusterRole }}"
29+
subjects:
30+
- kind: ServiceAccount
31+
namespace: "{{ .Release.Namespace }}"
32+
name: launcher-populator
33+
{{end}}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: launcher-populator
6+
app.kubernetes.io/component: controller
7+
name: launcher-populator
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Image configuration
2+
image:
3+
repository: ghcr.io/llm-d-incubation/llm-d-fast-model-actuation-launcher-populator
4+
tag: latest
5+
pullPolicy: IfNotPresent
6+
7+
# Name of the ClusterRole to bind to controller to authorize it to
8+
# get/list/watch Node objects.
9+
# Empty string means no new binding is needed.
10+
NodeViewClusterRole: ""
11+
12+
# Resource configuration
13+
resources:
14+
limits:
15+
cpu: 2
16+
memory: 2Gi
17+
requests:
18+
cpu: 100m
19+
memory: 128Mi

pkg/controller/launcher-populator/interface.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ const (
2525

2626
LauncherConfigNameLabelKey = "dual-pods.llm-d.ai/launcher-config-name"
2727

28-
NodeNameLabelKey = "node.kubernetes.io/node-name"
28+
NodeNameLabelKey = "dual-pods.llm-d.ai/node-name"
2929
)

0 commit comments

Comments
 (0)