chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
# File name: config.yaml
|
||||
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: redis-config
|
||||
labels:
|
||||
app: redis
|
||||
data:
|
||||
redis.conf: |-
|
||||
port 6379
|
||||
bind 0.0.0.0
|
||||
protected-mode no
|
||||
requirepass 5241590000000000
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: redis
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: redis
|
||||
port: 6379
|
||||
selector:
|
||||
app: redis
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: redis
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
image: redis:5.0.8
|
||||
command:
|
||||
- "sh"
|
||||
- "-c"
|
||||
- "redis-server /usr/local/etc/redis/redis.conf"
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /usr/local/etc/redis/redis.conf
|
||||
subPath: redis.conf
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: redis-config
|
||||
---
|
||||
apiVersion: ray.io/v1alpha1
|
||||
kind: RayService
|
||||
metadata:
|
||||
name: rayservice-sample
|
||||
annotations:
|
||||
ray.io/ft-enabled: "true"
|
||||
spec:
|
||||
serviceUnhealthySecondThreshold: 300
|
||||
deploymentUnhealthySecondThreshold: 300
|
||||
serveConfig:
|
||||
importPath: "sleepy_pid:app"
|
||||
runtimeEnv: |
|
||||
working_dir: "https://github.com/ray-project/serve_config_examples/archive/42d10bab77741b40d11304ad66d39a4ec2345247.zip"
|
||||
deployments:
|
||||
- name: SleepyPid
|
||||
numReplicas: 6
|
||||
rayActorOptions:
|
||||
numCpus: 0
|
||||
rayClusterConfig:
|
||||
rayVersion: '2.3.0'
|
||||
headGroupSpec:
|
||||
replicas: 1
|
||||
rayStartParams:
|
||||
num-cpus: '2'
|
||||
dashboard-host: '0.0.0.0'
|
||||
redis-password: "5241590000000000"
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: ray-head
|
||||
image: rayproject/ray:2.3.0
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: MY_POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: RAY_REDIS_ADDRESS
|
||||
value: redis:6379
|
||||
resources:
|
||||
limits:
|
||||
cpu: 2
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 2
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: redis
|
||||
- containerPort: 8265
|
||||
name: dashboard
|
||||
- containerPort: 10001
|
||||
name: client
|
||||
- containerPort: 8000
|
||||
name: serve
|
||||
workerGroupSpecs:
|
||||
- replicas: 2
|
||||
minReplicas: 2
|
||||
maxReplicas: 2
|
||||
groupName: small-group
|
||||
rayStartParams:
|
||||
node-ip-address: $MY_POD_IP
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: machine-learning
|
||||
image: rayproject/ray:2.3.0
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: RAY_DISABLE_DOCKER_CPU_WARNING
|
||||
value: "1"
|
||||
- name: TYPE
|
||||
value: "worker"
|
||||
- name: CPU_REQUEST
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: machine-learning
|
||||
resource: requests.cpu
|
||||
- name: CPU_LIMITS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: machine-learning
|
||||
resource: limits.cpu
|
||||
- name: MEMORY_LIMITS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: machine-learning
|
||||
resource: limits.memory
|
||||
- name: MEMORY_REQUESTS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: machine-learning
|
||||
resource: requests.memory
|
||||
- name: MY_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: MY_POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: client
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command: ["/bin/sh","-c","ray stop"]
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "2Gi"
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: "2Gi"
|
||||
@@ -0,0 +1,24 @@
|
||||
# flake8: noqa
|
||||
|
||||
from ray import serve
|
||||
|
||||
# Stubs
|
||||
def connect_to_db(*args, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
# __health_check_start__
|
||||
@serve.deployment(health_check_period_s=10, health_check_timeout_s=30)
|
||||
class MyDeployment:
|
||||
def __init__(self, db_addr: str):
|
||||
self._my_db_connection = connect_to_db(db_addr)
|
||||
|
||||
def __call__(self, request):
|
||||
return self._do_something_cool()
|
||||
|
||||
# Called by Serve to check the replica's health.
|
||||
def check_health(self):
|
||||
if not self._my_db_connection.is_connected():
|
||||
# The specific type of exception is not important.
|
||||
raise RuntimeError("uh-oh, DB connection is broken.")
|
||||
# __health_check_end__
|
||||
@@ -0,0 +1,23 @@
|
||||
# flake8: noqa
|
||||
|
||||
# __start__
|
||||
# File name: sleepy_pid.py
|
||||
|
||||
from ray import serve
|
||||
|
||||
|
||||
@serve.deployment
|
||||
class SleepyPid:
|
||||
def __init__(self):
|
||||
import time
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
def __call__(self) -> int:
|
||||
import os
|
||||
|
||||
return os.getpid()
|
||||
|
||||
|
||||
app = SleepyPid.bind()
|
||||
# __end__
|
||||
Reference in New Issue
Block a user