diff --git a/.github/workflows/build-and-push.yml b/.github/workflows/build-and-push.yml
deleted file mode 100644
index 74a38572..00000000
--- a/.github/workflows/build-and-push.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Build and Push
-
-on:
- push:
- branches:
- - 'main'
- - 'release-*'
- paths-ignore:
- - 'docs/**'
- - '**.md'
- - '.github/**'
- - '.tekton/**'
- tags:
- - v*
-
-jobs:
- # Ensure that tests pass before publishing a new image.
- build:
- runs-on: ubuntu-latest
- env:
- IMAGE_NAME: kserve/modelmesh-controller
- CI: true
- steps:
- - uses: actions/checkout@v2
- - name: Build develop image
- run: make build.develop
- - name: Run lint
- run: ./scripts/develop.sh make fmt
- - name: Run unit tests
- run: ./scripts/develop.sh make test
- - name: Build runtime image
- run: make build
- - name: Log in to Docker Hub
- run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_ACCESS_TOKEN }}
- - name: Push to Docker Hub
- run: |
- # Strip git ref prefix from version
- VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
- echo $VERSION
-
- # Currently, we rely on nightly builds for pushing images, so exit if
- # not a tag version for now.
- if [ "$VERSION" == "main" ]; then
- echo "Skipping image push"
- VERSION=latest
- exit 0
- fi
-
- docker tag ${{ env.IMAGE_NAME }}:latest ${{ env.IMAGE_NAME }}:$VERSION
- docker push ${{ env.IMAGE_NAME }}:$VERSION
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..37b4d0b6
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,151 @@
+name: Build
+
+on:
+ push:
+ branches: [master]
+ tags:
+ - 'v*'
+ paths-ignore:
+ - '.github/**'
+ - '.tekton/**'
+ - '**.md'
+ - 'docs/**'
+ - 'fvt/**'
+ - 'proto/**'
+ pull_request:
+ branches: [master]
+ paths-ignore:
+ - '.github/**'
+ - '.tekton/**'
+ - '**.md'
+ - 'docs/**'
+ - 'fvt/**'
+ - 'proto/**'
+
+env:
+ IMAGE_NAME: "kserve/modelmesh-controller"
+ DEV_IMAGE_NAME: "kserve/modelmesh-controller-develop"
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ CI: true
+ services:
+ registry:
+ image: registry:2
+ ports:
+ - 5000:5000
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup QEMU
+ uses: docker/setup-qemu-action@v2
+
+ - name: Setup Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ with:
+ driver-opts: network=host
+
+ - name: Login to DockerHub
+ if: github.event_name == 'push'
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKER_USER }}
+ password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
+
+ - name: Export docker build args
+ run: |
+ # see: scripts/build_devimage.sh
+ # see: scripts/build_docker.sh
+
+ # Strip git ref prefix from version
+ VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
+
+ # Generate PR tag from github.ref == "refs/pull/123/merge"
+ [ "$VERSION" == "merge" ] && VERSION=$(echo "${{ github.ref }}" | sed -e 's,refs/pull/\(.*\)/merge,pr-\1,')
+
+ # Use Docker `latest` tag convention
+ [ "$VERSION" == "main" ] && VERSION=latest
+
+ git_commit_sha="$(git rev-parse HEAD)"
+ DOCKER_TAG="$(git rev-parse --abbrev-ref HEAD)-$(date -u +"%Y%m%dT%H%M%S%Z")"
+
+ # generate dev image tag
+ DEV_DEPS="./scripts/build_devimage.sh Dockerfile.develop go.mod go.sum .pre-commit-config.yaml"
+ DEV_IMG_TAG=$(cat $(ls ${DEV_DEPS}) | sha1sum | head -c 16)
+
+ # In order for the controller image build to find the developer image
+ # we need to push the developer image to a registry since the docker
+ # exporter does not currently support exporting manifest lists.
+ # When running in a PR we need to use the local image registry service
+ # because the DockerHub push secret is not available on forked PRs.
+ # When pushing to main we do have access to the docker.io push secrets
+ # so we push to the public DockerHub registry.
+ # https://github.com/docker/buildx/issues/59#issuecomment-1189999088
+
+ DEV_IMAGE="docker.io/${{ env.DEV_IMAGE_NAME }}:$DEV_IMG_TAG"
+ DEV_IMAGE_EXISTS=false
+
+ # Check if the developer image already exists in the registry. The
+ # developer image doesn't change often and is costly to build. We want
+ # to avoid rebuilding it unnecessarily. If we need to build it and if
+ # this workflow is running on a forked PR, then we must use the local
+ # image registry.
+ if $(docker manifest inspect $DEV_IMAGE >/dev/null ); then
+ DEV_IMAGE_EXISTS=true
+ else
+ if [ "${{ github.event_name }}" == "pull_request" ]; then
+ DEV_IMAGE="localhost:5000/${{ env.DEV_IMAGE_NAME }}:$DEV_IMG_TAG"
+ fi
+ fi
+
+ # add env vars for following steps
+ echo "IMAGE_TAG=$VERSION" >> $GITHUB_ENV
+ echo "GIT_COMMIT_SHA=$git_commit_sha" >> $GITHUB_ENV
+ echo "IMAGE_VERSION=$DOCKER_TAG" >> $GITHUB_ENV
+ echo "DEV_IMAGE=$DEV_IMAGE" >> $GITHUB_ENV
+ echo "DEV_IMAGE_EXISTS=$DEV_IMAGE_EXISTS" >> $GITHUB_ENV
+
+ # print env vars for debugging
+ cat "$GITHUB_ENV"
+
+ - name: Build and push developer image
+ uses: docker/build-push-action@v4
+ if: env.DEV_IMAGE_EXISTS == 'false'
+ with:
+ platforms: linux/amd64
+ context: .
+ file: Dockerfile.develop
+ push: true
+ tags: ${{ env.DEV_IMAGE }}
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
+
+ - name: Set dev image for lint and test
+ run: |
+ docker run --rm ${{ env.DEV_IMAGE }} go version
+ echo -n "${{ env.DEV_IMAGE }}" > .develop_image_name
+
+ - name: Run lint
+ run: ./scripts/develop.sh make fmt
+
+ - name: Run unit test
+ run: ./scripts/develop.sh make test
+
+ - name: Build and push controller image
+ uses: docker/build-push-action@v4
+ with:
+ platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x
+ context: .
+ target: runtime
+ pull: true
+ push: ${{ github.event_name != 'pull_request' }}
+ tags: ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
+ build-args: |
+ DEV_IMAGE=${{ env.DEV_IMAGE }}
+ IMAGE_VERSION=${{ env.IMAGE_VERSION }}
+ COMMIT_SHA=${{ env.GIT_COMMIT_SHA }}
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
diff --git a/.github/workflows/run-fvt.yml b/.github/workflows/fvt.yml
similarity index 60%
rename from .github/workflows/run-fvt.yml
rename to .github/workflows/fvt.yml
index d6adde95..ddcb184f 100644
--- a/.github/workflows/run-fvt.yml
+++ b/.github/workflows/fvt.yml
@@ -7,18 +7,41 @@ on:
- '**'
- '!.github/**'
- '!.tekton/**'
- - '!docs/**'
- '!**.md'
- - '.github/workflows/run-fvt.yml'
+ - '!docs/**'
+ - '.github/workflows/fvt.yml'
jobs:
- test:
+ fvt:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-go@v2
+ - name: Free up disk space
+ run: |
+ # https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
+ # du -sh /* 2> /dev/null | sort -rh 2> /dev/null | head
+ # du -h -d2 /usr 2> /dev/null | sort -rh 2> /dev/null | head
+ echo "Check free disk space before cleanup."
+ df -h
+ echo "Removing non-essential tools and libraries."
+ sudo rm -rf "$AGENT_TOOLSDIRECTORY"
+ sudo rm -rf /opt/ghc
+ sudo rm -rf /usr/share/dotnet
+ sudo rm -rf /usr/local/share/boost
+ # delete libraries for Android (12G), PowerShell (1.3G), Swift (1.7G)
+ sudo rm -rf /usr/local/lib/android
+ sudo rm -rf /usr/local/share/powershell
+ sudo rm -rf /usr/share/swift
+ echo "Check free disk space after cleanup."
+ df -h
+
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup go
+ uses: actions/setup-go@v4
with:
- go-version: '1.18.7'
+ go-version: '1.19'
+
- name: Start Minikube
uses: medyagh/setup-minikube@v0.0.11
id: minikube
@@ -28,63 +51,83 @@ jobs:
kubernetes-version: v1.25.2
cpus: max
memory: max
+
- name: Check pods
run: |
sleep 30
kubectl get pods -n kube-system
+
- name: Set controller image tag
run: echo "IMAGE_TAG=$(date +'%Y%m%dT%H%M%S%Z')" >> $GITHUB_ENV
+
- name: Update configs
# Update the image tag and reduce some resource request amounts to allow FVTs to run
- # on reduced resource environments. Also the RollingUpdate strategy for Runtime deployments
- # is adjusted for these environments.
- # Disable the torchserve ServingRuntime for now (insufficent resources to run them all).
+ # on reduced resource environments. The RollingUpdate strategy for Runtime deployments
+ # is also adjusted for these environments.
+ # Disable the torchserve ServingRuntime for now (insufficient resources to run them all).
run: |
sed -i 's/newTag:.*$/newTag: '"${{ env.IMAGE_TAG }}"'/' config/manager/kustomization.yaml
sed -i '0,/cpu:.*$/s/cpu:.*$/cpu: 100m/' \
config/default/config-defaults.yaml \
- config/runtimes/mlserver-0.x.yaml \
+ config/runtimes/mlserver-1.x.yaml \
config/runtimes/triton-2.x.yaml \
config/runtimes/ovms-1.x.yaml
sed -i 's/memory:.*$/memory: 512Mi/g' \
- config/runtimes/mlserver-0.x.yaml \
+ config/runtimes/mlserver-1.x.yaml \
config/runtimes/triton-2.x.yaml \
config/runtimes/ovms-1.x.yaml
sed -i 's/maxSurge:.*$/maxSurge: 0/' config/internal/base/deployment.yaml.tmpl
sed -i 's/maxUnavailable:.*$/maxUnavailable: 100%/' config/internal/base/deployment.yaml.tmpl
echo -e '\n disabled: true' >> config/runtimes/torchserve-0.x.yaml
+
+ - name: Setup Docker Buildx
+ uses: docker/setup-buildx-action@v2
+
- name: Build Controller image
+ env:
+ DOCKER_BUILDKIT: 1
run: |
eval $(minikube -p minikube docker-env)
make build.develop
./scripts/build_docker.sh --target runtime --tag ${{ env.IMAGE_TAG }}
+
- name: Install ModelMesh Serving
run: |
kubectl create ns modelmesh-serving
./scripts/install.sh --namespace modelmesh-serving --fvt --dev-mode-logging
- - name: Free up disk space
+
+ - name: Prune docker images
run: |
- eval $(minikube -p minikube docker-env)
- echo "Pruning images"
+ echo "Pruning docker images on GH action runner node"
docker image prune -a -f
docker system df
df -h
+
- name: Pre-pull runtime images
run: |
eval $(minikube -p minikube docker-env)
- docker pull nvcr.io/nvidia/tritonserver:21.06.1-py3
- docker pull seldonio/mlserver:0.5.2
+ docker pull nvcr.io/nvidia/tritonserver:23.04-py3
+ docker pull seldonio/mlserver:1.3.2
docker pull openvino/model_server:2022.2
+<<<<<<< HEAD:.github/workflows/run-fvt.yml
# docker pull pytorch/torchserve:0.6.0-cpu
docker pull kserve/modelmesh:v0.11.0-alpha
docker pull kserve/modelmesh-runtime-adapter:v0.11.0-alpha
docker pull kserve/rest-proxy:v0.10.0
+=======
+ # docker pull pytorch/torchserve:0.7.1-cpu
+ docker pull kserve/modelmesh-runtime-adapter
+ docker pull kserve/rest-proxy
+ docker pull kserve/modelmesh
+
+>>>>>>> v0.11.0-rc0:.github/workflows/fvt.yml
- name: Check installation
run: |
eval $(minikube -p minikube docker-env)
docker images
kubectl get pods
kubectl get clusterservingruntimes
+
- name: Run FVTs
run: |
go install github.com/onsi/ginkgo/v2/ginkgo
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 0f63a53c..0d6b357f 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -12,9 +12,16 @@ jobs:
runs-on: ubuntu-latest
env:
CI: true
+ DOCKER_BUILDKIT: 1
steps:
- - uses: actions/checkout@v2
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup Docker Buildx
+ uses: docker/setup-buildx-action@v2
+
- name: Build develop image
run: make build.develop
+
- name: Run lint
run: ./scripts/develop.sh make fmt
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/test.yml
similarity index 56%
rename from .github/workflows/unit-test.yml
rename to .github/workflows/test.yml
index c19ca088..767f13ac 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/test.yml
@@ -1,22 +1,31 @@
-name: Unit Test
+name: Test
on:
pull_request:
branches: [master]
paths-ignore:
- - 'docs/**'
- - '**.md'
- '.github/**'
- '.tekton/**'
+ - '**.md'
+ - 'docs/**'
+ - 'fvt/**'
+ - 'proto/**'
jobs:
test:
runs-on: ubuntu-latest
env:
CI: true
+ DOCKER_BUILDKIT: 1
steps:
- - uses: actions/checkout@v2
- - name: Build develop image
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup Docker Buildx
+ uses: docker/setup-buildx-action@v2
+
+ - name: Build developer image
run: make build.develop
+
- name: Run unit tests
run: ./scripts/develop.sh make test
diff --git a/.gitignore b/.gitignore
index 9cd09f20..dd73038f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,8 +38,5 @@ devbuild
.cache/
kustomize/
.temp_new_modelmesh_manifests
-opendatahub/scripts/manifests/params.env
-opendatahub/scripts/manifests/fvt/
-opendatahub/scripts/manifests/runtimes/
kfctl*
bin
diff --git a/.golangci.yaml b/.golangci.yaml
index 7c2c99d6..f716f984 100644
--- a/.golangci.yaml
+++ b/.golangci.yaml
@@ -34,7 +34,7 @@ run:
# which dirs to skip: issues from them won't be reported;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but default dirs are skipped independently
- # from this option's value (see skip-dirs-use-default).
+ # of this option's value (see skip-dirs-use-default).
# "/" will be replaced by current OS file path separator to properly work
# on Windows.
# skip-dirs:
@@ -215,7 +215,7 @@ linters-settings:
issues:
# List of regexps of issue texts to exclude, empty list by default.
- # But independently from this option we use default exclude patterns,
+ # But independently of this option we use default exclude patterns,
# it can be disabled by `exclude-use-default: false`. To list all
# excluded by default patterns execute `golangci-lint run --help`
# exclude:
@@ -243,6 +243,11 @@ issues:
- staticcheck
text: "SA9003:"
+ # Exclude some deprecation errors
+ - linters:
+ - staticcheck
+ text: "SA1019:"
+
# Exclude lll issues for long lines with go:generate
- linters:
- lll
diff --git a/Dockerfile b/Dockerfile
index daa74c77..78d368a8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,16 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG DEV_IMAGE
-
###############################################################################
-# Stage 1: Run the build
+# Stage 1: Run the go build with go compiler native to the build platform
+# https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/
###############################################################################
+ARG DEV_IMAGE
FROM ${DEV_IMAGE} AS build
+# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
+# don't provide "default" values (e.g. 'ARG TARGETARCH=amd64') for non-buildx environments,
+# see https://github.com/docker/buildx/issues/510
+ARG TARGETOS=linux
+ARG TARGETARCH=amd64
+
LABEL image="build"
-# Copy the go source
+# Copy the go sources
COPY main.go main.go
COPY apis/ apis/
COPY controllers/ controllers/
@@ -29,8 +35,14 @@ COPY generated/ generated/
COPY pkg/ pkg/
COPY version /etc/modelmesh-version
-# Build
-RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o manager main.go
+# Build using native go compiler from BUILDPLATFORM but compiled output for TARGETPLATFORM
+RUN --mount=type=cache,target=/root/.cache/go-build \
+ --mount=type=cache,target=/go/pkg \
+ GOOS=${TARGETOS:-linux} \
+ GOARCH=${TARGETARCH:-amd64} \
+ CGO_ENABLED=0 \
+ GO111MODULE=on \
+ go build -a -o /workspace/manager main.go
###############################################################################
# Stage 2: Copy build assets to create the smallest final runtime image
diff --git a/Dockerfile.develop b/Dockerfile.develop
index 0c7330b4..b0c5b19a 100644
--- a/Dockerfile.develop
+++ b/Dockerfile.develop
@@ -15,77 +15,104 @@
###############################################################################
# Create the develop, test, and build environment
###############################################################################
-FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7
+FROM registry.access.redhat.com/ubi8/go-toolset:1.19
-ARG GOLANG_VERSION=1.18.9
-ARG OPENSHIFT_VERSION=4.9
+# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
+# don't provide "default" values (e.g. 'ARG TARGETARCH=amd64') for non-buildx environments,
+# see https://github.com/docker/buildx/issues/510
+ARG TARGETOS
+ARG TARGETARCH
+
+ARG OPENSHIFT_VERSION=4.12
ARG KUSTOMIZE_VERSION=4.5.2
ARG KUBEBUILDER_VERSION=v3.3.0
-ARG CONTROLLER_GEN_VERSION=v0.8.0
+ARG CONTROLLER_GEN_VERSION=v0.11.4
+
ENV PATH=/usr/local/go/bin:$PATH:/usr/local/kubebuilder/bin:
USER root
+ENV HOME=/root
WORKDIR /workspace
-# Copy the Go Modules manifests
-COPY .pre-commit-config.yaml go.mod go.sum ./
+# Install build and dev tools
+RUN --mount=type=cache,target=/root/.cache/dnf:rw \
+ dnf install --setopt=cachedir=/root/.cache/dnf -y --nodocs \
+ python3 \
+ python3-pip \
+ nodejs \
+ jq \
+ && true
+
+# Install pre-commit
+ENV PIP_CACHE_DIR=/root/.cache/pip
+RUN --mount=type=cache,target=/root/.cache/pip \
+ pip3 install pre-commit
-# Install gcc
-RUN microdnf install \
- diffutils \
- gcc-c++ \
- make \
- wget \
- tar \
- vim \
- git \
- findutils \
- jq \
- python38 \
- nodejs && \
- pip3 install pre-commit && \
-# Install yq 4.x
- set -eux; \
- wget https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64.tar.gz -O - |\
- tar xz && mv yq_linux_amd64 /usr/local/bin/yq && \
-# Install go
- wget -qO go.tgz "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz"; \
-# sha256sum *go.tgz; \
- tar -C /usr/local -xzf go.tgz; \
- go version && rm go.tgz && \
-# Download and initialize the pre-commit environments before copying the source so they will be cached
- git init && \
- pre-commit install-hooks && \
- rm -rf .git && \
-# Download kubebuilder
- true \
# First download and extract older dist of kubebuilder which includes required etcd, kube-apiserver and kubectl binaries
- && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_linux_amd64.tar.gz | tar -xz -C /tmp/ \
- && mv /tmp/kubebuilder_*_linux_amd64 /usr/local/kubebuilder \
# Then download and overwrite kubebuilder binary with desired/latest version
- && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/${KUBEBUILDER_VERSION}/kubebuilder_linux_amd64 -o /usr/local/kubebuilder/bin/kubebuilder \
- && true && \
-# download openshift-cli
- curl -sSLf --output /tmp/oc_client.tar.gz https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/latest-${OPENSHIFT_VERSION}/openshift-client-linux.tar.gz \
+RUN true \
+ && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_${TARGETOS}_${TARGETARCH}.tar.gz | tar -xz -C /tmp/ \
+ && mv /tmp/kubebuilder_*_${TARGETOS}_${TARGETARCH} /usr/local/kubebuilder \
+ && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/${KUBEBUILDER_VERSION}/kubebuilder_${TARGETOS}_${TARGETARCH} -o /usr/local/kubebuilder/bin/kubebuilder \
+ && true
+
+# Download openshift-cli
+RUN true \
+ && curl -sSLf --output /tmp/oc_client.tar.gz https://mirror.openshift.com/pub/openshift-v4/${TARGETARCH}/clients/ocp/latest-${OPENSHIFT_VERSION}/openshift-client-${TARGETOS}.tar.gz \
&& tar -xvf /tmp/oc_client.tar.gz -C /tmp \
&& mv /tmp/oc /usr/local/bin \
&& mv /tmp/kubectl /usr/local/bin \
&& chmod a+x /usr/local/bin/oc /usr/local/bin/kubectl \
- && rm -f /tmp/oc_client.tar.gz && \
-# download kustomize
- curl -sSLf --output /tmp/kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_amd64.tar.gz \
+ && rm -f /tmp/oc_client.tar.gz \
+ && true
+
+# Download kustomize
+RUN true \
+ && curl -sSLf --output /tmp/kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_${TARGETOS}_${TARGETARCH}.tar.gz \
&& tar -xvf /tmp/kustomize.tar.gz -C /tmp \
&& mv /tmp/kustomize /usr/local/bin \
&& chmod a+x /usr/local/bin/kustomize \
- && rm -v /tmp/kustomize.tar.gz && \
-# cache deps before building and copying source so that we don't need to re-download as much
-# and so that source changes don't invalidate our downloaded layer
- go mod download && \
-# Install controller-gen
- mkdir /tmp/controller-gen-tmp && cd /tmp/controller-gen-tmp \
- && go mod init tmp && go get sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_GEN_VERSION} \
- && rm -rf /tmp/controller-gen-tmp
-
-RUN go install github.com/onsi/ginkgo/v2/ginkgo
-ENV PATH=/root/go/bin/:$PATH
+ && rm -v /tmp/kustomize.tar.gz \
+ && true
+
+# Install yq 4.x
+RUN true \
+ && curl -L https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64.tar.gz | tar xz -C /tmp \
+ && mv /tmp/yq_linux_amd64 /usr/local/bin/yq \
+ && true
+
+# Copy the Go Modules manifests
+COPY .pre-commit-config.yaml go.mod go.sum ./
+
+# Download and initialize the pre-commit environments before copying the source so they will be cached
+RUN true\
+ && git init \
+ && pre-commit install-hooks \
+ && rm -rf .git \
+ && true
+
+# Cache dependencies before copying and building sources so that source changes
+# won't invalidate earlier download layers
+RUN go mod download
+
+# Export the Go binary path for controller-gen and ginkgo CLIs
+ENV PATH $HOME/go/bin:$PATH
+
+# Install controller-gen to generate util code and Kubernetes YAMLs for API changes
+RUN true \
+ && go install sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_GEN_VERSION} \
+ && controller-gen --version \
+ && true
+
+# Install the Ginkgo test framework
+RUN true \
+ && go install github.com/onsi/ginkgo/v2/ginkgo \
+ && ginkgo version \
+ && true
+
+# For GitHub Action 'lint', work around error "detected dubious ownership in repository at '/workspace'"
+RUN git config --system --add safe.directory /workspace
+
+# The ubi/go-toolset image doesn't define ENTRYPOINT or CMD, but we need it to run 'make develop'
+CMD /bin/bash
diff --git a/Dockerfile.develop.ci b/Dockerfile.develop.ci
new file mode 100644
index 00000000..5fc1dd8b
--- /dev/null
+++ b/Dockerfile.develop.ci
@@ -0,0 +1,117 @@
+# Copyright 2021 IBM Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+###############################################################################
+# Create the develop, test, and build environment
+###############################################################################
+FROM registry.access.redhat.com/ubi8/go-toolset:1.19
+
+# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
+# don't provide "default" values (e.g. 'ARG TARGETARCH=amd64') for non-buildx environments,
+# see https://github.com/docker/buildx/issues/510
+ARG TARGETOS=linux
+ARG TARGETARCH=amd64
+
+ARG OPENSHIFT_VERSION=4.12
+ARG KUSTOMIZE_VERSION=4.5.2
+ARG KUBEBUILDER_VERSION=v3.3.0
+ARG CONTROLLER_GEN_VERSION=v0.11.4
+
+ENV PATH=/usr/local/go/bin:$PATH:/usr/local/kubebuilder/bin:
+
+USER root
+ENV HOME=/go
+
+WORKDIR /go/src/github.com/opendatahub-io/modelmesh-serving/
+
+# Install build and dev tools
+RUN --mount=type=cache,target=${HOME}/.cache/dnf:rw \
+ dnf install --setopt=cachedir=${HOME}/.cache/dnf -y --nodocs \
+ python3 \
+ python3-pip \
+ nodejs \
+ jq
+
+# Install pre-commit
+ENV PIP_CACHE_DIR=${HOME}/.cache/pip
+RUN --mount=type=cache,target=${HOME}/.cache/pip \
+ pip3 install pre-commit
+
+# First download and extract older dist of kubebuilder which includes required etcd, kube-apiserver and kubectl binaries
+# Then download and overwrite kubebuilder binary with desired/latest version
+RUN true \
+ && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_${TARGETOS}_${TARGETARCH}.tar.gz | tar -xz -C /tmp/ \
+ && mv /tmp/kubebuilder_*_${TARGETOS}_${TARGETARCH} /usr/local/kubebuilder \
+ && curl -L https://github.com/kubernetes-sigs/kubebuilder/releases/download/${KUBEBUILDER_VERSION}/kubebuilder_${TARGETOS}_${TARGETARCH} -o /usr/local/kubebuilder/bin/kubebuilder \
+ && true
+
+# Download openshift-cli
+RUN true \
+ && curl -sSLf --output /tmp/oc_client.tar.gz https://mirror.openshift.com/pub/openshift-v4/${TARGETARCH}/clients/ocp/latest-${OPENSHIFT_VERSION}/openshift-client-${TARGETOS}.tar.gz \
+ && tar -xvf /tmp/oc_client.tar.gz -C /tmp \
+ && mv /tmp/oc /usr/local/bin \
+ && mv /tmp/kubectl /usr/local/bin \
+ && chmod a+x /usr/local/bin/oc /usr/local/bin/kubectl \
+ && rm -f /tmp/oc_client.tar.gz \
+ && true
+
+# Download kustomize
+RUN true \
+ && curl -sSLf --output /tmp/kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_${TARGETOS}_${TARGETARCH}.tar.gz \
+ && tar -xvf /tmp/kustomize.tar.gz -C /tmp \
+ && mv /tmp/kustomize /usr/local/bin \
+ && chmod a+x /usr/local/bin/kustomize \
+ && rm -v /tmp/kustomize.tar.gz \
+ && true
+
+# Install yq 4.x
+RUN true \
+ && curl -L https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64.tar.gz | tar xz -C /tmp \
+ && mv /tmp/yq_linux_amd64 /usr/local/bin/yq \
+ && true
+
+# Copy the Go Modules manifests
+COPY .pre-commit-config.yaml go.mod go.sum ./
+
+# Download and initialize the pre-commit environments before copying the source so they will be cached
+RUN true \
+ && git init \
+ && pre-commit install-hooks \
+ && true
+
+# Cache dependencies before copying and building sources so that source changes
+# won't invalidate earlier download layers
+RUN go mod download
+
+# Export the Go binary path for controller-gen and ginkgo CLIs
+ENV PATH=/go/bin:$HOME/go/bin:$PATH
+RUN chmod -R 777 /go
+
+# Install controller-gen to generate util code and Kubernetes YAMLs for API changes
+RUN true \
+ && go install sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_GEN_VERSION} \
+ && controller-gen --version \
+ && true
+
+# Install the Ginkgo test framework
+RUN true \
+ && go install github.com/onsi/ginkgo/v2/ginkgo \
+ && ginkgo version \
+ && true
+
+# For GitHub Action 'lint', work around error "detected dubious ownership in repository at '/workspace'"
+RUN git config --system --add safe.directory /go/src/github.com/opendatahub-io/modelmesh-serving
+
+# The ubi/go-toolset image doesn't define ENTRYPOINT or CMD, but we need it to run 'make develop'
+CMD /bin/bash
diff --git a/Makefile b/Makefile
index 7bc0ad20..01ee07ef 100644
--- a/Makefile
+++ b/Makefile
@@ -11,9 +11,13 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
# collect args from `make run` so that they don't run twice
ifeq (run,$(firstword $(MAKECMDGOALS)))
RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
+ ifneq ("$(wildcard /.dockerenv)","")
+ $(error Inside docker container, run 'make $(RUN_ARGS)')
+ endif
endif
# Container Engine to be used for building images
@@ -24,7 +28,7 @@ IMG ?= kserve/modelmesh-controller:latest
# Namespace to deploy model-serve into
NAMESPACE ?= "model-serving"
-CONTROLLER_GEN_VERSION ?= "v0.7.0"
+CONTROLLER_GEN_VERSION ?= "v0.11.4"
CRD_OPTIONS ?= "crd:maxDescLen=0"
@@ -39,70 +43,86 @@ else
GOBIN=$(shell go env GOBIN)
endif
+.PHONY: all
all: manager
# Run unit tests
+.PHONY: test
test:
go test -coverprofile cover.out `go list ./... | grep -v fvt`
# Run fvt tests. This requires an etcd, kubernetes connection, and model serving installation. Ginkgo CLI is used to run them in parallel
+.PHONY: fvt
fvt:
- ginkgo -v -procs=2 --progress --fail-fast fvt/predictor fvt/scaleToZero fvt/storage fvt/hpa --timeout=50m
+ ginkgo -v -procs=2 --fail-fast fvt/predictor fvt/scaleToZero fvt/storage fvt/hpa --timeout=50m
fvt-stable:
ginkgo -v -procs=2 --progress --fail-fast fvt/predictor fvt/scaleToZero fvt/storage --timeout=50m
# Command to regenerate the grpc go files from the proto files
+.PHONY: fvt-protoc
fvt-protoc:
rm -rf fvt/generated
protoc -I=fvt/proto --go_out=plugins=grpc:. --go_opt=module=github.com/kserve/modelmesh-serving $(shell find fvt/proto -iname "*.proto")
+.PHONY: fvt-with-deploy
fvt-with-deploy: oc-login deploy-release-dev-mode fvt
+.PHONY: oc-login
oc-login:
oc login --token=${OCP_TOKEN} --server=https://${OCP_ADDRESS} --insecure-skip-tls-verify=true
# Build manager binary
+.PHONY: manager
manager: generate fmt
go build -o bin/manager main.go
# Run against the configured Kubernetes cluster in ~/.kube/config
+.PHONY: start
start: generate fmt manifests
go run ./main.go
# Install CRDs into a cluster
+.PHONY: install
install: manifests
kustomize build config/crd | kubectl apply -f -
# Uninstall CRDs from a cluster
+.PHONY: uninstall
uninstall: manifests
kustomize build config/crd | kubectl delete -f -
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
+.PHONY: deploy
deploy: manifests
cd config/manager && kustomize edit set image controller=${IMG}
kustomize build config/default | kubectl apply -f -
# artifactory creds set via env var
+.PHONY: deploy-release
deploy-release:
./scripts/install.sh --namespace ${NAMESPACE} --install-config-path config
+.PHONY: deploy-release-dev-mode
deploy-release-dev-mode:
./scripts/install.sh --namespace ${NAMESPACE} --install-config-path config --dev-mode-logging
+.PHONY: deploy-release-dev-mode-fvt
deploy-release-dev-mode-fvt:
ifdef MODELMESH_SERVING_IMAGE
- $(eval extra_options += --modelmesh-serving-image ${MODELMESH_SERVING_IMAGE})
+ $(eval extra_options += --modelmesh-serving-image ${MODELMESH_SERVING_IMAGE})
endif
ifdef NAMESPACE_SCOPE_MODE
- $(eval extra_options += --namespace-scope-mode)
-endif
+ $(eval extra_options += --namespace-scope-mode)
+endif
./scripts/install.sh --namespace ${NAMESPACE} --install-config-path config --dev-mode-logging --fvt ${extra_options}
+.PHONY: delete
delete: oc-login
./scripts/delete.sh --namespace ${NAMESPACE} --local-config-path config
# Generate manifests e.g. CRD, RBAC etc.
+.PHONY: manifests
manifests: controller-gen
# NOTE: We're currently copying the CRD manifests from KServe rather than using this target to regenerate those
# that are common (all apart from predictors) because the formatting ends up different depending on the version
@@ -116,49 +136,54 @@ manifests: controller-gen
pre-commit run --all-files prettier > /dev/null || true
# Run go fmt against code
+.PHONY: fmt
fmt:
./scripts/fmt.sh || (echo "Linter failed: $$?"; git status; exit 1)
# Generate code
+.PHONY: generate
generate: controller-gen
$(CONTROLLER_GEN) object:headerFile="scripts/controller-gen-header.go.tmpl" paths="./..."
pre-commit run --all-files prettier > /dev/null || true
# Build the final runtime docker image
-build:
+.PHONY: build
+build: build.develop
./scripts/build_docker.sh --target runtime --engine $(ENGINE)
# Build the develop docker image
+.PHONY: build.develop
build.develop:
./scripts/build_devimage.sh $(ENGINE)
# Start a terminal session in the develop docker container
+.PHONY: develop
develop: build.develop
./scripts/develop.sh
# Run make commands from within the develop docker container
# For example, `make run fmt` will execute `make fmt` within the docker container
+.PHONY: run
run: build.develop
./scripts/develop.sh make $(RUN_ARGS)
# Build the docker image
+.PHONY: docker-build
docker-build: build
# Push the docker image
+.PHONY: docker-push
docker-push:
podman push ${IMG}
# find or download controller-gen
# download controller-gen if necessary
+.PHONY: controller-gen
controller-gen:
ifeq (, $(shell which controller-gen))
@{ \
set -e ;\
- CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
- cd $$CONTROLLER_GEN_TMP_DIR ;\
- go mod init tmp ;\
- go get sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_GEN_VERSION} ;\
- rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
+ go install sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLER_GEN_VERSION} ;\
}
CONTROLLER_GEN=$(GOBIN)/controller-gen
else
@@ -166,17 +191,18 @@ CONTROLLER_GEN=$(shell which controller-gen)
endif
# Model Mesh gRPC codegen
+.PHONY: mmesh-codegen
mmesh-codegen:
protoc -I proto/ --go_out=plugins=grpc:generated/ $(PROTO_FILES)
# Check markdown files for invalid links
+.PHONY: check-doc-links
check-doc-links:
@python3 scripts/verify_doc_links.py && echo "$@: OK"
# Override targets if they are included in RUN_ARGs so it doesn't run them twice
$(eval $(RUN_ARGS):;@:)
-
before-pr: fmt test
./opendatahub/scripts/gen_odh_model_manifests.sh
./opendatahub/scripts/gen_odh_modelmesh_manifests.sh
@@ -252,5 +278,5 @@ e2e-test-for-odh: deploy-mm-for-odh deploy-fvt-for-odh repeat-fvt
cleanup-for-odh:
./opendatahub/scripts/cleanup.sh
-# Remove $(MAKECMDGOALS) if you don't intend make to just be a taskrunner
+# Remove $(MAKECMDGOALS) if you don't intend =======
.PHONY: all generate manifests check-doc-links fmt fvt controller-gen oc-login deploy-release build.develop $(MAKECMDGOALS)
diff --git a/apis/serving/v1alpha1/predictor_types.go b/apis/serving/v1alpha1/predictor_types.go
index 43262352..93e17189 100644
--- a/apis/serving/v1alpha1/predictor_types.go
+++ b/apis/serving/v1alpha1/predictor_types.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package v1alpha1
import (
diff --git a/apis/serving/v1alpha1/predictor_types_test.go b/apis/serving/v1alpha1/predictor_types_test.go
index 10749d02..fd32872e 100644
--- a/apis/serving/v1alpha1/predictor_types_test.go
+++ b/apis/serving/v1alpha1/predictor_types_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package v1alpha1
import (
diff --git a/apis/serving/v1alpha1/servingruntime_types.go b/apis/serving/v1alpha1/servingruntime_types.go
index 8866feaf..8c7748da 100644
--- a/apis/serving/v1alpha1/servingruntime_types.go
+++ b/apis/serving/v1alpha1/servingruntime_types.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package v1alpha1
import (
diff --git a/apis/serving/v1alpha1/servingruntime_webhook.go b/apis/serving/v1alpha1/servingruntime_webhook.go
index 3303f290..1b92ce0b 100644
--- a/apis/serving/v1alpha1/servingruntime_webhook.go
+++ b/apis/serving/v1alpha1/servingruntime_webhook.go
@@ -1,17 +1,17 @@
-//Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
//
-//Licensed under the Apache License, Version 2.0 (the "License");
-//you may not use this file except in compliance with the License.
-//You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-//Unless required by applicable law or agreed to in writing, software
-//distributed under the License is distributed on an "AS IS" BASIS,
-//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//See the License for the specific language governing permissions and
-//limitations under the License.
+// http://www.apache.org/licenses/LICENSE-2.0
//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
package v1alpha1
import (
@@ -29,7 +29,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)
-//+kubebuilder:webhook:path=/validate-serving-modelmesh-io-v1alpha1-servingruntime,mutating=false,failurePolicy=fail,sideEffects=None,groups=serving.kserve.io,resources=servingruntimes;clusterservingruntimes,verbs=create;update,versions=v1alpha1,name=servingruntime.modelmesh-webhook-server.default,admissionReviewVersions=v1
+// +kubebuilder:webhook:path=/validate-serving-modelmesh-io-v1alpha1-servingruntime,mutating=false,failurePolicy=fail,sideEffects=None,groups=serving.kserve.io,resources=servingruntimes;clusterservingruntimes,verbs=create;update,versions=v1alpha1,name=servingruntime.modelmesh-webhook-server.default,admissionReviewVersions=v1
type ServingRuntimeWebhook struct {
Client client.Client
decoder *admission.Decoder
diff --git a/apis/serving/v1alpha1/servingruntime_webhook_test.go b/apis/serving/v1alpha1/servingruntime_webhook_test.go
index 27e4b9bc..f97d4c25 100644
--- a/apis/serving/v1alpha1/servingruntime_webhook_test.go
+++ b/apis/serving/v1alpha1/servingruntime_webhook_test.go
@@ -1,18 +1,17 @@
-/*
-Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
package v1alpha1
import (
diff --git a/apis/serving/v1alpha1/zz_generated.deepcopy.go b/apis/serving/v1alpha1/zz_generated.deepcopy.go
index c2c0e74f..24a01855 100644
--- a/apis/serving/v1alpha1/zz_generated.deepcopy.go
+++ b/apis/serving/v1alpha1/zz_generated.deepcopy.go
@@ -1,19 +1,17 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
-/*
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
// Code generated by controller-gen. DO NOT EDIT.
diff --git a/config/crd/bases/serving.kserve.io_clusterservingruntimes.yaml b/config/crd/bases/serving.kserve.io_clusterservingruntimes.yaml
index 753cc15e..1023b8ac 100644
--- a/config/crd/bases/serving.kserve.io_clusterservingruntimes.yaml
+++ b/config/crd/bases/serving.kserve.io_clusterservingruntimes.yaml
@@ -1,5 +1,4 @@
-# Copied from https://github.com/kserve/kserve/blob/335dfbcc461a3b2127354aeb7df2414fb11ddfe3/config/crd/serving.kserve.io_clusterservingruntimes.yaml
-#
+# Copied from https://github.com/kserve/kserve/blob/v0.11.0-rc0/config/crd/serving.kserve.io_clusterservingruntimes.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
diff --git a/config/crd/bases/serving.kserve.io_inferenceservices.yaml b/config/crd/bases/serving.kserve.io_inferenceservices.yaml
index bf8a55ea..1f2f710f 100644
--- a/config/crd/bases/serving.kserve.io_inferenceservices.yaml
+++ b/config/crd/bases/serving.kserve.io_inferenceservices.yaml
@@ -1,5 +1,4 @@
-# Copied from https://github.com/kserve/kserve/blob/39ec2d19de1d856a9527b800fda8fb380bc9441f/config/crd/serving.kserve.io_inferenceservices.yaml
-#
+# Copied from https://github.com/kserve/kserve/blob/v0.11.0-rc0/config/crd/serving.kserve.io_inferenceservices.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
@@ -411,7 +410,7 @@ spec:
type: array
type: object
type: object
- aix:
+ alibi:
properties:
args:
items:
@@ -625,6 +624,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -715,6 +724,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -861,6 +880,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -979,7 +1008,7 @@ spec:
workingDir:
type: string
type: object
- alibi:
+ art:
properties:
args:
items:
@@ -1193,6 +1222,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -1283,6 +1322,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -1429,6 +1478,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -1547,592 +1606,657 @@ spec:
workingDir:
type: string
type: object
- art:
+ automountServiceAccountToken:
+ type: boolean
+ batcher:
properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
+ maxBatchSize:
+ type: integer
+ maxLatency:
+ type: integer
+ timeout:
+ type: integer
+ type: object
+ canaryTrafficPercent:
+ format: int64
+ type: integer
+ containerConcurrency:
+ format: int64
+ type: integer
+ containers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ command:
+ items:
+ type: string
+ type: array
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ type: object
+ type: array
+ image:
type: string
- type: array
- config:
- additionalProperties:
+ imagePullPolicy:
type: string
- type: object
- env:
- items:
+ lifecycle:
properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
+ postStart:
properties:
- configMapKeyRef:
+ exec:
properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
+ command:
+ items:
+ type: string
+ type: array
type: object
- fieldRef:
+ httpGet:
properties:
- apiVersion:
- type: string
- fieldPath:
+ host:
type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
type: string
- divisor:
+ port:
anyOf:
- type: integer
- type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- resource:
+ scheme:
type: string
required:
- - resource
+ - port
type: object
- secretKeyRef:
+ tcpSocket:
properties:
- key:
- type: string
- name:
+ host:
type: string
- optional:
- type: boolean
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - key
+ - port
type: object
type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
+ preStop:
properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
- value:
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - name
- - value
+ - port
type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
+ type: object
+ type: object
+ livenessProbe:
properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
format: int32
type: integer
- name:
- type: string
- protocol:
- type: string
- default: TCP
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
properties:
- host:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
- port:
+ protocol:
+ type: string
+ default: TCP
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- scheme:
- type: string
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
+ type: object
+ requests:
+ additionalProperties:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- runtimeVersion:
- type: string
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ drop:
+ items:
+ type: string
+ type: array
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
properties:
- localhostProfile:
+ devicePath:
type: string
- type:
+ name:
type: string
required:
- - type
+ - devicePath
+ - name
type: object
- windowsOptions:
+ type: array
+ volumeMounts:
+ items:
properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
+ mountPath:
type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
+ mountPropagation:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
+ name:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ readOnly:
+ type: boolean
+ subPath:
type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
+ subPathExpr:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
required:
- - port
+ - mountPath
+ - name
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- storage:
- properties:
- key:
- type: string
- parameters:
- additionalProperties:
- type: string
- type: object
- path:
- type: string
- schemaPath:
- type: string
- type: object
- storageUri:
- type: string
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- type:
- type: string
- volumeDevices:
+ type: array
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ dnsConfig:
+ properties:
+ nameservers:
items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
+ type: string
type: array
- volumeMounts:
+ options:
items:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
name:
type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- subPathExpr:
+ value:
type: string
- required:
- - mountPath
- - name
type: object
type: array
- workingDir:
- type: string
+ searches:
+ items:
+ type: string
+ type: array
type: object
- automountServiceAccountToken:
+ dnsPolicy:
+ type: string
+ enableServiceLinks:
type: boolean
- batcher:
- properties:
- maxBatchSize:
- type: integer
- maxLatency:
- type: integer
- timeout:
- type: integer
- type: object
- canaryTrafficPercent:
- format: int64
- type: integer
- containerConcurrency:
- format: int64
- type: integer
- containers:
+ hostAliases:
+ items:
+ properties:
+ hostnames:
+ items:
+ type: string
+ type: array
+ ip:
+ type: string
+ type: object
+ type: array
+ hostIPC:
+ type: boolean
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ hostname:
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ type: string
+ type: object
+ type: array
+ initContainers:
items:
properties:
args:
@@ -2343,6 +2467,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -2368,6 +2502,8 @@ spec:
x-kubernetes-int-or-string: true
scheme:
type: string
+ required:
+ - port
type: object
initialDelaySeconds:
format: int32
@@ -2435,6 +2571,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -2460,6 +2606,8 @@ spec:
x-kubernetes-int-or-string: true
scheme:
type: string
+ required:
+ - port
type: object
initialDelaySeconds:
format: int32
@@ -2581,6 +2729,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -2685,56 +2843,6 @@ spec:
- name
type: object
type: array
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- dnsPolicy:
- type: string
- enableServiceLinks:
- type: boolean
- hostAliases:
- items:
- properties:
- hostnames:
- items:
- type: string
- type: array
- ip:
- type: string
- type: object
- type: array
- hostIPC:
- type: boolean
- hostNetwork:
- type: boolean
- hostPID:
- type: boolean
- hostname:
- type: string
- imagePullSecrets:
- items:
- properties:
- name:
- type: string
- type: object
- type: array
logger:
properties:
mode:
@@ -2756,6 +2864,12 @@ spec:
additionalProperties:
type: string
type: object
+ x-kubernetes-map-type: atomic
+ os:
+ properties:
+ name:
+ type: string
+ type: object
overhead:
additionalProperties:
anyOf:
@@ -4202,6 +4316,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -4294,6 +4418,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -4440,6 +4574,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -4594,586 +4738,594 @@ spec:
type: string
type: object
type: array
- lightgbm:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ command:
+ items:
+ type: string
+ type: array
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ type: object
+ type: array
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
type: object
- fieldRef:
+ httpGet:
properties:
- apiVersion:
+ host:
type: string
- fieldPath:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - fieldPath
+ - port
type: object
- resourceFieldRef:
+ tcpSocket:
properties:
- containerName:
+ host:
type: string
- divisor:
+ port:
anyOf:
- type: integer
- type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- resource:
- type: string
required:
- - resource
+ - port
type: object
- secretKeyRef:
+ type: object
+ preStop:
+ properties:
+ exec:
properties:
- key:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
type: string
- name:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
- optional:
- type: boolean
required:
- - key
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
type: object
- required:
- - name
type: object
- type: array
- envFrom:
- items:
+ livenessProbe:
properties:
- configMapRef:
+ exec:
properties:
- name:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
type: string
- optional:
- type: boolean
+ required:
+ - port
type: object
- prefix:
- type: string
- secretRef:
+ httpGet:
properties:
- name:
+ host:
type: string
- optional:
- type: boolean
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
+ protocol:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ default: TCP
+ required:
+ - containerPort
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
format: int32
type: integer
- name:
- type: string
- protocol:
- type: string
- default: TCP
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- protocolVersion:
- type: string
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- runtimeVersion:
- type: string
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
type: string
- type: array
- drop:
- items:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
- items:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
+ type: object
+ requests:
+ additionalProperties:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- storage:
- properties:
- key:
- type: string
- parameters:
- additionalProperties:
- type: string
- type: object
- path:
- type: string
- schemaPath:
- type: string
- type: object
- storageUri:
- type: string
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
+ type: object
type: object
- type: array
- volumeMounts:
- items:
+ securityContext:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
+ allowPrivilegeEscalation:
type: boolean
- subPath:
- type: string
- subPathExpr:
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ drop:
+ items:
+ type: string
+ type: array
+ type: object
+ privileged:
+ type: boolean
+ procMount:
type: string
- required:
- - mountPath
- - name
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
type: object
- type: array
- workingDir:
- type: string
- type: object
- logger:
- properties:
- mode:
- enum:
- - all
- - request
- - response
- type: string
- url:
- type: string
- type: object
- maxReplicas:
- type: integer
- minReplicas:
- type: integer
- model:
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ lightgbm:
properties:
args:
items:
@@ -5383,6 +5535,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -5435,15 +5597,6 @@ spec:
format: int32
type: integer
type: object
- modelFormat:
- properties:
- name:
- type: string
- version:
- type: string
- required:
- - name
- type: object
name:
type: string
ports:
@@ -5484,6 +5637,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -5555,8 +5718,6 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
- runtime:
- type: string
runtimeVersion:
type: string
securityContext:
@@ -5632,6 +5793,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -5748,13 +5919,22 @@ spec:
workingDir:
type: string
type: object
- nodeName:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
+ logger:
+ properties:
+ mode:
+ enum:
+ - all
+ - request
+ - response
+ type: string
+ url:
+ type: string
type: object
- onnx:
+ maxReplicas:
+ type: integer
+ minReplicas:
+ type: integer
+ model:
properties:
args:
items:
@@ -5964,6 +6144,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6016,6 +6206,15 @@ spec:
format: int32
type: integer
type: object
+ modelFormat:
+ properties:
+ name:
+ type: string
+ version:
+ type: string
+ required:
+ - name
+ type: object
name:
type: string
ports:
@@ -6056,6 +6255,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6127,6 +6336,8 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
+ runtime:
+ type: string
runtimeVersion:
type: string
securityContext:
@@ -6202,6 +6413,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6318,15 +6539,14 @@ spec:
workingDir:
type: string
type: object
- overhead:
+ nodeName:
+ type: string
+ nodeSelector:
additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ type: string
type: object
- paddle:
+ x-kubernetes-map-type: atomic
+ onnx:
properties:
args:
items:
@@ -6536,6 +6756,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6628,6 +6858,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6774,6 +7014,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -6890,7 +7140,20 @@ spec:
workingDir:
type: string
type: object
- pmml:
+ os:
+ properties:
+ name:
+ type: string
+ type: object
+ overhead:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ paddle:
properties:
args:
items:
@@ -7100,6 +7363,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -7192,6 +7465,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -7338,6 +7621,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -7454,14 +7747,7 @@ spec:
workingDir:
type: string
type: object
- preemptionPolicy:
- type: string
- priority:
- format: int32
- type: integer
- priorityClassName:
- type: string
- pytorch:
+ pmml:
properties:
args:
items:
@@ -7671,6 +7957,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -7763,6 +8059,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -7909,6 +8215,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -8025,103 +8341,14 @@ spec:
workingDir:
type: string
type: object
- readinessGates:
- items:
- properties:
- conditionType:
- type: string
- required:
- - conditionType
- type: object
- type: array
- restartPolicy:
- type: string
- runtimeClassName:
- type: string
- scaleMetric:
- enum:
- - cpu
- - memory
- - concurrency
- - rps
+ preemptionPolicy:
type: string
- scaleTarget:
+ priority:
+ format: int32
type: integer
- schedulerName:
+ priorityClassName:
type: string
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- fsGroupChangePolicy:
- type: string
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
- type: object
- serviceAccount:
- type: string
- serviceAccountName:
- type: string
- setHostnameAsFQDN:
- type: boolean
- shareProcessNamespace:
- type: boolean
- sklearn:
+ pytorch:
properties:
args:
items:
@@ -8331,6 +8558,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -8423,6 +8660,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -8569,6 +8816,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -8685,9 +8942,103 @@ spec:
workingDir:
type: string
type: object
- subdomain:
+ readinessGates:
+ items:
+ properties:
+ conditionType:
+ type: string
+ required:
+ - conditionType
+ type: object
+ type: array
+ restartPolicy:
type: string
- tensorflow:
+ runtimeClassName:
+ type: string
+ scaleMetric:
+ enum:
+ - cpu
+ - memory
+ - concurrency
+ - rps
+ type: string
+ scaleTarget:
+ type: integer
+ schedulerName:
+ type: string
+ securityContext:
+ properties:
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceAccountName:
+ type: string
+ setHostnameAsFQDN:
+ type: boolean
+ shareProcessNamespace:
+ type: boolean
+ sklearn:
properties:
args:
items:
@@ -8897,6 +9248,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -8989,6 +9350,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -9135,6 +9506,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -9251,72 +9632,9 @@ spec:
workingDir:
type: string
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeout:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- topologySpreadConstraints:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- maxSkew:
- format: int32
- type: integer
- topologyKey:
- type: string
- whenUnsatisfiable:
- type: string
- required:
- - maxSkew
- - topologyKey
- - whenUnsatisfiable
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - topologyKey
- - whenUnsatisfiable
- x-kubernetes-list-type: map
- triton:
+ subdomain:
+ type: string
+ tensorflow:
properties:
args:
items:
@@ -9526,6 +9844,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -9618,6 +9946,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -9764,6 +10102,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -9880,500 +10228,1159 @@ spec:
workingDir:
type: string
type: object
- volumes:
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeout:
+ format: int64
+ type: integer
+ tolerations:
items:
properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- type: string
- kind:
- type: string
- readOnly:
- type: boolean
- required:
- - diskName
- - diskURI
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- azureFile:
+ maxSkew:
+ format: int32
+ type: integer
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - topologyKey
+ - whenUnsatisfiable
+ x-kubernetes-list-type: map
+ triton:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ command:
+ items:
+ type: string
+ type: array
+ env:
+ items:
properties:
- readOnly:
- type: boolean
- secretName:
+ name:
type: string
- shareName:
+ value:
type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ type: object
required:
- - secretName
- - shareName
+ - name
type: object
- cephfs:
+ type: array
+ envFrom:
+ items:
properties:
- monitors:
- items:
- type: string
- type: array
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
+ configMapRef:
properties:
name:
type: string
+ optional:
+ type: boolean
type: object
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
+ prefix:
type: string
- readOnly:
- type: boolean
secretRef:
properties:
name:
type: string
+ optional:
+ type: boolean
type: object
- volumeID:
- type: string
- required:
- - volumeID
type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ type: array
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
+ command:
+ items:
+ type: string
+ type: array
type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- csi:
- properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
- properties:
- name:
- type: string
- type: object
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ httpGet:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
+ host:
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
- properties:
- metadata:
- type: object
- spec:
- properties:
- accessModes:
- items:
- type: string
- type: array
- dataSource:
+ httpHeaders:
+ items:
properties:
- apiGroup:
- type: string
- kind:
- type: string
name:
type: string
+ value:
+ type: string
required:
- - kind
- name
+ - value
type: object
- dataSourceRef:
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
properties:
- apiGroup:
- type: string
- kind:
- type: string
name:
type: string
+ value:
+ type: string
required:
- - kind
- name
+ - value
type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- storageClassName:
- type: string
- volumeMode:
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
type: string
- volumeName:
+ value:
type: string
+ required:
+ - name
+ - value
type: object
- required:
- - spec
- type: object
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
+ type: array
+ path:
type: string
- type: array
- wwids:
- items:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
- type: array
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
properties:
- fsType:
- type: string
- partition:
+ containerPort:
format: int32
type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
+ hostIP:
type: string
- lun:
+ hostPort:
format: int32
type: integer
- portals:
- items:
- type: string
- type: array
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
+ name:
type: string
- readOnly:
- type: boolean
- volumeID:
+ protocol:
type: string
+ default: TCP
required:
- - volumeID
+ - containerPort
type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ protocolVersion:
+ type: string
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ runtimeVersion:
+ type: string
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ drop:
+ items:
+ type: string
+ type: array
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ storage:
+ properties:
+ key:
+ type: string
+ parameters:
+ additionalProperties:
+ type: string
+ type: object
+ path:
+ type: string
+ schemaPath:
+ type: string
+ type: object
+ storageUri:
+ type: string
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ type: string
+ type: object
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ type: string
+ kind:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ required:
+ - path
+ type: object
+ type: array
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ storageClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ wwids:
+ items:
+ type: string
+ type: array
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
divisor:
anyOf:
- type: integer
@@ -10442,323 +11449,581 @@ spec:
volume:
type: string
required:
- - registry
- - volume
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ pool:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ user:
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ sslEnabled:
+ type: boolean
+ storageMode:
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ xgboost:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ command:
+ items:
+ type: string
+ type: array
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ type: object
+ required:
+ - name
type: object
- rbd:
+ type: array
+ envFrom:
+ items:
properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- type: string
- monitors:
- items:
- type: string
- type: array
- pool:
- type: string
- readOnly:
- type: boolean
- secretRef:
+ configMapRef:
properties:
name:
type: string
+ optional:
+ type: boolean
type: object
- user:
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- type: string
- gateway:
- type: string
- protectionDomain:
+ prefix:
type: string
- readOnly:
- type: boolean
secretRef:
properties:
name:
type: string
+ optional:
+ type: boolean
type: object
- sslEnabled:
- type: boolean
- storageMode:
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
type: object
- secret:
+ type: array
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
properties:
- defaultMode:
+ containerPort:
format: int32
type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
+ hostIP:
type: string
- storagePolicyName:
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
- volumePath:
+ protocol:
type: string
+ default: TCP
required:
- - volumePath
+ - containerPort
type: object
- required:
- - name
- type: object
- type: array
- xgboost:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ protocolVersion:
+ type: string
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
properties:
- key:
- type: string
name:
type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
+ value:
type: string
- optional:
- type: boolean
required:
- - key
+ - name
+ - value
type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ runtimeVersion:
type: string
- lifecycle:
+ securityContext:
properties:
- postStart:
+ allowPrivilegeEscalation:
+ type: boolean
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ drop:
+ items:
+ type: string
+ type: array
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
type: object
- preStop:
+ seccompProfile:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
type: object
type: object
- livenessProbe:
+ startupProbe:
properties:
exec:
properties:
@@ -10770,6 +12035,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -10795,6 +12070,8 @@ spec:
x-kubernetes-int-or-string: true
scheme:
type: string
+ required:
+ - port
type: object
initialDelaySeconds:
format: int32
@@ -10814,6 +12091,8 @@ spec:
- type: integer
- type: string
x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
terminationGracePeriodSeconds:
format: int64
@@ -10822,322 +12101,369 @@ spec:
format: int32
type: integer
type: object
- name:
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ storage:
+ properties:
+ key:
+ type: string
+ parameters:
+ additionalProperties:
+ type: string
+ type: object
+ path:
+ type: string
+ schemaPath:
+ type: string
+ type: object
+ storageUri:
type: string
- ports:
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
items:
properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
+ devicePath:
type: string
- hostPort:
- format: int32
- type: integer
name:
type: string
- protocol:
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ subPath:
+ type: string
+ subPathExpr:
type: string
- default: TCP
required:
- - containerPort
+ - mountPath
+ - name
type: object
type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- protocolVersion:
+ workingDir:
type: string
- readinessProbe:
+ type: object
+ type: object
+ transformer:
+ properties:
+ activeDeadlineSeconds:
+ format: int64
+ type: integer
+ affinity:
+ properties:
+ nodeAffinity:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
properties:
- host:
- type: string
- httpHeaders:
+ nodeSelectorTerms:
items:
properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
type: object
type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ required:
+ - nodeSelectorTerms
type: object
type: object
- runtimeVersion:
- type: string
- securityContext:
+ podAffinity:
properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaces:
+ items:
+ type: string
+ type: array
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaces:
+ items:
+ type: string
+ type: array
+ topologyKey:
type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
+ required:
+ - topologyKey
+ type: object
+ type: array
type: object
- startupProbe:
+ podAntiAffinity:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
properties:
- name:
- type: string
- value:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaces:
+ items:
+ type: string
+ type: array
+ topologyKey:
type: string
required:
- - name
- - value
+ - topologyKey
type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- storage:
- properties:
- key:
- type: string
- parameters:
- additionalProperties:
- type: string
- type: object
- path:
- type: string
- schemaPath:
- type: string
- type: object
- storageUri:
- type: string
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- type: object
- type: object
- transformer:
- properties:
- activeDeadlineSeconds:
- format: int64
- type: integer
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
items:
properties:
- preference:
+ labelSelector:
properties:
matchExpressions:
items:
@@ -11155,7 +12481,14 @@ spec:
- operator
type: object
type: array
- matchFields:
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ namespaceSelector:
+ properties:
+ matchExpressions:
items:
properties:
key:
@@ -11171,337 +12504,674 @@ spec:
- operator
type: object
type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- weight:
+ namespaces:
+ items:
+ type: string
+ type: array
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ type: object
+ automountServiceAccountToken:
+ type: boolean
+ batcher:
+ properties:
+ maxBatchSize:
+ type: integer
+ maxLatency:
+ type: integer
+ timeout:
+ type: integer
+ type: object
+ canaryTrafficPercent:
+ format: int64
+ type: integer
+ containerConcurrency:
+ format: int64
+ type: integer
+ containers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ command:
+ items:
+ type: string
+ type: array
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ optional:
+ type: boolean
+ type: object
+ type: object
+ type: array
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
format: int32
type: integer
+ service:
+ type: string
required:
- - preference
- - weight
+ - port
type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ type: string
+ default: TCP
required:
- - nodeSelectorTerms
+ - containerPort
type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
format: int32
type: integer
+ service:
+ type: string
required:
- - podAffinityTerm
- - weight
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ capabilities:
properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
+ add:
items:
type: string
type: array
- topologyKey:
+ drop:
+ items:
+ type: string
+ type: array
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
type: string
- required:
- - topologyKey
type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ seccompProfile:
properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
+ localhostProfile:
+ type: string
+ type:
+ type: string
required:
- - podAffinityTerm
- - weight
+ - type
type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ windowsOptions:
properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
items:
- type: string
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
type: array
- topologyKey:
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - topologyKey
+ - port
type: object
- type: array
- type: object
- type: object
- automountServiceAccountToken:
- type: boolean
- batcher:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ dnsConfig:
properties:
- maxBatchSize:
- type: integer
- maxLatency:
- type: integer
- timeout:
- type: integer
+ nameservers:
+ items:
+ type: string
+ type: array
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ searches:
+ items:
+ type: string
+ type: array
type: object
- canaryTrafficPercent:
- format: int64
- type: integer
- containerConcurrency:
- format: int64
- type: integer
- containers:
+ dnsPolicy:
+ type: string
+ enableServiceLinks:
+ type: boolean
+ hostAliases:
+ items:
+ properties:
+ hostnames:
+ items:
+ type: string
+ type: array
+ ip:
+ type: string
+ type: object
+ type: array
+ hostIPC:
+ type: boolean
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ hostname:
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ type: string
+ type: object
+ type: array
+ initContainers:
items:
properties:
args:
@@ -11712,6 +13382,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -11737,6 +13417,8 @@ spec:
x-kubernetes-int-or-string: true
scheme:
type: string
+ required:
+ - port
type: object
initialDelaySeconds:
format: int32
@@ -11804,6 +13486,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -11829,6 +13521,8 @@ spec:
x-kubernetes-int-or-string: true
scheme:
type: string
+ required:
+ - port
type: object
initialDelaySeconds:
format: int32
@@ -11950,6 +13644,16 @@ spec:
failureThreshold:
format: int32
type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -12054,56 +13758,6 @@ spec:
- name
type: object
type: array
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- dnsPolicy:
- type: string
- enableServiceLinks:
- type: boolean
- hostAliases:
- items:
- properties:
- hostnames:
- items:
- type: string
- type: array
- ip:
- type: string
- type: object
- type: array
- hostIPC:
- type: boolean
- hostNetwork:
- type: boolean
- hostPID:
- type: boolean
- hostname:
- type: string
- imagePullSecrets:
- items:
- properties:
- name:
- type: string
- type: object
- type: array
logger:
properties:
mode:
@@ -12125,6 +13779,12 @@ spec:
additionalProperties:
type: string
type: object
+ x-kubernetes-map-type: atomic
+ os:
+ properties:
+ name:
+ type: string
+ type: object
overhead:
additionalProperties:
anyOf:
@@ -13074,6 +14734,9 @@ spec:
type: object
lastFailureInfo:
properties:
+ exitCode:
+ format: int32
+ type: integer
location:
type: string
message:
diff --git a/config/crd/bases/serving.kserve.io_servingruntimes.yaml b/config/crd/bases/serving.kserve.io_servingruntimes.yaml
index cc96fb43..953115aa 100644
--- a/config/crd/bases/serving.kserve.io_servingruntimes.yaml
+++ b/config/crd/bases/serving.kserve.io_servingruntimes.yaml
@@ -1,5 +1,4 @@
-# Copied from https://github.com/kserve/kserve/blob/335dfbcc461a3b2127354aeb7df2414fb11ddfe3/config/crd/serving.kserve.io_servingruntimes.yaml
-#
+# Copied from https://github.com/kserve/kserve/blob/v0.11.0-rc0/config/crd/serving.kserve.io_servingruntimes.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
diff --git a/config/dashboard/ModelMeshMetricsDashboard.json b/config/dashboard/ModelMeshMetricsDashboard.json
new file mode 100644
index 00000000..6f1e5636
--- /dev/null
+++ b/config/dashboard/ModelMeshMetricsDashboard.json
@@ -0,0 +1,4017 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_PROMETHEUS",
+ "label": "prometheus",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "__elements": {},
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "9.3.2"
+ },
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "timeseries",
+ "name": "Time series",
+ "version": ""
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "target": {
+ "limit": 100,
+ "matchAny": false,
+ "tags": [],
+ "type": "dashboard"
+ },
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "liveNow": false,
+ "panels": [
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 81,
+ "panels": [],
+ "title": "Global Metrics",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 86400,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 6,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 3,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "s"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Age at Eviction"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "#F2CC0C",
+ "mode": "fixed"
+ }
+ },
+ {
+ "id": "custom.drawStyle",
+ "value": "points"
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 10,
+ "x": 0,
+ "y": 1
+ },
+ "id": 82,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "max(modelmesh_instance_lru_age_seconds{namespace=\"$namespace\",pod=~\"$servicename-.*\"})",
+ "interval": "",
+ "legendFormat": "LRU Age",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "max(rate(modelmesh_age_at_eviction_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval])/rate(modelmesh_age_at_eviction_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/1000",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Age at Eviction",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Global LRU age",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 3,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "deckbytes"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "triton capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "mlserver capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "triton usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "mlserver usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "total usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-green",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "total capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-green",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 10,
+ "x": 10,
+ "y": 1
+ },
+ "id": 83,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(modelmesh_instance_used_bytes{namespace=\"$namespace\",pod=~\"$servicename-.*\"}/1024)",
+ "interval": "",
+ "legendFormat": "total usage",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(modelmesh_instance_capacity_bytes{namespace=\"$namespace\",pod=~\"$servicename-.*\"}/1024)",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "total capacity",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Cluster capacity and utilization",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 5,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 1
+ },
+ "id": 73,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "count(container_memory_usage_bytes{namespace=\"$namespace\",pod=~\"$servicename-.*\",container=\"$mm_container\"})",
+ "interval": "",
+ "legendFormat": "Count",
+ "refId": "A"
+ }
+ ],
+ "title": "Number of Pods",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 3,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ },
+ "unit": "locale"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "models with load failure"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "red",
+ "mode": "palette-classic"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 8
+ },
+ "id": 84,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "max(modelmesh_models_managed_total{namespace=\"$namespace\",pod=~\"$servicename-.*\"})",
+ "interval": "",
+ "legendFormat": "Managed",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "max(modelmesh_models_loaded_total{namespace=\"$namespace\",pod=~\"$servicename-.*\"})",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Loaded",
+ "range": true,
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "max(modelmesh_models_with_failure_total{namespace=\"$namespace\",pod=~\"$servicename-.*\"})",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Failed",
+ "range": true,
+ "refId": "C"
+ }
+ ],
+ "title": "Model Counts",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 8
+ },
+ "id": 71,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(modelmesh_instance_models_total{namespace=\"$namespace\",pod=~\"$servicename-.*\"}, \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Model Counts per Pod",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of processed request per second",
+ "axisPlacement": "left",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 15
+ },
+ "id": 86,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(rate(modelmesh_api_request_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "External API",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(rate(modelmesh_invoke_model_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Internal API",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Inference API Request Rate",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decbytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 15
+ },
+ "id": 87,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_request_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/avg(rate(modelmesh_request_size_bytes_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "interval": "",
+ "legendFormat": "Request Size",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_response_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/avg(rate(modelmesh_response_size_bytes_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Response Size",
+ "refId": "B"
+ }
+ ],
+ "title": "Average Inference Request and Response Sizes",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of processed request per second",
+ "axisPlacement": "left",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 22
+ },
+ "id": 62,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(sum by (pod)(rate(modelmesh_api_request_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[1m])), \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "External Inference API Request Rate Per Pod",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 8,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "smooth",
+ "lineStyle": {
+ "fill": "solid"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 0,
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 22
+ },
+ "id": 57,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(rate(modelmesh_api_request_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\",code=\"OK\"}[$__rate_interval])/rate(modelmesh_api_request_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\",code=\"OK\"}[$__rate_interval]), \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "External Inference API Response Times by Pod (excluding errors)",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of processed request per second",
+ "axisPlacement": "left",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 0,
+ "y": 30
+ },
+ "id": 63,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(rate(modelmesh_invoke_model_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]), \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Internal Inference API Requests Rate Per Pod",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 8,
+ "y": 30
+ },
+ "id": 58,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.4.7",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(\n rate(modelmesh_invoke_model_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\",code=\"OK\"}[$__rate_interval]) /\n rate(modelmesh_invoke_model_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\",code=\"OK\"}[$__rate_interval]),\n \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Internal Inference API Response Time By Pod (excluding errors)",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 8,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineStyle": {
+ "fill": "solid"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 0,
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 16,
+ "y": 30
+ },
+ "id": 59,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(rate(modelmesh_req_queue_delay_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[5m])/rate(modelmesh_req_queue_delay_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[5m]), \"short_podname\", \"$1\", \"pod\", \"$servicename-(.*)\")\n",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Inference API Queue Delay Time By Pod",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of missed cache models",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "bars",
+ "fillOpacity": 15,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Cache misses"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": ["Cache Misses"],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 39
+ },
+ "id": 8,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(increase(modelmesh_cache_miss_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "interval": "10m",
+ "legendFormat": "Cache Misses",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Cache Misses (per 10min)",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Cache misses as percentage of requests",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 15,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "percentunit"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Cache misses"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 9,
+ "x": 8,
+ "y": 39
+ },
+ "id": 74,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(increase(modelmesh_cache_miss_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/sum(increase(modelmesh_api_request_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "20m",
+ "legendFormat": "Cache Miss Rate",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Cache Miss Rate",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Average request delay due to cache miss",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 7,
+ "x": 17,
+ "y": 39
+ },
+ "id": 46,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_cache_miss_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[5m]))/avg(rate(modelmesh_cache_miss_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[5m]))",
+ "interval": "",
+ "legendFormat": "Cache miss delay",
+ "refId": "A"
+ }
+ ],
+ "title": "Cache Miss Delay (average)",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of model loading per second",
+ "axisPlacement": "auto",
+ "axisSoftMax": 5,
+ "axisSoftMin": -5,
+ "barAlignment": 0,
+ "drawStyle": "bars",
+ "fillOpacity": 29,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Model Unloads"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "semi-dark-yellow",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Model Evictions"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "light-orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Load Failures"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "light-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 9,
+ "x": 0,
+ "y": 47
+ },
+ "id": 88,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(increase(modelmesh_loadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "format": "time_series",
+ "interval": "5m",
+ "intervalFactor": 1,
+ "legendFormat": "Model Loads",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "-sum(increase(modelmesh_unloadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "5m",
+ "intervalFactor": 1,
+ "legendFormat": "Model Unloads",
+ "range": true,
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "-sum(increase(modelmesh_age_at_eviction_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "5m",
+ "intervalFactor": 1,
+ "legendFormat": "Model Evictions",
+ "range": true,
+ "refId": "C"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum(increase(modelmesh_loadmodel_failure{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "5m",
+ "intervalFactor": 1,
+ "legendFormat": "Load Failures",
+ "range": true,
+ "refId": "D"
+ }
+ ],
+ "title": "Model Loads/Unloads (per 5min)",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decbytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 7,
+ "x": 9,
+ "y": 47
+ },
+ "id": 89,
+ "options": {
+ "graph": {},
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "7.5.11",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_loaded_model_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/avg(rate(modelmesh_loaded_model_size_bytes_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Loaded Model Size",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Loaded Model Sizes",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 8,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineStyle": {
+ "fill": "solid"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 0,
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 16,
+ "y": 47
+ },
+ "id": 90,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_loadmodel_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/avg(rate(modelmesh_loadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "interval": "",
+ "legendFormat": "Loading Time",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "avg(rate(modelmesh_model_sizing_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))/avg(rate(modelmesh_model_sizing_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-.*\"}[$__rate_interval]))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Sizing Time",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Model Loading Times",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 57
+ },
+ "id": 79,
+ "panels": [],
+ "title": "Deployment Metrics",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 3,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "deckbytes"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "triton capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "mlserver capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "triton usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "mlserver usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "total usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-green",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "total capacity"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-green",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 10,
+ "x": 0,
+ "y": 58
+ },
+ "id": 16,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": " sum by (deployment) ( \n\tlabel_replace(\n sum by (pod) (modelmesh_instance_used_bytes{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}/1024),\n \"deployment\",\n \"$2 usage\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "C"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\n sum by (pod) (modelmesh_instance_capacity_bytes{namespace=\"$namespace\",pod=~\"servicename-$runtime-.*\"}/1024),\n \"deployment\",\n \"$2 capacity\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "D"
+ }
+ ],
+ "title": "Cluster capacity and utilization",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 3,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ }
+ ]
+ },
+ "unit": "locale"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "models with load failure"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "red",
+ "mode": "palette-classic"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 10,
+ "x": 10,
+ "y": 58
+ },
+ "id": 45,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\n sum by (pod) (modelmesh_models_with_failure_total{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}) ,\n \"deployment\",\n \"$2-failed models\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n ))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\n sum by (pod) (modelmesh_instance_models_total{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}),\n \"deployment\",\n \"$2-loaded models\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Model Counts",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 5,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 4,
+ "x": 20,
+ "y": 58
+ },
+ "id": 91,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum by (deployment) (\n label_replace(\n count by (pod) (container_memory_usage_bytes{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\",container=\"$mm_container\"}),\n \"deployment\",\n \"$2\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)\n",
+ "interval": "",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Number of Pods",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of processed request per second",
+ "axisPlacement": "left",
+ "axisSoftMin": 0,
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 21,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 65
+ },
+ "id": 92,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "exemplar": true,
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\n sum by (pod) (rate(modelmesh_invoke_model_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval])),\n \"deployment\",\n \"$2 external request\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n ))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Inference API Request Rate",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decbytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 65
+ },
+ "id": 65,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": " avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_request_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 request size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )\n/\n avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_request_size_bytes_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 request size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": " avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_response_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 response size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )\n/\n avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_response_size_bytes_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 response size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Average Inference Request and Response Sizes",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "Number of model loading per second",
+ "axisPlacement": "auto",
+ "axisSoftMax": 5,
+ "axisSoftMin": -5,
+ "barAlignment": 0,
+ "drawStyle": "bars",
+ "fillOpacity": 29,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Model Unloads"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "semi-dark-yellow",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Model Evictions"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "light-orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Load Failures"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "light-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 9,
+ "x": 0,
+ "y": 72
+ },
+ "id": 22,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\nsum by (pod) (increase(modelmesh_loadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval])),\n \"deployment\",\n \"$2 loads\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "interval": "5m",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "-sum by (deployment) ( \n\tlabel_replace(\nsum by (pod) (increase(modelmesh_unloadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval])),\n \"deployment\",\n \"$2 unloads\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "interval": "5m",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "-sum by (deployment) ( \n\tlabel_replace(\nsum by (pod) (increase(modelmesh_age_at_eviction_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval])),\n \"deployment\",\n \"$2 evictions\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "interval": "5m",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "C"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "sum by (deployment) ( \n\tlabel_replace(\nsum by (pod) (increase(modelmesh_loadmodel_failure{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval])),\n \"deployment\",\n \"$2 failures\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)",
+ "hide": false,
+ "interval": "5m",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "D"
+ }
+ ],
+ "title": "Model Loads/Unloads (per 5min)",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decbytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 7,
+ "x": 9,
+ "y": 72
+ },
+ "id": 61,
+ "options": {
+ "graph": {},
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "7.5.11",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": "avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_loaded_model_size_bytes_sum{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 model size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)\n\n/\n\navg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_loaded_model_size_bytes_count{namespace=\"modelmesh-serving\",pod=~\"modelmesh-serving-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 model size\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n)\n\n",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Loaded Model Sizes",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 8,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineStyle": {
+ "fill": "solid"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 0,
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 16,
+ "y": 72
+ },
+ "id": 47,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.1.5",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": " avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_loadmodel_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 loading time\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )\n/\n avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_loadmodel_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 loading time\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "editorMode": "code",
+ "expr": " avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_model_sizing_milliseconds_sum{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 sizing time\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )\n/\n avg by (deployment) (\n label_replace(\n avg by (pod) (\n rate(\n modelmesh_model_sizing_milliseconds_count{namespace=\"$namespace\",pod=~\"$servicename-$runtime-.*\"}[$__rate_interval]\n )\n ),\n \"deployment\",\n \"$2 sizing time\",\n \"pod\",\n \"(modelmesh-serving)-(.*?)-(.*)\"\n )\n )",
+ "hide": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "Model Loading Times",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "collapsed": true,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 82
+ },
+ "id": 69,
+ "panels": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 5,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "smooth",
+ "lineWidth": 1,
+ "pointSize": 2,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 3,
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "core"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "CPU Requests"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Allocation"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 27
+ },
+ "id": 48,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "label_replace(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\",pod=~\"$servicename-.*\", container=\"$mm_container\"}[$__rate_interval]), \"short_podname\", \"$1\", \"pod\",\"$servicename-(.*)\")",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "avg(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{namespace=\"$namespace\",pod=~\"$servicename-.*\",container=\"$mm_container\"})",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Allocation",
+ "refId": "B"
+ }
+ ],
+ "title": "ModelMesh Container CPU Usage",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decmbytes"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Memory Requests"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 27
+ },
+ "id": 50,
+ "options": {
+ "graph": {},
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "7.5.11",
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "label_replace(container_memory_usage_bytes{namespace=\"$namespace\",pod=~\"$servicename-.*\", container=\"$mm_container\"}/1024/1024,\"short_podname\", \"$1\", \"pod\",\"$servicename-(.*)\")",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "avg(cluster:namespace:pod_memory:active:kube_pod_container_resource_requests{namespace=\"$namespace\",container=\"$mm_container\",pod=~\"$servicename-.*\"}/1024/1024)",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Allocation",
+ "refId": "B"
+ }
+ ],
+ "title": "Model Mesh Container Memory Usage",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 2,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "smooth",
+ "lineWidth": 1,
+ "pointSize": 2,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "decimals": 2,
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "core"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 38
+ },
+ "id": 33,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": false,
+ "expr": "rate(container_cpu_usage_seconds_total{namespace=\"$namespace\",pod=~\"$servicename-.*\",container!=\"$mm_container\",container!=\"\"}[$__rate_interval])",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{container}}",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "0": "P",
+ "1": "1",
+ "2": "8",
+ "3": "0",
+ "4": "9",
+ "5": "F",
+ "6": "7",
+ "7": "C",
+ "8": "D",
+ "9": "0",
+ "10": "C",
+ "11": "7",
+ "12": "5",
+ "13": "A",
+ "14": "C",
+ "15": "F",
+ "16": "3"
+ },
+ "exemplar": true,
+ "expr": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{namespace=\"$namespace\",pod=~\"$servicename-.*\",container!=\"$mm_container\",container!=\"\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{container}}-alloc",
+ "refId": "B"
+ }
+ ],
+ "title": "Serving Runtime Container CPU Usage",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "graph": false,
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": true,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decmbytes"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Memory Requests"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "super-light-blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 38
+ },
+ "id": 77,
+ "options": {
+ "graph": {},
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "7.5.11",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "label_replace(container_memory_usage_bytes{namespace=\"$namespace\",pod=~\"$servicename-.*\",container!=\"$mm_container\",container!=\"\"}/1024/1024,\"short_podname\", \"$1\", \"pod\",\"$servicename-(.*)\")",
+ "interval": "",
+ "legendFormat": "{{short_podname}}",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "avg(cluster:namespace:pod_memory:active:kube_pod_container_resource_requests{namespace=\"$namespace\",container!=\"$mm_container\",container!=\"\",pod=~\"$servicename-.*\"}/1024/1024)",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Allocation",
+ "refId": "B"
+ }
+ ],
+ "title": "Serving Runtime Container Memory Usage",
+ "type": "timeseries"
+ }
+ ],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Container Resource Utilization",
+ "type": "row"
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 37,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "selected": false,
+ "text": "my-namespace",
+ "value": "my-namespace"
+ },
+ "hide": 0,
+ "name": "namespace",
+ "options": [
+ {
+ "selected": true,
+ "text": "my-namespace",
+ "value": "my-namespace"
+ }
+ ],
+ "query": "my-namespace",
+ "skipUrlSync": false,
+ "type": "textbox"
+ },
+ {
+ "current": {
+ "selected": false,
+ "text": "my-service-name",
+ "value": "my-service-name"
+ },
+ "hide": 0,
+ "name": "servicename",
+ "options": [
+ {
+ "selected": true,
+ "text": "my-service-name",
+ "value": "my-service-name"
+ }
+ ],
+ "query": "my-service-name",
+ "skipUrlSync": false,
+ "type": "textbox"
+ },
+ {
+ "current": {
+ "selected": true,
+ "text": "mm-runtime",
+ "value": "mm-runtime"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "mm container",
+ "multi": false,
+ "name": "mm_container",
+ "options": [
+ {
+ "selected": false,
+ "text": "mm",
+ "value": "mm"
+ },
+ {
+ "selected": true,
+ "text": "mm-runtime",
+ "value": "mm-runtime"
+ },
+ {
+ "selected": false,
+ "text": "modelmesh-runtime",
+ "value": "modelmesh-runtime"
+ }
+ ],
+ "query": "mm,mm-runtime,modelmesh-runtime",
+ "queryValue": "",
+ "skipUrlSync": false,
+ "type": "custom"
+ },
+ {
+ "current": {
+ "selected": true,
+ "text": ["mlserver"],
+ "value": ["mlserver"]
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "runtime",
+ "multi": true,
+ "name": "runtime",
+ "options": [
+ {
+ "selected": true,
+ "text": "mlserver",
+ "value": "mlserver"
+ },
+ {
+ "selected": false,
+ "text": "triton",
+ "value": "triton"
+ },
+ {
+ "selected": false,
+ "text": "ovms",
+ "value": "ovms"
+ },
+ {
+ "selected": false,
+ "text": "torchserve",
+ "value": "torchserve"
+ }
+ ],
+ "query": "mlserver,triton,ovms,torchserve",
+ "queryValue": "",
+ "skipUrlSync": false,
+ "type": "custom"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-2d",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "ModelMesh Dashboard",
+ "uid": "vMm_rt-7z-new",
+ "version": 1,
+ "weekStart": ""
+}
diff --git a/config/default/config-defaults.yaml b/config/default/config-defaults.yaml
index 1834c3ff..616812ef 100644
--- a/config/default/config-defaults.yaml
+++ b/config/default/config-defaults.yaml
@@ -16,7 +16,7 @@ podsPerRuntime: 2
headlessService: true
modelMeshImage:
name: kserve/modelmesh
- tag: v0.11.0-alpha
+ tag: v0.11.0-rc0
modelMeshResources:
requests:
cpu: "300m"
@@ -29,7 +29,7 @@ restProxy:
port: 8008
image:
name: kserve/rest-proxy
- tag: v0.10.0
+ tag: v0.11.0-rc0
resources:
requests:
cpu: "50m"
@@ -39,7 +39,7 @@ restProxy:
memory: "512Mi"
storageHelperImage:
name: kserve/modelmesh-runtime-adapter
- tag: v0.11.0-alpha
+ tag: v0.11.0-rc0
command: ["/opt/app/puller"]
storageHelperResources:
requests:
diff --git a/config/dependencies/quickstart.yaml b/config/dependencies/quickstart.yaml
index e04bfeae..b976d1aa 100644
--- a/config/dependencies/quickstart.yaml
+++ b/config/dependencies/quickstart.yaml
@@ -110,7 +110,7 @@ spec:
- name: MINIO_SECRET_KEY
value: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
# image: quay.io/cloudservices/minio:latest
- image: kserve/modelmesh-minio-examples:latest
+ image: kserve/modelmesh-minio-examples:v0.11.0-rc0
name: minio
---
apiVersion: v1
diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml
index cfa231da..a3f93dff 100644
--- a/config/manager/kustomization.yaml
+++ b/config/manager/kustomization.yaml
@@ -18,4 +18,4 @@ images:
- name: modelmesh-controller
newName: kserve/modelmesh-controller
## NOTE THIS SHOULD BE REPLACED WITH LATEST CONTROLLER IMAGE TAG
- newTag: v0.11.0-alpha
+ newTag: v0.11.0-rc0
diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml
index 4a05ced9..6a1fc790 100644
--- a/config/manager/manager.yaml
+++ b/config/manager/manager.yaml
@@ -28,14 +28,6 @@ spec:
control-plane: modelmesh-controller
spec:
affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/arch
- operator: In
- values:
- - amd64
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
diff --git a/config/prometheus/servicemonitor.yaml b/config/prometheus/servicemonitor.yaml
new file mode 100644
index 00000000..87c9e827
--- /dev/null
+++ b/config/prometheus/servicemonitor.yaml
@@ -0,0 +1,20 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ labels:
+ modelmesh-service: modelmesh-serving
+ name: modelmesh-service-monitor
+ namespace: monitoring
+spec:
+ endpoints:
+ - path: /metrics
+ port: "prometheus"
+ scheme: "https"
+ tlsConfig:
+ insecureSkipVerify: true
+ selector:
+ matchLabels:
+ modelmesh-service: modelmesh-serving
+ namespaceSelector:
+ matchNames:
+ - modelmesh-serving
diff --git a/config/runtimes/kustomization.yaml b/config/runtimes/kustomization.yaml
index 1355c82f..0c263d80 100644
--- a/config/runtimes/kustomization.yaml
+++ b/config/runtimes/kustomization.yaml
@@ -13,18 +13,18 @@
# limitations under the License.
resources:
- triton-2.x.yaml
- - mlserver-0.x.yaml
+ - mlserver-1.x.yaml
- ovms-1.x.yaml
- torchserve-0.x.yaml
images:
- name: tritonserver-2
newName: nvcr.io/nvidia/tritonserver
- newTag: "21.06.1-py3"
+ newTag: "23.04-py3"
- - name: mlserver-0
+ - name: mlserver-1
newName: seldonio/mlserver
- newTag: "0.5.2"
+ newTag: "1.3.2"
- name: ovms-1
newName: openvino/model_server
@@ -32,7 +32,7 @@ images:
- name: torchserve-0
newName: pytorch/torchserve
- newTag: 0.6.0-cpu
+ newTag: 0.7.1-cpu
transformers:
- ../default/metadataLabelTransformer.yaml
diff --git a/opendatahub/odh-manifests/model-mesh/odh-modelmesh-controller/runtimes/mlserver-0.x.yaml b/config/runtimes/mlserver-1.x.yaml
similarity index 95%
rename from opendatahub/odh-manifests/model-mesh/odh-modelmesh-controller/runtimes/mlserver-0.x.yaml
rename to config/runtimes/mlserver-1.x.yaml
index 09ac918d..5acf187a 100644
--- a/opendatahub/odh-manifests/model-mesh/odh-modelmesh-controller/runtimes/mlserver-0.x.yaml
+++ b/config/runtimes/mlserver-1.x.yaml
@@ -14,9 +14,9 @@
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
- name: mlserver-0.x
+ name: mlserver-1.x
labels:
- name: modelmesh-serving-mlserver-0.x-SR
+ name: modelmesh-serving-mlserver-1.x-SR
spec:
supportedModelFormats:
- name: sklearn
@@ -38,7 +38,7 @@ spec:
containers:
- name: mlserver
- image: mlserver-0:replace
+ image: mlserver-1:replace
env:
- name: MLSERVER_MODELS_DIR
value: "/models/_mlserver_models/"
diff --git a/config/samples/servingruntime_pullerless.yaml b/config/samples/servingruntime_pullerless.yaml
index b3faf6ef..12cab0c3 100644
--- a/config/samples/servingruntime_pullerless.yaml
+++ b/config/samples/servingruntime_pullerless.yaml
@@ -12,7 +12,7 @@ spec:
resourceFieldRef:
containerName: modelserver
resource: requests.memory
- image: seldonio/mlserver:0.3.2
+ image: seldonio/mlserver:1.3.2
name: modelserver
resources:
requests:
diff --git a/controllers/autoscaler/autoscaler_reconciler.go b/controllers/autoscaler/autoscaler_reconciler.go
index 95909b71..91a87dba 100644
--- a/controllers/autoscaler/autoscaler_reconciler.go
+++ b/controllers/autoscaler/autoscaler_reconciler.go
@@ -1,16 +1,16 @@
-//Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
//
-//Licensed under the Apache License, Version 2.0 (the "License");
-//you may not use this file except in compliance with the License.
-//You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
-//Unless required by applicable law or agreed to in writing, software
-//distributed under the License is distributed on an "AS IS" BASIS,
-//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//See the License for the specific language governing permissions and
-//limitations under the License.
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
package autoscaler
diff --git a/controllers/autoscaler/autoscaler_reconciler_test.go b/controllers/autoscaler/autoscaler_reconciler_test.go
index 8de8c1ba..c2be8d0c 100644
--- a/controllers/autoscaler/autoscaler_reconciler_test.go
+++ b/controllers/autoscaler/autoscaler_reconciler_test.go
@@ -1,16 +1,16 @@
-//Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
//
-//Licensed under the Apache License, Version 2.0 (the "License");
-//you may not use this file except in compliance with the License.
-//You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
-//Unless required by applicable law or agreed to in writing, software
-//distributed under the License is distributed on an "AS IS" BASIS,
-//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//See the License for the specific language governing permissions and
-//limitations under the License.
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
package autoscaler
diff --git a/controllers/config/manifest.go b/controllers/config/manifest.go
index 6c3a6311..5eb8d0b1 100644
--- a/controllers/config/manifest.go
+++ b/controllers/config/manifest.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package config
import (
diff --git a/controllers/config/overlay.go b/controllers/config/overlay.go
index c1440f3c..9e6c9eef 100644
--- a/controllers/config/overlay.go
+++ b/controllers/config/overlay.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package config
import (
diff --git a/controllers/config/overlay_test.go b/controllers/config/overlay_test.go
index 5018c3c4..06c7066a 100644
--- a/controllers/config/overlay_test.go
+++ b/controllers/config/overlay_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package config
import (
diff --git a/controllers/config/templating.go b/controllers/config/templating.go
index 31f8f5b9..6f4b4166 100644
--- a/controllers/config/templating.go
+++ b/controllers/config/templating.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package config
import (
diff --git a/controllers/const.go b/controllers/const.go
index 7e53bd07..8a9058af 100644
--- a/controllers/const.go
+++ b/controllers/const.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/controllers/hpa/hpa_reconciler.go b/controllers/hpa/hpa_reconciler.go
index 1158dd8e..776d8cd0 100644
--- a/controllers/hpa/hpa_reconciler.go
+++ b/controllers/hpa/hpa_reconciler.go
@@ -1,16 +1,16 @@
-//Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
//
-//Licensed under the Apache License, Version 2.0 (the "License");
-//you may not use this file except in compliance with the License.
-//You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
-//Unless required by applicable law or agreed to in writing, software
-//distributed under the License is distributed on an "AS IS" BASIS,
-//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//See the License for the specific language governing permissions and
-//limitations under the License.
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
package hpa
diff --git a/controllers/hpa/hpa_reconciler_test.go b/controllers/hpa/hpa_reconciler_test.go
index bdb857e9..9e9314c3 100644
--- a/controllers/hpa/hpa_reconciler_test.go
+++ b/controllers/hpa/hpa_reconciler_test.go
@@ -1,16 +1,16 @@
-//Copyright 2021 IBM Corporation
+// Copyright 2021 IBM Corporation
//
-//Licensed under the Apache License, Version 2.0 (the "License");
-//you may not use this file except in compliance with the License.
-//You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
-//Unless required by applicable law or agreed to in writing, software
-//distributed under the License is distributed on an "AS IS" BASIS,
-//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//See the License for the specific language governing permissions and
-//limitations under the License.
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
package hpa
diff --git a/controllers/modelmesh/cluster_config.go b/controllers/modelmesh/cluster_config.go
index 2c1092f1..972ea5b4 100644
--- a/controllers/modelmesh/cluster_config.go
+++ b/controllers/modelmesh/cluster_config.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/cluster_config_test.go b/controllers/modelmesh/cluster_config_test.go
index 12d3f225..99f1485c 100644
--- a/controllers/modelmesh/cluster_config_test.go
+++ b/controllers/modelmesh/cluster_config_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/const.go b/controllers/modelmesh/const.go
index e6af2ace..41656706 100644
--- a/controllers/modelmesh/const.go
+++ b/controllers/modelmesh/const.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
const (
diff --git a/controllers/modelmesh/constraints.go b/controllers/modelmesh/constraints.go
index 14502707..dd7392d5 100644
--- a/controllers/modelmesh/constraints.go
+++ b/controllers/modelmesh/constraints.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/constraints_test.go b/controllers/modelmesh/constraints_test.go
index a0e0ff6f..fd39dde0 100644
--- a/controllers/modelmesh/constraints_test.go
+++ b/controllers/modelmesh/constraints_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/endpoint.go b/controllers/modelmesh/endpoint.go
index ab63fad8..70ebe484 100644
--- a/controllers/modelmesh/endpoint.go
+++ b/controllers/modelmesh/endpoint.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/endpoint_test.go b/controllers/modelmesh/endpoint_test.go
index c740cbd1..bbd14415 100644
--- a/controllers/modelmesh/endpoint_test.go
+++ b/controllers/modelmesh/endpoint_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/etcd.go b/controllers/modelmesh/etcd.go
index eaf4d226..7e90468b 100644
--- a/controllers/modelmesh/etcd.go
+++ b/controllers/modelmesh/etcd.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/model_type_labels.go b/controllers/modelmesh/model_type_labels.go
index 9494c3a2..5b212dcd 100644
--- a/controllers/modelmesh/model_type_labels.go
+++ b/controllers/modelmesh/model_type_labels.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/model_type_labels_test.go b/controllers/modelmesh/model_type_labels_test.go
index bbd4c875..2a427062 100644
--- a/controllers/modelmesh/model_type_labels_test.go
+++ b/controllers/modelmesh/model_type_labels_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/modelmesh.go b/controllers/modelmesh/modelmesh.go
index f54fa753..91640ae3 100644
--- a/controllers/modelmesh/modelmesh.go
+++ b/controllers/modelmesh/modelmesh.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/modelmesh_test.go b/controllers/modelmesh/modelmesh_test.go
index 44e32cd3..0defeddc 100644
--- a/controllers/modelmesh/modelmesh_test.go
+++ b/controllers/modelmesh/modelmesh_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/proxy.go b/controllers/modelmesh/proxy.go
index e0c00b88..442ee835 100644
--- a/controllers/modelmesh/proxy.go
+++ b/controllers/modelmesh/proxy.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/puller.go b/controllers/modelmesh/puller.go
index c7678d3e..20f1e6d2 100644
--- a/controllers/modelmesh/puller.go
+++ b/controllers/modelmesh/puller.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/puller_test.go b/controllers/modelmesh/puller_test.go
index 0c5d9eb5..5c8eb266 100644
--- a/controllers/modelmesh/puller_test.go
+++ b/controllers/modelmesh/puller_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/runtime.go b/controllers/modelmesh/runtime.go
index 50e9b221..49803580 100644
--- a/controllers/modelmesh/runtime.go
+++ b/controllers/modelmesh/runtime.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
@@ -344,6 +345,9 @@ func addDomainSocketMount(rts *kserveapi.ServingRuntimeSpec, c *corev1.Container
func (m *Deployment) addPassThroughPodFieldsToDeployment(deployment *appsv1.Deployment) error {
rts := m.SRSpec
// these fields map directly to pod spec fields
+ // supported architectures are "amd64" and "arm64", "ppc64le"
+ // and "s390x" are not supported by tensorflow
+ // (https://github.com/kserve/modelmesh-runtime-adapter/pull/38#discussion_r1156749259)
deployment.Spec.Template.Spec.NodeSelector = rts.NodeSelector
deployment.Spec.Template.Spec.Tolerations = rts.Tolerations
archNodeSelector := corev1.NodeSelectorTerm{
@@ -351,7 +355,7 @@ func (m *Deployment) addPassThroughPodFieldsToDeployment(deployment *appsv1.Depl
{
Key: "kubernetes.io/arch",
Operator: corev1.NodeSelectorOpIn,
- Values: []string{"amd64"},
+ Values: []string{"amd64", "arm64"},
},
},
}
diff --git a/controllers/modelmesh/runtime_test.go b/controllers/modelmesh/runtime_test.go
index bf0b4f12..3883e1fe 100644
--- a/controllers/modelmesh/runtime_test.go
+++ b/controllers/modelmesh/runtime_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/tls.go b/controllers/modelmesh/tls.go
index 311f1f63..8f90f3e4 100644
--- a/controllers/modelmesh/tls.go
+++ b/controllers/modelmesh/tls.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/util.go b/controllers/modelmesh/util.go
index 4342e1cf..cd4e4a7d 100644
--- a/controllers/modelmesh/util.go
+++ b/controllers/modelmesh/util.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/modelmesh/util_test.go b/controllers/modelmesh/util_test.go
index 57ed821e..5b0d7b83 100644
--- a/controllers/modelmesh/util_test.go
+++ b/controllers/modelmesh/util_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package modelmesh
import (
diff --git a/controllers/predictor_controller.go b/controllers/predictor_controller.go
index 8d126064..5faa392b 100644
--- a/controllers/predictor_controller.go
+++ b/controllers/predictor_controller.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/controllers/predictor_controller_test.go b/controllers/predictor_controller_test.go
index bc9c98b8..cc825d8a 100644
--- a/controllers/predictor_controller_test.go
+++ b/controllers/predictor_controller_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/controllers/servingruntime_controller_test.go b/controllers/servingruntime_controller_test.go
index 1cc09841..a3982b69 100644
--- a/controllers/servingruntime_controller_test.go
+++ b/controllers/servingruntime_controller_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
@@ -53,7 +54,7 @@ func waitForAndGetRuntimeDeployment(runtimeName string) *appsv1.Deployment {
var _ = Describe("Sample Runtime", func() {
samplesToTest := []string{
- "config/runtimes/mlserver-0.x.yaml",
+ "config/runtimes/mlserver-1.x.yaml",
"config/runtimes/triton-2.x.yaml",
"config/runtimes/ovms-1.x.yaml",
"config/runtimes/torchserve-0.x.yaml",
@@ -98,7 +99,7 @@ var _ = Describe("Prometheus metrics configuration", func() {
reconcilerConfig.Metrics.Enabled = true
By("create a sample runtime")
- m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
+ m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
@@ -177,7 +178,7 @@ var _ = Describe("REST Proxy configuration", func() {
reconcilerConfig.RESTProxy.Enabled = true
By("create a sample runtime")
- m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
+ m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
@@ -204,7 +205,7 @@ var _ = Describe("Add Payload Processor", func() {
resetToPayloadConfig(false)
By("create a sample runtime")
- m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
+ m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
diff --git a/controllers/servingruntime_validator.go b/controllers/servingruntime_validator.go
index 28e38e29..9eb8be87 100644
--- a/controllers/servingruntime_validator.go
+++ b/controllers/servingruntime_validator.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/controllers/servingruntime_validator_test.go b/controllers/servingruntime_validator_test.go
index 4a68aa91..cd8a775c 100644
--- a/controllers/servingruntime_validator_test.go
+++ b/controllers/servingruntime_validator_test.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/controllers/testdata/servingruntime_controller.golden b/controllers/testdata/servingruntime_controller.golden
index 0fb8d605..b0f2d79c 100644
--- a/controllers/testdata/servingruntime_controller.golden
+++ b/controllers/testdata/servingruntime_controller.golden
@@ -12,7 +12,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
@@ -26,7 +26,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
@@ -37,6 +37,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/mlserver-adapter
@@ -156,7 +157,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
- image: mlserver-0:replace
+ image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -220,7 +221,7 @@ spec:
- name: MM_PAYLOAD_PROCESSORS
value: example:8080/consumer/kserve/v2 example2:8080/consumer/kserve/v2
- name: MM_LABELS
- value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
+ value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
@@ -318,7 +319,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
@@ -337,7 +338,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
@@ -348,6 +349,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/mlserver-adapter
@@ -467,7 +469,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
- image: mlserver-0:replace
+ image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -529,7 +531,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
- value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
+ value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
@@ -630,7 +632,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
@@ -644,7 +646,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
@@ -655,6 +657,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- env:
- name: REST_PROXY_LISTEN_PORT
@@ -748,7 +751,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
- image: mlserver-0:replace
+ image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -861,7 +864,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
- value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,pv:v2,rt:mlserver-0.x
+ value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,pv:v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
@@ -947,7 +950,7 @@ spec:
secretName: secret
status: {}
'''
-"Sample Runtime config/runtimes/mlserver-0.x.yaml should be a valid runtime specification" = '''
+"Sample Runtime config/runtimes/mlserver-1.x.yaml should be a valid runtime specification" = '''
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -959,7 +962,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
@@ -973,7 +976,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
- name: modelmesh-serving-mlserver-0.x
+ name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
@@ -984,6 +987,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/mlserver-adapter
@@ -1103,7 +1107,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
- image: mlserver-0:replace
+ image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -1165,7 +1169,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
- value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
+ value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
@@ -1288,6 +1292,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/ovms-adapter
@@ -1584,6 +1589,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/torchserve-adapter
@@ -1883,6 +1889,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- command:
- /opt/app/triton-adapter
@@ -2197,6 +2204,7 @@ spec:
operator: In
values:
- amd64
+ - arm64
containers:
- env:
- name: MODEL_DIRECTORY_PATH
@@ -2207,7 +2215,7 @@ spec:
containerName: modelserver
divisor: "0"
resource: requests.memory
- image: seldonio/mlserver:0.3.2
+ image: seldonio/mlserver:1.3.2
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
diff --git a/controllers/util.go b/controllers/util.go
index 308ec399..ba18cbd8 100644
--- a/controllers/util.go
+++ b/controllers/util.go
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
package controllers
import (
diff --git a/docs/component-versions.md b/docs/component-versions.md
index 1fbb01d3..ad4541ab 100644
--- a/docs/component-versions.md
+++ b/docs/component-versions.md
@@ -1,8 +1,8 @@
# Component versions
-The following table shows the component versions for the modelmesh-serving preview release (`v0.11.0-alpha`).
+The following table shows the component versions for the latest modelmesh-serving release (v0.11.0-rc0).
| Component | Description | Upstream Revision |
| - | - | - |
-| ModelMesh | Serves as a general-purpose model serving management/routing layer | [v0.11.0-alpha](https://github.com/kserve/modelmesh/tree/v0.11.0-alpha) |
-| ModelMesh Runtime Adapter | Contains the unified puller/runtime-adapter image | [v0.11.0-alpha](https://github.com/kserve/modelmesh-runtime-adapter/tree/v0.11.0-alpha) |
-| REST Proxy | Supports inference requests using KServe V2 REST Predict Protocol | [v0.10.0](https://github.com/kserve/rest-proxy/tree/v0.10.0) |
+| ModelMesh | Serves as a general-purpose model serving management/routing layer | [v0.11.0-rc0](https://github.com/kserve/modelmesh/tree/v0.11.0-rc0) |
+| ModelMesh Runtime Adapter | Contains the unified puller/runtime-adapter image | [v0.11.0-rc0](https://github.com/kserve/modelmesh-runtime-adapter/tree/v0.11.0-rc0) |
+| REST Proxy | Supports inference requests using KServe V2 REST Predict Protocol | [v0.11.0-rc0](https://github.com/kserve/rest-proxy/tree/v0.11.0-rc0) |
diff --git a/docs/install/README.md b/docs/install/README.md
index 88c486e1..cf3b007c 100644
--- a/docs/install/README.md
+++ b/docs/install/README.md
@@ -64,7 +64,7 @@ The deployed footprint can be significantly reduced in the following ways:
```shell
> kubectl edit servingruntime triton-2.x
-> kubectl edit servingruntime mlserver-0.x
+> kubectl edit servingruntime mlserver-1.x
> kubectl edit servingruntime ovms-1.x
```
diff --git a/docs/install/install-script.md b/docs/install/install-script.md
index bd3118a7..2fea594c 100644
--- a/docs/install/install-script.md
+++ b/docs/install/install-script.md
@@ -43,7 +43,7 @@ A secret named `model-serving-etcd` will be created and passed to the controller
Install the latest release of [modelmesh-serving](https://github.com/kserve/modelmesh-serving/releases/v0.11.0-alpha) by first cloning the corresponding release branch:
```shell
-RELEASE="release-0.11-alpha"
+RELEASE=release-0.11
git clone -b $RELEASE --depth 1 --single-branch https://github.com/kserve/modelmesh-serving.git
cd modelmesh-serving
```
diff --git a/docs/model-formats/advanced-configuration.md b/docs/model-formats/advanced-configuration.md
index 462212b7..c788eab8 100644
--- a/docs/model-formats/advanced-configuration.md
+++ b/docs/model-formats/advanced-configuration.md
@@ -78,8 +78,8 @@ To pass runtime specific configuration through to MLServer, include a non-empty
└──