apiVersion: relay.wyolet.dev/v1alpha3
kind: Team
metadata:
name: ml
spec: {}
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: Project
metadata:
name: search
spec:
team: ml
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: Account
metadata:
name: acme-openai
owner: {kind: system}
spec:
host: openai
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: HostKey
metadata:
name: acme-openai-a
owner: {kind: system}
spec:
hostId: openai
account: acme-openai
valueFrom: {kind: env, env: OPENAI_KEY_A}
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: HostKey
metadata:
name: acme-openai-b
owner: {kind: system}
spec:
hostId: openai
account: acme-openai
valueFrom: {kind: env, env: OPENAI_KEY_B}
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: Pool
metadata:
name: openai-main
owner: {kind: system}
spec:
host: openai
credentials: [acme-openai-a, acme-openai-b]
selection: prioritized
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: Budget
metadata:
name: ml-monthly
owner: {kind: team, name: ml}
spec:
amountUsd: "2000"
period: month
mode: hard
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: RateLimit
metadata:
name: ml-limits
owner: {kind: team, name: ml}
spec:
rules:
- {meter: requests, amount: 600, window: 1m, strategy: sliding-window}
- {meter: tokens, amount: 2000000, window: 1m, strategy: sliding-window}
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: Policy
metadata:
name: ml
owner: {kind: team, name: ml}
spec:
models: [openai]
pools: [openai-main]
rateLimits:
- ref: ml-limits
budgets:
- ref: ml-monthly
---
apiVersion: relay.wyolet.dev/v1alpha3
kind: PolicyBinding
metadata:
name: ml
owner: {kind: team, name: ml}
spec:
policy: ml
accounts: [team-ml]