blob: 6fc48edd0fb2c826e19c8d337fe9077842a724f0 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: submarines.submarine.apache.org
labels:
app.kubernetes.io/name: submarine-operator
app.kubernetes.io/version: "0.8.0"
app.kubernetes.io/component: submarine-operator
app.kubernetes.io/managed-by: Helm
spec:
group: submarine.apache.org
names:
kind: Submarine
listKind: SubmarineList
plural: submarines
singular: submarine
shortNames:
- sm
categories:
- all
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: Submarine is the Schema for the submarines API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: SubmarineSpec defines the desired state of Submarine
properties:
common:
description: Common is the spec that defines some submarine common
configurations
properties:
image:
description: Image is the basic image used in initcontainer in
some submarine resources
properties:
busybox:
description: BusyboxImage is the image used by the submarine
service resource (server...) to check whether the minio
is started in the initcontainer
type: string
mc:
description: McImage is the image used by the submarine service
resource (server...) to check whether the minio is started
in the initcontainer
type: string
pullSecrets:
description: PullSecrets is a specified array of imagePullSecrets.
This secrets must be manually created in the namespace.
items:
type: string
type: array
type: object
required:
- image
type: object
database:
description: Database is the spec that defines the submarine database
properties:
image:
description: Image is the submarine database's docker image
type: string
mysqlRootPasswordSecret:
description: 'MysqlRootPasswordSecret is the mysql root password
secret, this secret need password key: MYSQL_ROOT_PASSWORD'
type: string
storageSize:
description: StorageSize is the storage size of the database
type: string
required:
- storageSize
type: object
minio:
description: Minio is the spec that defines the submarine minio
properties:
accessKey:
description: AccessKey defines the access_key of minio
type: string
enabled:
description: Enabled defines whether to enable minio or not
type: boolean
image:
description: Image is the submarine minio's docker image
type: string
secretKey:
description: SecretKey defines the secret_key of minio
type: string
storageSize:
description: StorageSize defines the storage size of minio
type: string
required:
- enabled
- storageSize
type: object
mlflow:
description: Mlflow is the spec that defines the submarine mlflow
properties:
enabled:
description: Enabled defines whether to enable mlflow or not
type: boolean
image:
description: Image is the submarine mlflow's docker image
type: string
storageSize:
description: StorageSize defines the storage size of mlflow
type: string
required:
- enabled
- storageSize
type: object
server:
description: Server is the spec that defines the submarine server
properties:
env:
description: Envs is the extra environments that submarine server
requires
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must be a
C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded
using the previously defined environment variables in
the container and any service environment variables. If
a variable cannot be resolved, the reference in the input
string will be unchanged. Double $$ are reduced to a single
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
Escaped references will never be expanded, regardless
of whether the variable exists or not. Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
fieldRef:
description: 'Selects a field of the pod: supports metadata.name,
metadata.namespace, `metadata.labels[''<KEY>'']`,
`metadata.annotations[''<KEY>'']`, spec.nodeName,
spec.serviceAccountName, status.hostIP, status.podIP,
status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath
is written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the
specified API version.
type: string
required:
- fieldPath
type: object
resourceFieldRef:
description: 'Selects a resource of the container: only
resources limits and requests (limits.cpu, limits.memory,
limits.ephemeral-storage, requests.cpu, requests.memory
and requests.ephemeral-storage) are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the
exposed resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
secretKeyRef:
description: Selects a key of a secret in the pod's
namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
type: object
required:
- name
type: object
type: array
image:
description: Image is the submarine server's docker image
type: string
replicas:
description: Replicas is the number of submarine server's replica
format: int32
minimum: 1
type: integer
required:
- replicas
type: object
tensorboard:
description: Tensorboard is the spec that defines the submarine tensorboard
properties:
enabled:
description: Enabled defines whether to enable tensorboard or
not
type: boolean
image:
description: Image is the submarine tensorboard's docker image
type: string
storageSize:
description: StorageSize defines the storage size of tensorboard
type: string
required:
- enabled
- storageSize
type: object
version:
description: Version is the submarine docker image version
type: string
virtualservice:
description: Virtualservice is the spec that defines the submarine
virtualservice
properties:
gateways:
description: Hosts is the submarine virtualservice's gateways
items:
type: string
type: array
hosts:
description: Hosts is the submarine virtualservice's destination
hosts
items:
type: string
type: array
type: object
required:
- database
- minio
- mlflow
- server
- tensorboard
- version
type: object
status:
description: SubmarineStatus defines the observed state of Submarine
properties:
availableDatabaseReplicas:
description: AvailableServerReplicas is the current available replicas
of submarine database
format: int32
type: integer
availableServerReplicas:
description: AvailableServerReplicas is the current available replicas
of submarine server
format: int32
type: integer
submarineState:
description: SubmarineState tells the overall submarine state.
properties:
errorMessage:
type: string
state:
description: SubmarineStateType represents the type of the current
state of a submarine.
type: string
required:
- state
type: object
required:
- availableDatabaseReplicas
- availableServerReplicas
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []