-
Notifications
You must be signed in to change notification settings - Fork 671
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove installer.yaml for SageMaker operator #1440
Remove installer.yaml for SageMaker operator #1440
Conversation
Thank you for opening this pull request! 🙌 |
Kustomizer released their PR that allows loading from HTTP, meaning that we can remove the `installer.yaml` that was here because of that. Signed-off-by: stephen batifol <[email protected]>
a555b7e
to
2da1637
Compare
Cc @jeevb @evalsocket |
Hey @stephen37, thank you for the PR. Do you mind doing a diff between the checked in installer.yaml and the current version of installer.yaml that the http link refers to? |
Sure, I used diff --git a/installer.yaml b/installer_1_2_1.yaml
index 8399367e..36e4aad3 100644
--- a/installer.yaml
+++ b/installer_1_2_1.yaml
@@ -8,6 +8,8 @@ metadata:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: batchtransformjobs.sagemaker.aws.amazon.com
spec:
@@ -25,8 +27,10 @@ spec:
group: sagemaker.aws.amazon.com
names:
kind: BatchTransformJob
+ listKind: BatchTransformJobList
plural: batchtransformjobs
- scope: ""
+ singular: batchtransformjob
+ scope: Namespaced
subresources:
status: {}
validation:
@@ -36,374 +40,20 @@ spec:
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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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:
- properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
- format: int64
- type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
- format: int64
- type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
- items:
- properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
- type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
- type: string
- type: object
- type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
- type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
- type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
- type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
- type: string
type: object
spec:
+ description: BatchTransformJobSpec defines the desired state of BatchTransformJob
properties:
batchStrategy:
+ description: Batch Transform related struct
type: string
dataProcessing:
properties:
@@ -416,6 +66,7 @@ spec:
type: object
environment:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -525,12 +176,13 @@ spec:
type: object
required:
- modelName
+ - region
- transformInput
- transformOutput
- transformResources
- - region
type: object
status:
+ description: BatchTransformJobStatus defines the observed state of BatchTransformJob
properties:
additional:
description: Field to store additional information, for example if we
@@ -549,6 +201,7 @@ spec:
type: string
type: object
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -563,6 +216,8 @@ status:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: endpointconfigs.sagemaker.aws.amazon.com
spec:
@@ -576,8 +231,10 @@ spec:
group: sagemaker.aws.amazon.com
names:
kind: EndpointConfig
+ listKind: EndpointConfigList
plural: endpointconfigs
- scope: ""
+ singular: endpointconfig
+ scope: Namespaced
subresources:
status: {}
validation:
@@ -587,372 +244,17 @@ spec:
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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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:
- properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
- format: int64
- type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
- format: int64
- type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
- items:
- properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
- type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
- type: string
- type: object
- type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
- type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
- type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
- type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
- type: string
type: object
spec:
+ description: EndpointConfigSpec defines the desired state of EndpointConfig
properties:
kmsKeyId:
type: string
@@ -1010,6 +312,7 @@ spec:
- region
type: object
status:
+ description: EndpointConfigStatus defines the observed state of EndpointConfig
properties:
additional:
description: Field to store additional information, for example if we
@@ -1030,6 +333,7 @@ spec:
type: string
type: object
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -1044,409 +348,266 @@ status:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
- name: hostingdeployments.sagemaker.aws.amazon.com
+ name: hostingautoscalingpolicies.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- - JSONPath: .status.endpointStatus
+ - JSONPath: .status.hostingAutoscalingPolicyStatus
name: Status
type: string
- - JSONPath: .status.endpointName
- name: Sagemaker-endpoint-name
+ - JSONPath: .metadata.creationTimestamp
+ format: date
+ name: Creation-Time
type: string
group: sagemaker.aws.amazon.com
names:
- kind: HostingDeployment
- plural: hostingdeployments
- scope: ""
+ kind: HostingAutoscalingPolicy
+ listKind: HostingAutoscalingPolicyList
+ plural: hostingautoscalingpolicies
+ shortNames:
+ - hap
+ singular: hostingautoscalingpolicy
+ scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
- description: HostingDeployment is the Schema for the hostingdeployments API
+ description: HostingAutoscalingPolicy is the Schema for the HostingAutoscalingPolicy
+ 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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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: HostingAutoscalingPolicySpec defines the desired state of the
+ cluster for HostingAutoscalingPolicy
properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
+ maxCapacity:
format: int64
type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
+ minCapacity:
format: int64
type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
+ policyName:
+ description: The autoscaling policy name. This is optional for the SageMaker
+ K8s operator. If it is empty, the operator will populate it with a
+ generated name.
+ maxLength: 256
+ type: string
+ policyType:
+ description: The autoscaling policy type. This is optional for the SageMaker
+ K8s operator. If it is empty, the operator will populate it with TargetTrackingScaling
+ type: string
+ region:
+ type: string
+ resourceId:
items:
+ description: AutoscalingResource is used to create the string representing
+ the resourceID in the format endpoint/my-end-point/variant/my-variant
properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
+ endpointName:
+ minLength: 1
type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
+ variantName:
+ minLength: 1
type: string
type: object
+ minItems: 1
type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
+ sageMakerEndpoint:
+ description: A custom SageMaker endpoint to use when communicating with
+ SageMaker.
+ pattern: ^(https|http)://.*$
type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
+ scalableDimension:
type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
+ serviceNamespace:
+ type: string
+ suspendedState:
+ description: HAPSuspendedState https://docs.aws.amazon.com/autoscaling/application/APIReference/API_SuspendedState.html
+ properties:
+ dynamicScalingInSuspended:
+ type: boolean
+ dynamicScalingOutSuspended:
+ type: boolean
+ scheduledScalingSuspended:
+ type: boolean
+ type: object
+ targetTrackingScalingPolicyConfiguration:
+ description: 'TargetTrackingScalingPolicyConfig https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html
+ TODO: string requires the input to be in quotes in the spec which
+ is not intuitive Needs a fix for floats, probably use resource.Quantity'
+ properties:
+ customizedMetricSpecification:
+ description: CustomizedMetricSpecification https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html
+ properties:
+ dimensions:
+ items:
+ description: Used in describing maps in Kubernetes.
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ metricName:
+ minLength: 1
+ type: string
+ namespace:
+ minLength: 1
+ type: string
+ statistic:
+ minLength: 1
+ type: string
+ unit:
+ type: string
+ type: object
+ disableScaleIn:
+ type: boolean
+ predefinedMetricSpecification:
+ description: Ideally Predefined metric should not need a value but
+ this is for consistency with API usage
+ properties:
+ predefinedMetricType:
+ type: string
+ type: object
+ scaleInCooldown:
+ format: int64
+ type: integer
+ scaleOutCooldown:
+ format: int64
+ type: integer
+ targetValue:
+ format: int64
+ type: integer
+ type: object
+ required:
+ - region
+ type: object
+ status:
+ description: HostingAutoscalingPolicyStatus defines the observed state of
+ HostingAutoscalingPolicy
+ properties:
+ additional:
+ description: Field to store additional information, for example if we
+ are unable to check the status we update this.
type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
+ hostingAutoscalingPolicyStatus:
type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
+ lastCheckTime:
+ description: The last time that we checked the status of the job.
+ format: date-time
type: string
+ policyName:
+ type: string
+ resourceIDList:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - spec
+ type: object
+ version: v1
+ versions:
+ - name: v1
+ served: true
+ storage: true
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: []
+ storedVersions: []
+---
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
+ creationTimestamp: null
+ name: hostingdeployments.sagemaker.aws.amazon.com
+spec:
+ additionalPrinterColumns:
+ - JSONPath: .status.endpointStatus
+ name: Status
+ type: string
+ - JSONPath: .status.endpointName
+ name: Sagemaker-endpoint-name
+ type: string
+ group: sagemaker.aws.amazon.com
+ names:
+ kind: HostingDeployment
+ listKind: HostingDeploymentList
+ plural: hostingdeployments
+ singular: hostingdeployment
+ scope: Namespaced
+ subresources:
+ status: {}
+ validation:
+ openAPIV3Schema:
+ description: HostingDeployment is the Schema for the hostingdeployments 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: HostingDeploymentSpec defines the desired state of HostingDeployment
properties:
+ endpointName:
+ description: The SageMaker endpoint name. If it is empty the operator
+ will populate it with a generated name.
+ maxLength: 63
+ type: string
+ excludeRetainedVariantProperties:
+ items:
+ properties:
+ variantPropertyType:
+ enum:
+ - DesiredInstanceCount
+ - DesiredWeight
+ - DataCaptureConfig
+ type: string
+ required:
+ - variantPropertyType
+ type: object
+ type: array
kmsKeyId:
type: string
models:
items:
+ description: This is something we are defining not coming from aws-sdk-go-v2
properties:
containers:
items:
+ description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -1456,6 +617,11 @@ spec:
type: array
image:
type: string
+ mode:
+ enum:
+ - SingleModel
+ - MultiModel
+ type: string
modelDataUrl:
type: string
modelPackageName:
@@ -1471,17 +637,21 @@ spec:
name:
type: string
primaryContainer:
+ description: Primary container will be ignored if more than one
+ container in the `containers` field is provided.
type: string
vpcConfig:
properties:
securityGroupIds:
items:
type: string
+ maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
+ maxItems: 16
minItems: 1
type: array
required:
@@ -1489,8 +659,8 @@ spec:
- subnets
type: object
required:
- - name
- executionRoleArn
+ - name
type: object
type: array
productionVariants:
@@ -1528,6 +698,8 @@ spec:
region:
minLength: 1
type: string
+ retainAllVariantProperties:
+ type: boolean
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with
SageMaker.
@@ -1547,11 +719,12 @@ spec:
type: object
type: array
required:
- - region
- - productionVariants
- models
+ - productionVariants
+ - region
type: object
status:
+ description: HostingDeploymentStatus defines the observed state of HostingDeployment
properties:
additional:
description: This field contains additional information about failures.
@@ -1586,6 +759,7 @@ spec:
type: string
modelNames:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -1596,6 +770,8 @@ spec:
productionVariants:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariantSummary.html
items:
+ description: Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantSummary
+ This is only used in status so no validation is required
properties:
currentInstanceCount:
format: int64
@@ -1637,6 +813,7 @@ spec:
type: array
type: object
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -1651,6 +828,8 @@ status:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: hyperparametertuningjobs.sagemaker.aws.amazon.com
spec:
@@ -1687,8 +866,10 @@ spec:
group: sagemaker.aws.amazon.com
names:
kind: HyperparameterTuningJob
+ listKind: HyperparameterTuningJobList
plural: hyperparametertuningjobs
- scope: ""
+ singular: hyperparametertuningjob
+ scope: Namespaced
subresources:
status: {}
validation:
@@ -1699,372 +880,20 @@ spec:
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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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:
- properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
- format: int64
- type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
- format: int64
- type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
- items:
- properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
- type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
- type: string
- type: object
- type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
- type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
- type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
- type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
- type: string
type: object
spec:
+ description: HyperparameterTuningJobSpec defines the desired state of HyperparameterTuningJob
+ These are taken from aws-go-sdk-v2 and modified to use Kubebuilder validation
+ and json omitempty instead of aws-go-sdk-v2 validation and required parameter
+ notation, respectively.
properties:
hyperParameterTuningJobConfig:
properties:
@@ -2338,6 +1167,7 @@ spec:
type: string
staticHyperParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -2361,11 +1191,13 @@ spec:
securityGroupIds:
items:
type: string
+ maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
+ maxItems: 16
minItems: 1
type: array
required:
@@ -2401,6 +1233,8 @@ spec:
- region
type: object
status:
+ description: HyperparameterTuningJobStatus defines the observed state of
+ HyperparameterTuningJob
properties:
additional:
description: Field to store additional information, for example if we
@@ -2443,6 +1277,7 @@ spec:
type: string
tunedHyperParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -2505,6 +1340,7 @@ spec:
type: object
type: object
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -2519,6 +1355,8 @@ status:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: models.sagemaker.aws.amazon.com
spec:
@@ -2532,8 +1370,10 @@ spec:
group: sagemaker.aws.amazon.com
names:
kind: Model
+ listKind: ModelList
plural: models
- scope: ""
+ singular: model
+ scope: Namespaced
subresources:
status: {}
validation:
@@ -2543,380 +1383,27 @@ spec:
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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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:
- properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
- format: int64
- type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
- format: int64
- type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
- items:
- properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
- type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
- type: string
- type: object
- type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
- type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
- type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
- type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
- type: string
type: object
spec:
+ description: ModelSpec defines the desired state of Model
properties:
containers:
items:
+ description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -2926,6 +1413,11 @@ spec:
type: array
image:
type: string
+ mode:
+ enum:
+ - SingleModel
+ - MultiModel
+ type: string
modelDataUrl:
type: string
modelPackageName:
@@ -2937,11 +1429,13 @@ spec:
executionRoleArn:
type: string
primaryContainer:
+ description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -2951,6 +1445,11 @@ spec:
type: array
image:
type: string
+ mode:
+ enum:
+ - SingleModel
+ - MultiModel
+ type: string
modelDataUrl:
type: string
modelPackageName:
@@ -2973,47 +1472,338 @@ spec:
- value
type: object
type: array
- vpcConfig:
- properties:
- securityGroupIds:
- items:
- type: string
- minItems: 1
- type: array
- subnets:
- items:
- type: string
- minItems: 1
- type: array
- required:
- - securityGroupIds
- - subnets
- type: object
+ vpcConfig:
+ properties:
+ securityGroupIds:
+ items:
+ type: string
+ maxItems: 5
+ minItems: 1
+ type: array
+ subnets:
+ items:
+ type: string
+ maxItems: 16
+ minItems: 1
+ type: array
+ required:
+ - securityGroupIds
+ - subnets
+ type: object
+ required:
+ - executionRoleArn
+ - region
+ type: object
+ status:
+ description: ModelStatus defines the observed state of Model
+ properties:
+ additional:
+ description: Field to store additional information, for example if we
+ are unable to check the status in sagemaker we update this.
+ type: string
+ lastUpdateTime:
+ description: The last time this status was updated.
+ format: date-time
+ type: string
+ modelArn:
+ description: The Model ARN of the SageMaker model
+ type: string
+ sageMakerModelName:
+ description: The name of the model in SageMaker.
+ type: string
+ status:
+ description: The status of the model.
+ type: string
+ type: object
+ type: object
+ version: v1
+ versions:
+ - name: v1
+ served: true
+ storage: true
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: []
+ storedVersions: []
+---
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
+ creationTimestamp: null
+ name: processingjobs.sagemaker.aws.amazon.com
+spec:
+ additionalPrinterColumns:
+ - JSONPath: .status.processingJobStatus
+ name: Status
+ type: string
+ - JSONPath: .metadata.creationTimestamp
+ format: date
+ name: Creation-Time
+ type: string
+ - JSONPath: .status.sageMakerProcessingJobName
+ name: Sagemaker-Job-Name
+ type: string
+ group: sagemaker.aws.amazon.com
+ names:
+ kind: ProcessingJob
+ listKind: ProcessingJobList
+ plural: processingjobs
+ singular: processingjob
+ scope: Namespaced
+ subresources:
+ status: {}
+ validation:
+ openAPIV3Schema:
+ description: ProcessingJob is the Schema for the processingjobs 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: ProcessingJobSpec defines the desired state of ProcessingJob
+ properties:
+ appSpecification:
+ properties:
+ containerArguments:
+ items:
+ type: string
+ type: array
+ containerEntrypoint:
+ items:
+ type: string
+ type: array
+ imageUri:
+ type: string
+ type: object
+ environment:
+ items:
+ description: Used in describing maps in Kubernetes.
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ maxItems: 100
+ type: array
+ networkConfig:
+ properties:
+ enableInterContainerTrafficEncryption:
+ type: boolean
+ enableNetworkIsolation:
+ type: boolean
+ vpcConfig:
+ properties:
+ securityGroupIds:
+ items:
+ type: string
+ maxItems: 5
+ minItems: 1
+ type: array
+ subnets:
+ items:
+ type: string
+ maxItems: 16
+ minItems: 1
+ type: array
+ required:
+ - securityGroupIds
+ - subnets
+ type: object
+ type: object
+ processingInputs:
+ items:
+ properties:
+ inputName:
+ type: string
+ s3Input:
+ properties:
+ localPath:
+ maxLength: 256
+ type: string
+ s3CompressionType:
+ enum:
+ - None
+ - Gzip
+ type: string
+ s3DataDistributionType:
+ allOf:
+ - enum:
+ - FullyReplicated
+ - ShardedByS3Key
+ - enum:
+ - FullyReplicated
+ - ShardedByS3Key
+ type: string
+ s3DataType:
+ enum:
+ - S3Prefix
+ - ManifestFile
+ type: string
+ s3InputMode:
+ allOf:
+ - enum:
+ - File
+ - Pipe
+ - enum:
+ - Pipe
+ - File
+ type: string
+ s3Uri:
+ pattern: ^(https|s3)://([^/]+)/?(.*)$
+ type: string
+ required:
+ - localPath
+ - s3DataType
+ - s3InputMode
+ - s3Uri
+ type: object
+ required:
+ - inputName
+ - s3Input
+ type: object
+ maxItems: 10
+ type: array
+ processingOutputConfig:
+ properties:
+ kmsKeyId:
+ maxLength: 1024
+ type: string
+ outputs:
+ items:
+ properties:
+ outputName:
+ type: string
+ s3Output:
+ properties:
+ localPath:
+ maxLength: 256
+ type: string
+ s3UploadMode:
+ enum:
+ - Continuous
+ - EndOfJob
+ type: string
+ s3Uri:
+ pattern: ^(https|s3)://([^/]+)/?(.*)$
+ type: string
+ required:
+ - localPath
+ - s3UploadMode
+ - s3Uri
+ type: object
+ required:
+ - outputName
+ - s3Output
+ type: object
+ maxItems: 10
+ type: array
+ required:
+ - outputs
+ type: object
+ processingResources:
+ properties:
+ clusterConfig:
+ properties:
+ instanceCount:
+ format: int64
+ minimum: 1
+ type: integer
+ instanceType:
+ minLength: 1
+ type: string
+ volumeKmsKeyId:
+ type: string
+ volumeSizeInGB:
+ format: int64
+ minimum: 1
+ type: integer
+ required:
+ - instanceCount
+ - instanceType
+ - volumeSizeInGB
+ type: object
+ required:
+ - clusterConfig
+ type: object
+ region:
+ minLength: 1
+ type: string
+ roleArn:
+ maxLength: 2048
+ minLength: 20
+ type: string
+ sageMakerEndpoint:
+ description: A custom SageMaker endpoint to use when communicating with
+ SageMaker.
+ pattern: ^(https|http)://.*$
+ type: string
+ stoppingCondition:
+ description: StoppingConditionNoSpot is used for APIs which do not support
+ WaitTime param i.e. managed spot training not supported
+ properties:
+ maxRuntimeInSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ type: object
+ tags:
+ items:
+ properties:
+ key:
+ minLength: 1
+ type: string
+ value:
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ maxItems: 50
+ type: array
required:
- - executionRoleArn
+ - appSpecification
+ - processingResources
- region
+ - roleArn
type: object
status:
+ description: ProcessingJobStatus defines the observed state of ProcessingJob
properties:
additional:
description: Field to store additional information, for example if we
- are unable to check the status in sagemaker we update this.
+ are unable to check the status we update this.
type: string
- lastUpdateTime:
- description: The last time this status was updated.
- format: date-time
+ cloudWatchLogUrl:
+ description: CloudWatch URL for log
type: string
- modelArn:
- description: The Model ARN of the SageMaker model
+ lastCheckTime:
+ description: The last time that we checked the status of the SageMaker
+ job.
+ format: date-time
type: string
- sageMakerModelName:
- description: The name of the model in SageMaker.
+ processingJobStatus:
+ description: The status of the processing job. https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus
type: string
- status:
- description: The status of the model.
+ sageMakerProcessingJobName:
+ description: SageMaker processing job name
type: string
type: object
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -3028,6 +1818,8 @@ status:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: trainingjobs.sagemaker.aws.amazon.com
spec:
@@ -3048,8 +1840,10 @@ spec:
group: sagemaker.aws.amazon.com
names:
kind: TrainingJob
+ listKind: TrainingJobList
plural: trainingjobs
- scope: ""
+ singular: trainingjob
+ scope: Namespaced
subresources:
status: {}
validation:
@@ -3059,372 +1853,17 @@ spec:
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/api-conventions.md#resources'
+ 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/api-conventions.md#types-kinds'
+ 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:
- properties:
- annotations:
- additionalProperties:
- type: string
- description: 'Annotations is an unstructured key value map stored with
- a resource that may be set by external tools to store and retrieve
- arbitrary metadata. They are not queryable and should be preserved
- when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
- type: object
- clusterName:
- description: The name of the cluster which the object belongs to. This
- is used to distinguish resources with same name and namespace in different
- clusters. This field is not set anywhere right now and apiserver is
- going to ignore it if set in create or update request.
- type: string
- creationTimestamp:
- description: "CreationTimestamp is a timestamp representing the server
- time when this object was created. It is not guaranteed to be set
- in happens-before order across separate operations. Clients may not
- set this value. It is represented in RFC3339 form and is in UTC. \n
- Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- deletionGracePeriodSeconds:
- description: Number of seconds allowed for this object to gracefully
- terminate before it will be removed from the system. Only set when
- deletionTimestamp is also set. May only be shortened. Read-only.
- format: int64
- type: integer
- deletionTimestamp:
- description: "DeletionTimestamp is RFC 3339 date and time at which this
- resource will be deleted. This field is set by the server when a graceful
- deletion is requested by the user, and is not directly settable by
- a client. The resource is expected to be deleted (no longer visible
- from resource lists, and not reachable by name) after the time in
- this field, once the finalizers list is empty. As long as the finalizers
- list contains items, deletion is blocked. Once the deletionTimestamp
- is set, this value may not be unset or be set further into the future,
- although it may be shortened or the resource may be deleted prior
- to this time. For example, a user may request that a pod is deleted
- in 30 seconds. The Kubelet will react by sending a graceful termination
- signal to the containers in the pod. After that 30 seconds, the Kubelet
- will send a hard termination signal (SIGKILL) to the container and
- after cleanup, remove the pod from the API. In the presence of network
- partitions, this object may still exist after this timestamp, until
- an administrator or automated process can determine the resource is
- fully terminated. If not set, graceful deletion of the object has
- not been requested. \n Populated by the system when a graceful deletion
- is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
- format: date-time
- type: string
- finalizers:
- description: Must be empty before the object is deleted from the registry.
- Each entry is an identifier for the responsible component that will
- remove the entry from the list. If the deletionTimestamp of the object
- is non-nil, entries in this list can only be removed.
- items:
- type: string
- type: array
- generateName:
- description: "GenerateName is an optional prefix, used by the server,
- to generate a unique name ONLY IF the Name field has not been provided.
- If this field is used, the name returned to the client will be different
- than the name passed. This value will also be combined with a unique
- suffix. The provided value has the same validation rules as the Name
- field, and may be truncated by the length of the suffix required to
- make the value unique on the server. \n If this field is specified
- and the generated name exists, the server will NOT return a 409 -
- instead, it will either return 201 Created or 500 with Reason ServerTimeout
- indicating a unique name could not be found in the time allotted,
- and the client should retry (optionally after the time indicated in
- the Retry-After header). \n Applied only if Name is not specified.
- More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
- type: string
- generation:
- description: A sequence number representing a specific generation of
- the desired state. Populated by the system. Read-only.
- format: int64
- type: integer
- initializers:
- description: "An initializer is a controller which enforces some system
- invariant at object creation time. This field is a list of initializers
- that have not yet acted on this object. If nil or empty, this object
- has been completely initialized. Otherwise, the object is considered
- uninitialized and is hidden (in list/watch and get calls) from clients
- that haven't explicitly asked to observe uninitialized objects. \n
- When an object is created, the system will populate this list with
- the current set of initializers. Only privileged users may set or
- modify this list. Once it is empty, it may not be modified further
- by any user. \n DEPRECATED - initializers are an alpha field and will
- be removed in v1.15."
- properties:
- pending:
- description: Pending is a list of initializers that must execute
- in order before this object is visible. When the last pending
- initializer is removed, and no failing result is set, the initializers
- struct will be set to nil and the object is considered as initialized
- and visible to all clients.
- items:
- properties:
- name:
- description: name of the process that is responsible for initializing
- this object.
- type: string
- required:
- - name
- type: object
- type: array
- result:
- description: If result is set with the Failure field, the object
- will be persisted to storage and then deleted, ensuring that other
- clients can observe the deletion.
- 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/api-conventions.md#resources'
- type: string
- code:
- description: Suggested HTTP return code for this status, 0 if
- not set.
- format: int32
- type: integer
- details:
- description: Extended data associated with the reason. Each
- reason may define its own extended details. This field is
- optional and the data returned is not guaranteed to conform
- to any schema except that defined by the reason type.
- properties:
- causes:
- description: The Causes array includes more details associated
- with the StatusReason failure. Not all StatusReasons may
- provide detailed causes.
- items:
- properties:
- field:
- description: "The field of the resource that has caused
- this error, as named by its JSON serialization.
- May include dot and postfix notation for nested
- attributes. Arrays are zero-indexed. Fields may
- appear more than once in an array of causes due
- to fields having multiple errors. Optional. \n Examples:
- \ \"name\" - the field \"name\" on the current
- resource \"items[0].name\" - the field \"name\"
- on the first array entry in \"items\""
- type: string
- message:
- description: A human-readable description of the cause
- of the error. This field may be presented as-is
- to a reader.
- type: string
- reason:
- description: A machine-readable description of the
- cause of the error. If this value is empty there
- is no information available.
- type: string
- type: object
- type: array
- group:
- description: The group attribute of the resource associated
- with the status StatusReason.
- type: string
- kind:
- description: 'The kind attribute of the resource associated
- with the status StatusReason. On some operations may differ
- from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: The name attribute of the resource associated
- with the status StatusReason (when there is a single name
- which can be described).
- type: string
- retryAfterSeconds:
- description: If specified, the time in seconds before the
- operation should be retried. Some errors may indicate
- the client must take an alternate action - for those errors
- this field may indicate how long to wait before taking
- the alternate action.
- format: int32
- type: integer
- uid:
- description: 'UID of the resource. (when there is a single
- resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- type: object
- 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/api-conventions.md#types-kinds'
- type: string
- message:
- description: A human-readable description of the status of this
- operation.
- type: string
- metadata:
- description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- properties:
- continue:
- description: continue may be set if the user set a limit
- on the number of items returned, and indicates that the
- server has more data available. The value is opaque and
- may be used to issue another request to the endpoint that
- served this list to retrieve the next set of available
- objects. Continuing a consistent list may not be possible
- if the server configuration has changed or more than a
- few minutes have passed. The resourceVersion field returned
- when using this continue value will be identical to the
- value in the first response, unless you have received
- this token from an error message.
- type: string
- resourceVersion:
- description: 'String that identifies the server''s internal
- version of this object that can be used by clients to
- determine when objects have changed. Value must be treated
- as opaque by clients and passed unmodified back to the
- server. Populated by the system. Read-only. More info:
- https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
- type: string
- selfLink:
- description: selfLink is a URL representing this object.
- Populated by the system. Read-only.
- type: string
- type: object
- reason:
- description: A machine-readable description of why this operation
- is in the "Failure" status. If this value is empty there is
- no information available. A Reason clarifies an HTTP status
- code but does not override it.
- type: string
- status:
- description: 'Status of the operation. One of: "Success" or
- "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status'
- type: string
- type: object
- required:
- - pending
- type: object
- labels:
- additionalProperties:
- type: string
- description: 'Map of string keys and values that can be used to organize
- and categorize (scope and select) objects. May match selectors of
- replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
- type: object
- managedFields:
- description: "ManagedFields maps workflow-id and version to the set
- of fields that are managed by that workflow. This is mostly for internal
- housekeeping, and users typically shouldn't need to set or understand
- this field. A workflow can be the user's name, a controller's name,
- or the name of a specific apply path like \"ci-cd\". The set of fields
- is always in the version that the workflow used when modifying the
- object. \n This field is alpha and can be changed or removed without
- notice."
- items:
- properties:
- apiVersion:
- description: APIVersion defines the version of this resource that
- this field set applies to. The format is "group/version" just
- like the top-level APIVersion field. It is necessary to track
- the version of a field set because it cannot be automatically
- converted.
- type: string
- fields:
- additionalProperties: true
- description: Fields identifies a set of fields.
- type: object
- manager:
- description: Manager is an identifier of the workflow managing
- these fields.
- type: string
- operation:
- description: Operation is the type of operation which lead to
- this ManagedFieldsEntry being created. The only valid values
- for this field are 'Apply' and 'Update'.
- type: string
- time:
- description: Time is timestamp of when these fields were set.
- It should always be empty if Operation is 'Apply'
- format: date-time
- type: string
- type: object
- type: array
- name:
- description: 'Name must be unique within a namespace. Is required when
- creating resources, although some resources may allow a client to
- request the generation of an appropriate name automatically. Name
- is primarily intended for creation idempotence and configuration definition.
- Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- namespace:
- description: "Namespace defines the space within each name must be unique.
- An empty namespace is equivalent to the \"default\" namespace, but
- \"default\" is the canonical representation. Not all objects are required
- to be scoped to a namespace - the value of this field for those objects
- will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info:
- http://kubernetes.io/docs/user-guide/namespaces"
- type: string
- ownerReferences:
- description: List of objects depended by this object. If ALL objects
- in the list have been deleted, this object will be garbage collected.
- If this object is managed by a controller, then an entry in this list
- will point to this controller, with the controller field set to true.
- There cannot be more than one managing controller.
- items:
- properties:
- apiVersion:
- description: API version of the referent.
- type: string
- blockOwnerDeletion:
- description: If true, AND if the owner has the "foregroundDeletion"
- finalizer, then the owner cannot be deleted from the key-value
- store until this reference is removed. Defaults to false. To
- set this field, a user needs "delete" permission of the owner,
- otherwise 422 (Unprocessable Entity) will be returned.
- type: boolean
- controller:
- description: If true, this reference points to the managing controller.
- type: boolean
- kind:
- description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
- type: string
- name:
- description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
- type: string
- uid:
- description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
- type: string
- required:
- - apiVersion
- - kind
- - name
- - uid
- type: object
- type: array
- resourceVersion:
- description: "An opaque value that represents the internal version of
- this object that can be used by clients to determine when objects
- have changed. May be used for optimistic concurrency, change detection,
- and the watch operation on a resource or set of resources. Clients
- must treat these values as opaque and passed unmodified back to the
- server. They may only be valid for a particular resource or set of
- resources. \n Populated by the system. Read-only. Value must be treated
- as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
- type: string
- selfLink:
- description: SelfLink is a URL representing this object. Populated by
- the system. Read-only.
- type: string
- uid:
- description: "UID is the unique in time and space value for this object.
- It is typically generated by the server on successful creation of
- a resource and is not allowed to change on PUT operations. \n Populated
- by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
- type: string
type: object
spec:
+ description: TrainingJobSpec defines the desired state of TrainingJob
properties:
algorithmSpecification:
properties:
@@ -3467,14 +1906,17 @@ spec:
- s3Uri
type: object
debugHookConfig:
+ description: DebugHookConfig https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugHookConfig.html
properties:
collectionConfigurations:
items:
+ description: CollectionConfiguration https://docs.aws.amazon.com/sagemaker/latest/dg/API_CollectionConfiguration.html
properties:
collectionName:
type: string
collectionParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -3488,6 +1930,7 @@ spec:
type: string
ruleParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -3503,6 +1946,7 @@ spec:
type: object
debugRuleConfigurations:
items:
+ description: DebugRuleConfiguration https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugRuleConfiguration.html
properties:
instanceType:
type: string
@@ -3514,6 +1958,7 @@ spec:
type: string
ruleParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -3541,6 +1986,7 @@ spec:
type: boolean
hyperParameters:
items:
+ description: Used in describing maps in Kubernetes.
properties:
name:
type: string
@@ -3693,6 +2139,7 @@ spec:
type: object
type: array
tensorBoardOutputConfig:
+ description: TensorBoardOutputConfig https://docs.aws.amazon.com/sagemaker/latest/dg/API_TensorBoardOutputConfig.html
properties:
localPath:
type: string
@@ -3713,11 +2160,13 @@ spec:
securityGroupIds:
items:
type: string
+ maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
+ maxItems: 16
minItems: 1
type: array
required:
@@ -3727,12 +2176,13 @@ spec:
required:
- algorithmSpecification
- outputDataConfig
+ - region
- resourceConfig
- roleArn
- - region
- stoppingCondition
type: object
status:
+ description: TrainingJobStatus defines the observed state of TrainingJob
properties:
additional:
description: Field to store additional information, for example if we
@@ -3745,6 +2195,7 @@ spec:
description: Status of rule evaluation jobs, obtained from DebugRuleEvaluationStatuses.
https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html#sagemaker-DescribeTrainingJob-response-DebugRuleEvaluationStatuses
items:
+ description: DebugRuleEvaluationStatus https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugRuleEvaluationStatus.html
properties:
lastModifiedTime:
format: date-time
@@ -3781,6 +2232,7 @@ spec:
required:
- spec
type: object
+ version: v1
versions:
- name: v1
served: true
@@ -3838,161 +2290,161 @@ rules:
resources:
- batchtransformjobs
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- batchtransformjobs/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- endpointconfigs
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- endpointconfigs/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - hostingdeployments
+ - hostingautoscalingpolicies
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - hostingdeployments/status
+ - hostingautoscalingpolicies/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - models
+ - hostingdeployments
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - models/status
+ - hostingdeployments/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - endpointconfigs
+ - hyperparametertuningjobs
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - endpointconfigs/status
+ - hyperparametertuningjobs/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - hyperparametertuningjobs
+ - models
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - hyperparametertuningjobs/status
+ - models/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - models
+ - processingjobs
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- - models/status
+ - processingjobs/status
verbs:
- get
- - update
- patch
+ - update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- trainingjobs
verbs:
+ - create
+ - delete
- get
- list
- - watch
- - create
- - update
- patch
- - delete
+ - update
+ - watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- trainingjobs/status
verbs:
- get
- - update
- patch
+ - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -4106,7 +2558,7 @@ spec:
env:
- name: AWS_DEFAULT_SAGEMAKER_ENDPOINT
value: ""
- image: 957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1.1
+ image: 957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1.2
imagePullPolicy: Always
name: manager
resources:
|
As far as I can tell, these seem equivalent! thank you for doing that. |
I've got the deployment working and tried one simple thing but I haven't tried anything else. I can also put the same version as the one used in the |
Oh no, that's perfect, you tried a simple SageMaker through flyte example, right? Just wanted to make sure basic functionality is working... |
Yes 😄 |
One last thing, can you run |
I was pretty sure that I had pushed my comment but it turns out that it was too long for Github so I'm gonna split it in two apiVersion: v1
kind: Namespace
metadata:
name: flyte
---
apiVersion: v1
kind: Namespace
metadata:
name: kubeflow
---
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
name: sagemaker-k8s-operator-system
---
apiVersion: v1
kind: Namespace
metadata:
name: sparkoperator
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: batchtransformjobs.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.transformJobStatus
name: Status
type: string
- JSONPath: .metadata.creationTimestamp
format: date
name: Creation-Time
type: string
- JSONPath: .status.sageMakerTransformJobName
name: Sagemaker-Job-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: BatchTransformJob
listKind: BatchTransformJobList
plural: batchtransformjobs
singular: batchtransformjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: BatchTransformJob is the Schema for the batchtransformjobs 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: BatchTransformJobSpec defines the desired state of BatchTransformJob
properties:
batchStrategy:
description: Batch Transform related struct
type: string
dataProcessing:
properties:
JoinSource:
type: string
OutputFilter:
type: string
inputFilter:
type: string
type: object
environment:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
maxConcurrentTransforms:
format: int64
type: integer
maxPayloadInMB:
format: int64
type: integer
modelName:
type: string
region:
minLength: 1
type: string
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
transformInput:
properties:
compressionType:
enum:
- None
- Gzip
type: string
contentType:
type: string
dataSource:
properties:
s3DataSource:
properties:
s3DataType:
enum:
- S3Prefix
- ManifestFile
- AugmentedManifestFile
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3DataType
- s3Uri
type: object
required:
- s3DataSource
type: object
splitType:
type: string
required:
- dataSource
type: object
transformJobName:
description: The SageMaker batchtransform job name. This is optional for the SageMaker K8s operator. If it is empty, the operator will populate it with a generated name.
maxLength: 63
type: string
transformOutput:
properties:
accept:
type: string
assembleWith:
type: string
kmsKeyId:
type: string
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3OutputPath
type: object
transformResources:
properties:
instanceCount:
format: int64
minimum: 1
type: integer
instanceType:
description: Transform job has separate instance type called TransformInstanceType Keeping it string
minLength: 1
type: string
volumeKmsKeyId:
type: string
required:
- instanceCount
- instanceType
type: object
required:
- modelName
- region
- transformInput
- transformOutput
- transformResources
type: object
status:
description: BatchTransformJobStatus defines the observed state of BatchTransformJob
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status we update this.
type: string
lastCheckTime:
description: The last time that we checked the status of the SageMaker job.
format: date-time
type: string
sageMakerTransformJobName:
description: SageMaker TransformJobName job name
type: string
transformJobStatus:
description: The status of the transform job. https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTransformJob.html
type: string
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: endpointconfigs.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.status
name: Status
type: string
- JSONPath: .status.sageMakerEndpointConfigName
name: Sage-Maker-EndpointConfig-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: EndpointConfig
listKind: EndpointConfigList
plural: endpointconfigs
singular: endpointconfig
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: EndpointConfig is the Schema for the hostingdeployments 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: EndpointConfigSpec defines the desired state of EndpointConfig
properties:
kmsKeyId:
type: string
productionVariants:
items:
properties:
acceleratorType:
type: string
initialInstanceCount:
format: int64
minimum: 1
type: integer
initialVariantWeight:
description: We use an int64 here instead of float because floats are not supported by the Kubernetes API. The actual traffic directed to this ProductionVariant is the ratio of this variant weight to the sum of all variant weights.
format: int64
type: integer
instanceType:
type: string
modelName:
minLength: 1
type: string
variantName:
minLength: 1
type: string
required:
- initialInstanceCount
- instanceType
- modelName
- variantName
type: object
minItems: 1
type: array
region:
type: string
sageMakerEndpoint:
type: string
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
required:
- productionVariants
- region
type: object
status:
description: EndpointConfigStatus defines the observed state of EndpointConfig
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status in sagemaker we update this.
type: string
endpointConfigArn:
description: The EndpointConfig ARN of the SageMaker EndpointConfig
type: string
lastUpdateTime:
description: The last time this status was updated.
format: date-time
type: string
sageMakerEndpointConfigName:
description: The name of the EndpointConfig in SageMaker.
type: string
status:
description: The status of the EndpointConfig
type: string
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: flyteworkflows.flyte.lyft.com
spec:
group: flyte.lyft.com
names:
kind: FlyteWorkflow
plural: flyteworkflows
shortNames:
- fly
singular: flyteworkflow
scope: Namespaced
version: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: hostingautoscalingpolicies.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.hostingAutoscalingPolicyStatus
name: Status
type: string
- JSONPath: .metadata.creationTimestamp
format: date
name: Creation-Time
type: string
group: sagemaker.aws.amazon.com
names:
kind: HostingAutoscalingPolicy
listKind: HostingAutoscalingPolicyList
plural: hostingautoscalingpolicies
shortNames:
- hap
singular: hostingautoscalingpolicy
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: HostingAutoscalingPolicy is the Schema for the HostingAutoscalingPolicy 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: HostingAutoscalingPolicySpec defines the desired state of the cluster for HostingAutoscalingPolicy
properties:
maxCapacity:
format: int64
type: integer
minCapacity:
format: int64
type: integer
policyName:
description: The autoscaling policy name. This is optional for the SageMaker K8s operator. If it is empty, the operator will populate it with a generated name.
maxLength: 256
type: string
policyType:
description: The autoscaling policy type. This is optional for the SageMaker K8s operator. If it is empty, the operator will populate it with TargetTrackingScaling
type: string
region:
type: string
resourceId:
items:
description: AutoscalingResource is used to create the string representing the resourceID in the format endpoint/my-end-point/variant/my-variant
properties:
endpointName:
minLength: 1
type: string
variantName:
minLength: 1
type: string
type: object
minItems: 1
type: array
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
scalableDimension:
type: string
serviceNamespace:
type: string
suspendedState:
description: HAPSuspendedState https://docs.aws.amazon.com/autoscaling/application/APIReference/API_SuspendedState.html
properties:
dynamicScalingInSuspended:
type: boolean
dynamicScalingOutSuspended:
type: boolean
scheduledScalingSuspended:
type: boolean
type: object
targetTrackingScalingPolicyConfiguration:
description: 'TargetTrackingScalingPolicyConfig https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html TODO: string requires the input to be in quotes in the spec which is not intuitive Needs a fix for floats, probably use resource.Quantity'
properties:
customizedMetricSpecification:
description: CustomizedMetricSpecification https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html
properties:
dimensions:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
metricName:
minLength: 1
type: string
namespace:
minLength: 1
type: string
statistic:
minLength: 1
type: string
unit:
type: string
type: object
disableScaleIn:
type: boolean
predefinedMetricSpecification:
description: Ideally Predefined metric should not need a value but this is for consistency with API usage
properties:
predefinedMetricType:
type: string
type: object
scaleInCooldown:
format: int64
type: integer
scaleOutCooldown:
format: int64
type: integer
targetValue:
format: int64
type: integer
type: object
required:
- region
type: object
status:
description: HostingAutoscalingPolicyStatus defines the observed state of HostingAutoscalingPolicy
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status we update this.
type: string
hostingAutoscalingPolicyStatus:
type: string
lastCheckTime:
description: The last time that we checked the status of the job.
format: date-time
type: string
policyName:
type: string
resourceIDList:
items:
type: string
type: array
type: object
required:
- spec
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: hostingdeployments.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.endpointStatus
name: Status
type: string
- JSONPath: .status.endpointName
name: Sagemaker-endpoint-name
type: string
group: sagemaker.aws.amazon.com
names:
kind: HostingDeployment
listKind: HostingDeploymentList
plural: hostingdeployments
singular: hostingdeployment
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: HostingDeployment is the Schema for the hostingdeployments 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: HostingDeploymentSpec defines the desired state of HostingDeployment
properties:
endpointName:
description: The SageMaker endpoint name. If it is empty the operator will populate it with a generated name.
maxLength: 63
type: string
excludeRetainedVariantProperties:
items:
properties:
variantPropertyType:
enum:
- DesiredInstanceCount
- DesiredWeight
- DataCaptureConfig
type: string
required:
- variantPropertyType
type: object
type: array
kmsKeyId:
type: string
models:
items:
description: This is something we are defining not coming from aws-sdk-go-v2
properties:
containers:
items:
description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
image:
type: string
mode:
enum:
- SingleModel
- MultiModel
type: string
modelDataUrl:
type: string
modelPackageName:
type: string
type: object
minItems: 1
type: array
enableNetworkIsolation:
type: boolean
executionRoleArn:
minLength: 20
type: string
name:
type: string
primaryContainer:
description: Primary container will be ignored if more than one container in the `containers` field is provided.
type: string
vpcConfig:
properties:
securityGroupIds:
items:
type: string
maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
maxItems: 16
minItems: 1
type: array
required:
- securityGroupIds
- subnets
type: object
required:
- executionRoleArn
- name
type: object
type: array
productionVariants:
items:
properties:
acceleratorType:
type: string
initialInstanceCount:
format: int64
minimum: 1
type: integer
initialVariantWeight:
description: We use an int64 here instead of float because floats are not supported by the Kubernetes API. The actual traffic directed to this ProductionVariant is the ratio of this variant weight to the sum of all variant weights.
format: int64
type: integer
instanceType:
type: string
modelName:
minLength: 1
type: string
variantName:
minLength: 1
type: string
required:
- initialInstanceCount
- instanceType
- modelName
- variantName
type: object
minItems: 1
type: array
region:
minLength: 1
type: string
retainAllVariantProperties:
type: boolean
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
required:
- models
- productionVariants
- region
type: object
status:
description: HostingDeploymentStatus defines the observed state of HostingDeployment
properties:
additional:
description: This field contains additional information about failures.
type: string
creationTime:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-CreationTime
format: date-time
type: string
endpointArn:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-EndpointArn
type: string
endpointConfigName:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html#SageMaker-CreateEndpoint-request-EndpointConfigName
type: string
endpointName:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html#SageMaker-CreateEndpoint-request-EndpointName
type: string
endpointStatus:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-EndpointStatus
type: string
endpointUrl:
type: string
failureReason:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason
type: string
lastCheckTime:
format: date-time
type: string
lastModifiedTime:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#API_DescribeEndpoint_ResponseSyntax
format: date-time
type: string
modelNames:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
productionVariants:
description: https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariantSummary.html
items:
description: Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantSummary This is only used in status so no validation is required
properties:
currentInstanceCount:
format: int64
type: integer
currentWeight:
description: We use an int64 here instead of float because floats are not supported by the Kubernetes API. The actual traffic directed to this ProductionVariant is the ratio of this variant weight to the sum of all variant weights.
format: int64
type: integer
deployedImages:
items:
properties:
resolutionTime:
format: date-time
type: string
resolvedImage:
type: string
specifiedImage:
type: string
type: object
type: array
desiredInstanceCount:
format: int64
type: integer
desiredWeight:
description: We use an int64 here instead of float because floats are not supported by the Kubernetes API. The actual traffic directed to this ProductionVariant is the ratio of this variant weight to the sum of all variant weights.
format: int64
type: integer
variantName:
type: string
required:
- variantName
type: object
type: array
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: hyperparametertuningjobs.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.hyperParameterTuningJobStatus
name: Status
type: string
- JSONPath: .metadata.creationTimestamp
format: date
name: Creation-Time
type: string
- JSONPath: .status.trainingJobStatusCounters.completed
format: int64
name: Completed
type: number
- JSONPath: .status.trainingJobStatusCounters.inProgress
format: int64
name: InProgress
type: number
- JSONPath: .status.trainingJobStatusCounters.totalError
format: int64
name: Errors
type: number
- JSONPath: .status.trainingJobStatusCounters.stopped
format: int64
name: Stopped
type: number
- JSONPath: .status.bestTrainingJob.trainingJobName
name: Best-Training-Job
type: string
- JSONPath: .status.sageMakerHyperParameterTuningJobName
name: Sagemaker-Job-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: HyperparameterTuningJob
listKind: HyperparameterTuningJobList
plural: hyperparametertuningjobs
singular: hyperparametertuningjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: HyperparameterTuningJob is the Schema for the hyperparametertuningjobs 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: HyperparameterTuningJobSpec defines the desired state of HyperparameterTuningJob These are taken from aws-go-sdk-v2 and modified to use Kubebuilder validation and json omitempty instead of aws-go-sdk-v2 validation and required parameter notation, respectively.
properties:
hyperParameterTuningJobConfig:
properties:
hyperParameterTuningJobObjective:
properties:
metricName:
minLength: 1
type: string
type:
type: string
required:
- metricName
- type
type: object
parameterRanges:
properties:
categoricalParameterRanges:
items:
properties:
name:
type: string
values:
items:
type: string
minItems: 1
type: array
required:
- name
- values
type: object
type: array
continuousParameterRanges:
items:
properties:
maxValue:
type: string
minValue:
type: string
name:
type: string
scalingType:
type: string
required:
- maxValue
- minValue
- name
- scalingType
type: object
type: array
integerParameterRanges:
items:
properties:
maxValue:
type: string
minValue:
type: string
name:
type: string
scalingType:
type: string
required:
- maxValue
- minValue
- name
- scalingType
type: object
type: array
type: object
resourceLimits:
properties:
maxNumberOfTrainingJobs:
format: int64
minimum: 1
type: integer
maxParallelTrainingJobs:
format: int64
minimum: 1
type: integer
required:
- maxNumberOfTrainingJobs
- maxParallelTrainingJobs
type: object
strategy:
type: string
trainingJobEarlyStoppingType:
type: string
required:
- resourceLimits
- strategy
type: object
hyperParameterTuningJobName:
type: string
region:
minLength: 1
type: string
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
trainingJobDefinition:
properties:
algorithmSpecification:
properties:
algorithmName:
minLength: 1
type: string
metricDefinitions:
items:
properties:
name:
minLength: 1
type: string
regex:
minLength: 1
type: string
required:
- name
- regex
type: object
type: array
trainingImage:
type: string
trainingInputMode:
enum:
- File
- Pipe
type: string
required:
- trainingInputMode
type: object
checkpointConfig:
properties:
localPath:
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3Uri
type: object
enableInterContainerTrafficEncryption:
type: boolean
enableManagedSpotTraining:
type: boolean
enableNetworkIsolation:
type: boolean
inputDataConfig:
items:
properties:
channelName:
minLength: 1
pattern: '[A-Za-z0-9\.\-_]+'
type: string
compressionType:
enum:
- None
- Gzip
type: string
contentType:
type: string
dataSource:
properties:
fileSystemDataSource:
properties:
directoryPath:
type: string
fileSystemAccessMode:
type: string
fileSystemId:
type: string
fileSystemType:
type: string
required:
- directoryPath
- fileSystemAccessMode
- fileSystemId
- fileSystemType
type: object
s3DataSource:
properties:
attributeNames:
items:
type: string
type: array
s3DataDistributionType:
enum:
- FullyReplicated
- ShardedByS3Key
type: string
s3DataType:
enum:
- S3Prefix
- ManifestFile
- AugmentedManifestFile
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3DataType
- s3Uri
type: object
type: object
inputMode:
enum:
- Pipe
- File
type: string
recordWrapperType:
type: string
shuffleConfig:
properties:
seed:
format: int64
type: integer
required:
- seed
type: object
required:
- channelName
- dataSource
type: object
minItems: 1
type: array
outputDataConfig:
properties:
kmsKeyId:
type: string
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3OutputPath
type: object
resourceConfig:
properties:
instanceCount:
format: int64
minimum: 1
type: integer
instanceType:
minLength: 1
type: string
volumeKmsKeyId:
type: string
volumeSizeInGB:
format: int64
minimum: 1
type: integer
required:
- instanceCount
- instanceType
- volumeSizeInGB
type: object
roleArn:
minLength: 20
type: string
staticHyperParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
stoppingCondition:
properties:
maxRuntimeInSeconds:
format: int64
minimum: 1
type: integer
maxWaitTimeInSeconds:
format: int64
minimum: 1
type: integer
type: object
vpcConfig:
properties:
securityGroupIds:
items:
type: string
maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
maxItems: 16
minItems: 1
type: array
required:
- securityGroupIds
- subnets
type: object
required:
- algorithmSpecification
- outputDataConfig
- resourceConfig
- roleArn
- stoppingCondition
type: object
warmStartConfig:
properties:
parentHyperParameterTuningJobs:
items:
properties:
hyperParameterTuningJobName:
minLength: 1
type: string
type: object
minItems: 1
type: array
warmStartType:
type: string
required:
- parentHyperParameterTuningJobs
- warmStartType
type: object
required:
- hyperParameterTuningJobConfig
- region
type: object
status:
description: HyperparameterTuningJobStatus defines the observed state of HyperparameterTuningJob
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status we update this.
type: string
bestTrainingJob:
description: A HyperParameterTrainingJobSummary object that describes the training job that completed with the best current HyperParameterTuningJobObjective. See https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-BestTrainingJob
properties:
creationTime:
format: date-time
type: string
failureReason:
type: string
finalHyperParameterTuningJobObjectiveMetric:
properties:
metricName:
type: string
type:
type: string
value:
description: Value is string instead of float64 to prevent bugs when deserializing onto different platforms.
type: string
type: object
objectiveStatus:
type: string
trainingEndTime:
format: date-time
type: string
trainingJobArn:
type: string
trainingJobName:
type: string
trainingJobStatus:
type: string
trainingStartTime:
format: date-time
type: string
tunedHyperParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
tuningJobName:
type: string
type: object
hyperParameterTuningJobStatus:
description: The status of HyperParameterTrainingJob https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus
type: string
lastCheckTime:
description: The last time that we checked the status of the SageMaker job.
format: date-time
type: string
sageMakerHyperParameterTuningJobName:
description: SageMaker hyperparametertuning job name
type: string
trainingJobStatusCounters:
description: The TrainingJobStatusCounters object that specifies the number of training jobs, categorized by status, that this tuning job launched. https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html
properties:
completed:
description: The number of completed training jobs launched by the hyperparameter tuning job.
format: int64
type: integer
inProgress:
description: The number of in-progress training jobs launched by a hyperparameter tuning job.
format: int64
type: integer
nonRetryableError:
description: The number of training jobs that failed and can't be retried. A failed training job can't be retried if it failed because a client error occurred.
format: int64
type: integer
retryableError:
description: The number of training jobs that failed, but can be retried. A failed training job can be retried only if it failed because an internal service error occurred.
format: int64
type: integer
stopped:
description: The number of training jobs launched by a hyperparameter tuning job that were manually stopped.
format: int64
type: integer
totalError:
description: The sum of NonRetryableError and RetryableError. This is unique to the Kubernetes operator and is used to simplify the `kubectl get` output.
format: int64
type: integer
type: object
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: models.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.status
name: Status
type: string
- JSONPath: .status.sageMakerModelName
name: Sage-Maker-Model-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: Model
listKind: ModelList
plural: models
singular: model
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: Model is the Schema for the hostingdeployments 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: ModelSpec defines the desired state of Model
properties:
containers:
items:
description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
image:
type: string
mode:
enum:
- SingleModel
- MultiModel
type: string
modelDataUrl:
type: string
modelPackageName:
type: string
type: object
type: array
enableNetworkIsolation:
type: boolean
executionRoleArn:
type: string
primaryContainer:
description: Describes the container, as part of model definition.
properties:
containerHostname:
type: string
environment:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
image:
type: string
mode:
enum:
- SingleModel
- MultiModel
type: string
modelDataUrl:
type: string
modelPackageName:
type: string
type: object
region:
type: string
sageMakerEndpoint:
type: string
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
vpcConfig:
properties:
securityGroupIds:
items:
type: string
maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
maxItems: 16
minItems: 1
type: array
required:
- securityGroupIds
- subnets
type: object
required:
- executionRoleArn
- region
type: object
status:
description: ModelStatus defines the observed state of Model
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status in sagemaker we update this.
type: string
lastUpdateTime:
description: The last time this status was updated.
format: date-time
type: string
modelArn:
description: The Model ARN of the SageMaker model
type: string
sageMakerModelName:
description: The name of the model in SageMaker.
type: string
status:
description: The status of the model.
type: string
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: processingjobs.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.processingJobStatus
name: Status
type: string
- JSONPath: .metadata.creationTimestamp
format: date
name: Creation-Time
type: string
- JSONPath: .status.sageMakerProcessingJobName
name: Sagemaker-Job-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: ProcessingJob
listKind: ProcessingJobList
plural: processingjobs
singular: processingjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: ProcessingJob is the Schema for the processingjobs 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: ProcessingJobSpec defines the desired state of ProcessingJob
properties:
appSpecification:
properties:
containerArguments:
items:
type: string
type: array
containerEntrypoint:
items:
type: string
type: array
imageUri:
type: string
type: object
environment:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
maxItems: 100
type: array
networkConfig:
properties:
enableInterContainerTrafficEncryption:
type: boolean
enableNetworkIsolation:
type: boolean
vpcConfig:
properties:
securityGroupIds:
items:
type: string
maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
maxItems: 16
minItems: 1
type: array
required:
- securityGroupIds
- subnets
type: object
type: object
processingInputs:
items:
properties:
inputName:
type: string
s3Input:
properties:
localPath:
maxLength: 256
type: string
s3CompressionType:
enum:
- None
- Gzip
type: string
s3DataDistributionType:
allOf:
- enum:
- FullyReplicated
- ShardedByS3Key
- enum:
- FullyReplicated
- ShardedByS3Key
type: string
s3DataType:
enum:
- S3Prefix
- ManifestFile
type: string
s3InputMode:
allOf:
- enum:
- File
- Pipe
- enum:
- Pipe
- File
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- localPath
- s3DataType
- s3InputMode
- s3Uri
type: object
required:
- inputName
- s3Input
type: object
maxItems: 10
type: array
processingOutputConfig:
properties:
kmsKeyId:
maxLength: 1024
type: string
outputs:
items:
properties:
outputName:
type: string
s3Output:
properties:
localPath:
maxLength: 256
type: string
s3UploadMode:
enum:
- Continuous
- EndOfJob
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- localPath
- s3UploadMode
- s3Uri
type: object
required:
- outputName
- s3Output
type: object
maxItems: 10
type: array
required:
- outputs
type: object
processingResources:
properties:
clusterConfig:
properties:
instanceCount:
format: int64
minimum: 1
type: integer
instanceType:
minLength: 1
type: string
volumeKmsKeyId:
type: string
volumeSizeInGB:
format: int64
minimum: 1
type: integer
required:
- instanceCount
- instanceType
- volumeSizeInGB
type: object
required:
- clusterConfig
type: object
region:
minLength: 1
type: string
roleArn:
maxLength: 2048
minLength: 20
type: string
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
stoppingCondition:
description: StoppingConditionNoSpot is used for APIs which do not support WaitTime param i.e. managed spot training not supported
properties:
maxRuntimeInSeconds:
format: int64
minimum: 1
type: integer
type: object
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
maxItems: 50
type: array
required:
- appSpecification
- processingResources
- region
- roleArn
type: object
status:
description: ProcessingJobStatus defines the observed state of ProcessingJob
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status we update this.
type: string
cloudWatchLogUrl:
description: CloudWatch URL for log
type: string
lastCheckTime:
description: The last time that we checked the status of the SageMaker job.
format: date-time
type: string
processingJobStatus:
description: The status of the processing job. https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus
type: string
sageMakerProcessingJobName:
description: SageMaker processing job name
type: string
type: object
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: pytorchjobs.kubeflow.org
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[-1:].type
name: State
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: kubeflow.org
names:
kind: PyTorchJob
plural: pytorchjobs
singular: pytorchjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
spec:
properties:
pytorchReplicaSpecs:
properties:
Master:
properties:
replicas:
maximum: 1
minimum: 1
type: integer
Worker:
properties:
replicas:
minimum: 1
type: integer
versions:
- name: v1
served: true
storage: true
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (unknown)
creationTimestamp: null
name: scheduledsparkapplications.sparkoperator.k8s.io
spec:
group: sparkoperator.k8s.io
names:
kind: ScheduledSparkApplication
listKind: ScheduledSparkApplicationList
plural: scheduledsparkapplications
shortNames:
- scheduledsparkapp
singular: scheduledsparkapplication
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
concurrencyPolicy:
type: string
failedRunHistoryLimit:
format: int32
type: integer
schedule:
type: string
successfulRunHistoryLimit:
format: int32
type: integer
suspend:
type: boolean
template:
properties:
arguments:
items:
type: string
type: array
batchScheduler:
type: string
batchSchedulerOptions:
properties:
priorityClassName:
type: string
queue:
type: string
type: object
deps:
properties:
files:
items:
type: string
type: array
jars:
items:
type: string
type: array
pyFiles:
items:
type: string
type: array
type: object
driver:
properties:
affinity:
properties:
nodeAffinity:
properties:
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:
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
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
type: object
annotations:
additionalProperties:
type: string
type: object
configMaps:
items:
properties:
name:
type: string
path:
type: string
required:
- name
- path
type: object
type: array
coreLimit:
type: string
coreRequest:
type: string
cores:
format: int32
minimum: 1
type: integer
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
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:
type: string
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
envSecretKeyRefs:
additionalProperties:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
envVars:
additionalProperties:
type: string
type: object
gpu:
properties:
name:
type: string
quantity:
format: int64
type: integer
required:
- name
- quantity
type: object
hostNetwork:
type: boolean
image:
type: string
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
javaOptions:
type: string
labels:
additionalProperties:
type: string
type: object
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
memory:
type: string
memoryOverhead:
type: string
nodeSelector:
additionalProperties:
type: string
type: object
podName:
pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
type: string
schedulerName:
type: string
secrets:
items:
properties:
name:
type: string
path:
type: string
secretType:
type: string
required:
- name
- path
- secretType
type: object
type: array
securityContext:
properties:
fsGroup:
format: int64
type: integer
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
supplementalGroups:
items:
format: int64
type: integer
type: array
sysctls:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
type: object
serviceAccount:
type: string
sidecars:
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
terminationGracePeriodSeconds:
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
volumeMounts:
items:
properties:
mountPath:
type: string
mountPropagation:
type: string
name:
type: string
readOnly:
type: boolean
subPath:
type: string
required:
- mountPath
- name
type: object
type: array
type: object
executor:
properties:
affinity:
properties:
nodeAffinity:
properties:
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:
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
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
type: object
annotations:
additionalProperties:
type: string
type: object
configMaps:
items:
properties:
name:
type: string
path:
type: string
required:
- name
- path
type: object
type: array
coreLimit:
type: string
coreRequest:
type: string
cores:
format: int32
minimum: 1
type: integer
deleteOnTermination:
type: boolean
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
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:
type: string
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
envSecretKeyRefs:
additionalProperties:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
envVars:
additionalProperties:
type: string
type: object
gpu:
properties:
name:
type: string
quantity:
format: int64
type: integer
required:
- name
- quantity
type: object
hostNetwork:
type: boolean
image:
type: string
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
instances:
format: int32
minimum: 1
type: integer
javaOptions:
type: string
labels:
additionalProperties:
type: string
type: object
memory:
type: string
memoryOverhead:
type: string
nodeSelector:
additionalProperties:
type: string
type: object
schedulerName:
type: string
secrets:
items:
properties:
name:
type: string
path:
type: string
secretType:
type: string
required:
- name
- path
- secretType
type: object
type: array
securityContext:
properties:
fsGroup:
format: int64
type: integer
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
supplementalGroups:
items:
format: int64
type: integer
type: array
sysctls:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
type: object
sidecars:
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
terminationGracePeriodSeconds:
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
volumeMounts:
items:
properties:
mountPath:
type: string
mountPropagation:
type: string
name:
type: string
readOnly:
type: boolean
subPath:
type: string
required:
- mountPath
- name
type: object
type: array
type: object
failureRetries:
format: int32
type: integer
hadoopConf:
additionalProperties:
type: string
type: object
hadoopConfigMap:
type: string
image:
type: string
imagePullPolicy:
type: string
imagePullSecrets:
items:
type: string
type: array
mainApplicationFile:
type: string
mainClass:
type: string
memoryOverheadFactor:
type: string
mode:
enum:
- cluster
- client
type: string
monitoring:
properties:
exposeDriverMetrics:
type: boolean
exposeExecutorMetrics:
type: boolean
metricsProperties:
type: string
metricsPropertiesFile:
type: string
prometheus:
properties:
configFile:
type: string
configuration:
type: string
jmxExporterJar:
type: string
port:
format: int32
maximum: 49151
minimum: 1024
type: integer
required:
- jmxExporterJar
type: object
required:
- exposeDriverMetrics
- exposeExecutorMetrics
type: object
nodeSelector:
additionalProperties:
type: string
type: object
pythonVersion:
enum:
- "2"
- "3"
type: string
restartPolicy:
properties:
onFailureRetries:
format: int32
minimum: 0
type: integer
onFailureRetryInterval:
format: int64
minimum: 1
type: integer
onSubmissionFailureRetries:
format: int32
minimum: 0
type: integer
onSubmissionFailureRetryInterval:
format: int64
minimum: 1
type: integer
type:
enum:
- Never
- Always
- OnFailure
type: string
type: object
retryInterval:
format: int64
type: integer
serviceAccount:
type: string
sparkConf:
additionalProperties:
type: string
type: object
sparkConfigMap:
type: string
sparkVersion:
type: string
timeToLiveSeconds:
format: int64
type: integer
type:
enum:
- Java
- Python
- Scala
- R
type: string
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
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:
type: string
resource:
type: string
required:
- resource
type: object
required:
- path
type: object
type: array
type: object
emptyDir:
properties:
medium:
type: string
sizeLimit:
type: string
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:
type: string
resource:
type: string
required:
- resource
type: object
required:
- path
type: object
type: array
type: object
secret:
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
serviceAccountToken:
properties:
audience:
type: string
expirationSeconds:
format: int64
type: integer
path:
type: string
required:
- path
type: object
type: object
type: array
required:
- sources
type: object
quobyte:
properties:
group:
type: string
readOnly:
type: boolean
registry:
type: string
user:
type: string
volume:
type: string
required:
- 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
required:
- driver
- executor
- sparkVersion
- type
type: object
required:
- schedule
- template
type: object
status:
properties:
lastRun:
format: date-time
nullable: true
type: string
lastRunName:
type: string
nextRun:
format: date-time
nullable: true
type: string
pastFailedRunNames:
items:
type: string
type: array
pastSuccessfulRunNames:
items:
type: string
type: array
reason:
type: string
scheduleState:
type: string
type: object
required:
- metadata
- spec
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: [] |
Part 2: ---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (unknown)
creationTimestamp: null
name: sparkapplications.sparkoperator.k8s.io
spec:
group: sparkoperator.k8s.io
names:
kind: SparkApplication
listKind: SparkApplicationList
plural: sparkapplications
shortNames:
- sparkapp
singular: sparkapplication
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
arguments:
items:
type: string
type: array
batchScheduler:
type: string
batchSchedulerOptions:
properties:
priorityClassName:
type: string
queue:
type: string
type: object
deps:
properties:
files:
items:
type: string
type: array
jars:
items:
type: string
type: array
pyFiles:
items:
type: string
type: array
type: object
driver:
properties:
affinity:
properties:
nodeAffinity:
properties:
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:
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
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
type: object
annotations:
additionalProperties:
type: string
type: object
configMaps:
items:
properties:
name:
type: string
path:
type: string
required:
- name
- path
type: object
type: array
coreLimit:
type: string
coreRequest:
type: string
cores:
format: int32
minimum: 1
type: integer
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
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:
type: string
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
envSecretKeyRefs:
additionalProperties:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
envVars:
additionalProperties:
type: string
type: object
gpu:
properties:
name:
type: string
quantity:
format: int64
type: integer
required:
- name
- quantity
type: object
hostNetwork:
type: boolean
image:
type: string
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
javaOptions:
type: string
labels:
additionalProperties:
type: string
type: object
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
memory:
type: string
memoryOverhead:
type: string
nodeSelector:
additionalProperties:
type: string
type: object
podName:
pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
type: string
schedulerName:
type: string
secrets:
items:
properties:
name:
type: string
path:
type: string
secretType:
type: string
required:
- name
- path
- secretType
type: object
type: array
securityContext:
properties:
fsGroup:
format: int64
type: integer
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
supplementalGroups:
items:
format: int64
type: integer
type: array
sysctls:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
type: object
serviceAccount:
type: string
sidecars:
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
terminationGracePeriodSeconds:
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
volumeMounts:
items:
properties:
mountPath:
type: string
mountPropagation:
type: string
name:
type: string
readOnly:
type: boolean
subPath:
type: string
required:
- mountPath
- name
type: object
type: array
type: object
executor:
properties:
affinity:
properties:
nodeAffinity:
properties:
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:
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
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
properties:
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
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
namespaces:
items:
type: string
type: array
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
type: object
type: object
annotations:
additionalProperties:
type: string
type: object
configMaps:
items:
properties:
name:
type: string
path:
type: string
required:
- name
- path
type: object
type: array
coreLimit:
type: string
coreRequest:
type: string
cores:
format: int32
minimum: 1
type: integer
deleteOnTermination:
type: boolean
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
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:
type: string
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
envSecretKeyRefs:
additionalProperties:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
envVars:
additionalProperties:
type: string
type: object
gpu:
properties:
name:
type: string
quantity:
format: int64
type: integer
required:
- name
- quantity
type: object
hostNetwork:
type: boolean
image:
type: string
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
instances:
format: int32
minimum: 1
type: integer
javaOptions:
type: string
labels:
additionalProperties:
type: string
type: object
memory:
type: string
memoryOverhead:
type: string
nodeSelector:
additionalProperties:
type: string
type: object
schedulerName:
type: string
secrets:
items:
properties:
name:
type: string
path:
type: string
secretType:
type: string
required:
- name
- path
- secretType
type: object
type: array
securityContext:
properties:
fsGroup:
format: int64
type: integer
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
supplementalGroups:
items:
format: int64
type: integer
type: array
sysctls:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
type: object
sidecars:
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:
type: string
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
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
timeoutSeconds:
format: int32
type: integer
type: object
name:
type: string
ports:
items:
properties:
containerPort:
format: int32
type: integer
hostIP:
type: string
hostPort:
format: int32
type: integer
name:
type: string
protocol:
type: string
required:
- containerPort
- protocol
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
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
timeoutSeconds:
format: int32
type: integer
type: object
resources:
properties:
limits:
additionalProperties:
type: string
type: object
requests:
additionalProperties:
type: string
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
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
required:
- mountPath
- name
type: object
type: array
workingDir:
type: string
required:
- name
type: object
type: array
terminationGracePeriodSeconds:
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
volumeMounts:
items:
properties:
mountPath:
type: string
mountPropagation:
type: string
name:
type: string
readOnly:
type: boolean
subPath:
type: string
required:
- mountPath
- name
type: object
type: array
type: object
failureRetries:
format: int32
type: integer
hadoopConf:
additionalProperties:
type: string
type: object
hadoopConfigMap:
type: string
image:
type: string
imagePullPolicy:
type: string
imagePullSecrets:
items:
type: string
type: array
mainApplicationFile:
type: string
mainClass:
type: string
memoryOverheadFactor:
type: string
mode:
enum:
- cluster
- client
type: string
monitoring:
properties:
exposeDriverMetrics:
type: boolean
exposeExecutorMetrics:
type: boolean
metricsProperties:
type: string
metricsPropertiesFile:
type: string
prometheus:
properties:
configFile:
type: string
configuration:
type: string
jmxExporterJar:
type: string
port:
format: int32
maximum: 49151
minimum: 1024
type: integer
required:
- jmxExporterJar
type: object
required:
- exposeDriverMetrics
- exposeExecutorMetrics
type: object
nodeSelector:
additionalProperties:
type: string
type: object
pythonVersion:
enum:
- "2"
- "3"
type: string
restartPolicy:
properties:
onFailureRetries:
format: int32
minimum: 0
type: integer
onFailureRetryInterval:
format: int64
minimum: 1
type: integer
onSubmissionFailureRetries:
format: int32
minimum: 0
type: integer
onSubmissionFailureRetryInterval:
format: int64
minimum: 1
type: integer
type:
enum:
- Never
- Always
- OnFailure
type: string
type: object
retryInterval:
format: int64
type: integer
serviceAccount:
type: string
sparkConf:
additionalProperties:
type: string
type: object
sparkConfigMap:
type: string
sparkVersion:
type: string
timeToLiveSeconds:
format: int64
type: integer
type:
enum:
- Java
- Python
- Scala
- R
type: string
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
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:
type: string
resource:
type: string
required:
- resource
type: object
required:
- path
type: object
type: array
type: object
emptyDir:
properties:
medium:
type: string
sizeLimit:
type: string
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:
type: string
resource:
type: string
required:
- resource
type: object
required:
- path
type: object
type: array
type: object
secret:
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
serviceAccountToken:
properties:
audience:
type: string
expirationSeconds:
format: int64
type: integer
path:
type: string
required:
- path
type: object
type: object
type: array
required:
- sources
type: object
quobyte:
properties:
group:
type: string
readOnly:
type: boolean
registry:
type: string
user:
type: string
volume:
type: string
required:
- 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
required:
- driver
- executor
- sparkVersion
- type
type: object
status:
properties:
applicationState:
properties:
errorMessage:
type: string
state:
type: string
required:
- state
type: object
driverInfo:
properties:
podName:
type: string
webUIAddress:
type: string
webUIIngressAddress:
type: string
webUIIngressName:
type: string
webUIPort:
format: int32
type: integer
webUIServiceName:
type: string
type: object
executionAttempts:
format: int32
type: integer
executorState:
additionalProperties:
type: string
type: object
sparkApplicationId:
type: string
submissionAttempts:
format: int32
type: integer
submissionID:
type: string
submissionTime:
format: date-time
nullable: true
type: string
terminationTime:
format: date-time
nullable: true
type: string
required:
- driverInfo
type: object
required:
- metadata
- spec
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: trainingjobs.sagemaker.aws.amazon.com
spec:
additionalPrinterColumns:
- JSONPath: .status.trainingJobStatus
name: Status
type: string
- JSONPath: .status.secondaryStatus
name: Secondary-Status
type: string
- JSONPath: .metadata.creationTimestamp
format: date
name: Creation-Time
type: string
- JSONPath: .status.sageMakerTrainingJobName
name: Sagemaker-Job-Name
type: string
group: sagemaker.aws.amazon.com
names:
kind: TrainingJob
listKind: TrainingJobList
plural: trainingjobs
singular: trainingjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: TrainingJob is the Schema for the trainingjobs 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: TrainingJobSpec defines the desired state of TrainingJob
properties:
algorithmSpecification:
properties:
algorithmName:
minLength: 1
type: string
metricDefinitions:
items:
properties:
name:
minLength: 1
type: string
regex:
minLength: 1
type: string
required:
- name
- regex
type: object
type: array
trainingImage:
minLength: 1
type: string
trainingInputMode:
enum:
- File
- Pipe
type: string
required:
- trainingInputMode
type: object
checkpointConfig:
properties:
localPath:
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3Uri
type: object
debugHookConfig:
description: DebugHookConfig https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugHookConfig.html
properties:
collectionConfigurations:
items:
description: CollectionConfiguration https://docs.aws.amazon.com/sagemaker/latest/dg/API_CollectionConfiguration.html
properties:
collectionName:
type: string
collectionParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
type: object
type: array
localPath:
type: string
ruleParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3OutputPath
type: object
debugRuleConfigurations:
items:
description: DebugRuleConfiguration https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugRuleConfiguration.html
properties:
instanceType:
type: string
localPath:
type: string
ruleConfigurationName:
type: string
ruleEvaluatorImage:
type: string
ruleParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
volumeSizeInGB:
format: int64
minimum: 1
type: integer
required:
- ruleConfigurationName
- ruleEvaluatorImage
type: object
type: array
enableInterContainerTrafficEncryption:
type: boolean
enableManagedSpotTraining:
type: boolean
enableNetworkIsolation:
type: boolean
hyperParameters:
items:
description: Used in describing maps in Kubernetes.
properties:
name:
type: string
value:
type: string
type: object
type: array
inputDataConfig:
items:
properties:
channelName:
minLength: 1
pattern: '[A-Za-z0-9\.\-_]+'
type: string
compressionType:
enum:
- None
- Gzip
type: string
contentType:
type: string
dataSource:
properties:
fileSystemDataSource:
properties:
directoryPath:
type: string
fileSystemAccessMode:
type: string
fileSystemId:
type: string
fileSystemType:
type: string
required:
- directoryPath
- fileSystemAccessMode
- fileSystemId
- fileSystemType
type: object
s3DataSource:
properties:
attributeNames:
items:
type: string
type: array
s3DataDistributionType:
enum:
- FullyReplicated
- ShardedByS3Key
type: string
s3DataType:
enum:
- S3Prefix
- ManifestFile
- AugmentedManifestFile
type: string
s3Uri:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3DataType
- s3Uri
type: object
type: object
inputMode:
enum:
- Pipe
- File
type: string
recordWrapperType:
type: string
shuffleConfig:
properties:
seed:
format: int64
type: integer
required:
- seed
type: object
required:
- channelName
- dataSource
type: object
minItems: 1
type: array
outputDataConfig:
properties:
kmsKeyId:
type: string
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3OutputPath
type: object
region:
minLength: 1
type: string
resourceConfig:
properties:
instanceCount:
format: int64
minimum: 1
type: integer
instanceType:
minLength: 1
type: string
volumeKmsKeyId:
type: string
volumeSizeInGB:
format: int64
minimum: 1
type: integer
required:
- instanceCount
- instanceType
- volumeSizeInGB
type: object
roleArn:
minLength: 20
pattern: ^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$
type: string
sageMakerEndpoint:
description: A custom SageMaker endpoint to use when communicating with SageMaker.
pattern: ^(https|http)://.*$
type: string
stoppingCondition:
properties:
maxRuntimeInSeconds:
format: int64
minimum: 1
type: integer
maxWaitTimeInSeconds:
format: int64
minimum: 1
type: integer
type: object
tags:
items:
properties:
key:
minLength: 1
type: string
value:
type: string
required:
- key
- value
type: object
type: array
tensorBoardOutputConfig:
description: TensorBoardOutputConfig https://docs.aws.amazon.com/sagemaker/latest/dg/API_TensorBoardOutputConfig.html
properties:
localPath:
type: string
s3OutputPath:
pattern: ^(https|s3)://([^/]+)/?(.*)$
type: string
required:
- s3OutputPath
type: object
trainingJobName:
description: The SageMaker training job name. This is optional for the SageMaker K8s operator. If it is empty, the operator will populate it with a generated name.
maxLength: 63
type: string
vpcConfig:
properties:
securityGroupIds:
items:
type: string
maxItems: 5
minItems: 1
type: array
subnets:
items:
type: string
maxItems: 16
minItems: 1
type: array
required:
- securityGroupIds
- subnets
type: object
required:
- algorithmSpecification
- outputDataConfig
- region
- resourceConfig
- roleArn
- stoppingCondition
type: object
status:
description: TrainingJobStatus defines the observed state of TrainingJob
properties:
additional:
description: Field to store additional information, for example if we are unable to check the status we update this.
type: string
cloudWatchLogUrl:
description: Cloud Watch url for training log
type: string
debugRuleEvaluationStatuses:
description: Status of rule evaluation jobs, obtained from DebugRuleEvaluationStatuses. https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html#sagemaker-DescribeTrainingJob-response-DebugRuleEvaluationStatuses
items:
description: DebugRuleEvaluationStatus https://docs.aws.amazon.com/sagemaker/latest/dg/API_DebugRuleEvaluationStatus.html
properties:
lastModifiedTime:
format: date-time
type: string
ruleConfigurationName:
type: string
ruleEvaluationJobArn:
type: string
ruleEvaluationStatus:
type: string
statusDetail:
type: string
type: object
type: array
lastCheckTime:
description: The last time that we checked the status of the SageMaker job.
format: date-time
type: string
modelPath:
description: Full path to the training artifact (model)
type: string
sageMakerTrainingJobName:
description: SageMaker training job name
type: string
secondaryStatus:
description: The secondary, more granular status of the training job. https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus
type: string
trainingJobStatus:
description: The status of the training job. https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus
type: string
type: object
required:
- spec
type: object
version: v1
versions:
- name: v1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: datacatalog
namespace: flyte
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: flyte-pod-webhook
namespace: flyte
---
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::111222333456:role/flyte-operator
name: flyteadmin
namespace: flyte
---
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::111222333456:role/flyte-operator
name: flytepropeller
namespace: flyte
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/DELETE_ME
name: sagemaker-k8s-operator-default
namespace: sagemaker-k8s-operator-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: sparkoperator
namespace: sparkoperator
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: sagemaker-k8s-operator-leader-election-role
namespace: sagemaker-k8s-operator-system
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps/status
verbs:
- get
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: flyte-pod-webhook
namespace: flyte
rules:
- apiGroups:
- '*'
resources:
- mutatingwebhookconfigurations
- secrets
- pods
verbs:
- get
- create
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: flyteadmin
namespace: flyte
rules:
- apiGroups:
- ""
- flyte.lyft.com
- rbac.authorization.k8s.io
resources:
- configmaps
- flyteworkflows
- namespaces
- pods
- resourcequotas
- roles
- rolebindings
- secrets
- services
- serviceaccounts
- spark-role
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: flytepropeller
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- update
- delete
- patch
- apiGroups:
- '*'
resources:
- '*'
verbs:
- get
- list
- watch
- create
- update
- delete
- patch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- create
- delete
- update
- apiGroups:
- flyte.lyft.com
resources:
- flyteworkflows
- flyteworkflows/finalizers
verbs:
- get
- list
- watch
- create
- update
- delete
- patch
- post
- deletecollection
---
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
kustomize.component: pytorch-operator
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
name: kubeflow-pytorchjobs-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
kustomize.component: pytorch-operator
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
name: kubeflow-pytorchjobs-edit
rules:
- apiGroups:
- kubeflow.org
resources:
- pytorchjobs
- pytorchjobs/status
verbs:
- get
- list
- watch
- create
- delete
- deletecollection
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
kustomize.component: pytorch-operator
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
name: kubeflow-pytorchjobs-view
rules:
- apiGroups:
- kubeflow.org
resources:
- pytorchjobs
- pytorchjobs/status
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: sagemaker-k8s-operator-manager-role
rules:
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- batchtransformjobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- batchtransformjobs/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- endpointconfigs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- endpointconfigs/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hostingautoscalingpolicies
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hostingautoscalingpolicies/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hostingdeployments
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hostingdeployments/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hyperparametertuningjobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- hyperparametertuningjobs/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- models
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- models/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- processingjobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- processingjobs/status
verbs:
- get
- patch
- update
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- trainingjobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- sagemaker.aws.amazon.com
resources:
- trainingjobs/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: sagemaker-k8s-operator-proxy-role
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
rules:
- apiGroups:
- kubeflow.org
resources:
- pytorchjobs
- pytorchjobs/status
verbs:
- '*'
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods
- services
- endpoints
- events
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: sparkoperator
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- '*'
- apiGroups:
- ""
resources:
- services
- configmaps
- secrets
verbs:
- create
- get
- delete
- apiGroups:
- extensions
resources:
- ingresses
verbs:
- create
- get
- delete
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- apiGroups:
- batch
resources:
- jobs
verbs:
- create
- get
- update
- delete
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- update
- patch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- create
- get
- update
- delete
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
verbs:
- create
- get
- update
- delete
- apiGroups:
- sparkoperator.k8s.io
resources:
- sparkapplications
- scheduledsparkapplications
- sparkapplications/status
- scheduledsparkapplications/status
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: sagemaker-k8s-operator-leader-election-rolebinding
namespace: sagemaker-k8s-operator-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: sagemaker-k8s-operator-leader-election-role
subjects:
- kind: ServiceAccount
name: sagemaker-k8s-operator-default
namespace: sagemaker-k8s-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: flyte-pod-webhook
namespace: flyte
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flyte-pod-webhook
subjects:
- kind: ServiceAccount
name: flyte-pod-webhook
namespace: flyte
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sagemaker-k8s-operator-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sagemaker-k8s-operator-manager-role
subjects:
- kind: ServiceAccount
name: sagemaker-k8s-operator-default
namespace: sagemaker-k8s-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: sagemaker-k8s-operator-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sagemaker-k8s-operator-proxy-role
subjects:
- kind: ServiceAccount
name: sagemaker-k8s-operator-default
namespace: sagemaker-k8s-operator-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: flyteadmin-binding
namespace: flyte
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flyteadmin
subjects:
- kind: ServiceAccount
name: flyteadmin
namespace: flyte
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: flytepropeller
namespace: flyte
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: flytepropeller
subjects:
- kind: ServiceAccount
name: flytepropeller
namespace: flyte
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pytorch-operator
subjects:
- kind: ServiceAccount
name: pytorch-operator
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: sparkoperator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: sparkoperator
subjects:
- kind: ServiceAccount
name: sparkoperator
namespace: sparkoperator
---
apiVersion: v1
data:
aa_namespace.yaml: |
apiVersion: v1
kind: Namespace
metadata:
name: {{ namespace }}
spec:
finalizers:
- kubernetes
ab_project-resource-quota.yaml: "apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }} \nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }} \n limits.memory: {{ projectQuotaMemory }}\n\n"
ac_project-copilot-dataconfig.yaml: |
kind: ConfigMap
apiVersion: v1
metadata:
name: flyte-data-config
namespace: {{ namespace }}
data:
config.yaml: |
storage:
connection:
access-key: minio
auth-type: accesskey
disable-ssl: true
endpoint: http://minio.flyte.svc.cluster.local:9000
region: us-east-1
secret-key: miniostorage
type: minio
container: my-s3-bucket
enable-multicontainer: true
ad_spark-role.yaml: |
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: spark-role
namespace: {{ namespace }}
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- '*'
- apiGroups:
- ""
resources:
- services
verbs:
- '*'
- apiGroups:
- ""
resources:
- configmaps
verbs:
- '*'
ae_spark-service-account.yaml: |
apiVersion: v1
kind: ServiceAccount
metadata:
name: spark
namespace: {{ namespace }}
af_spark-role-binding.yaml: "apiVersion: rbac.authorization.k8s.io/v1beta1\nkind: RoleBinding\nmetadata:\n name: spark-role-binding\n namespace: {{ namespace }} \nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: Role\n name: spark-role\nsubjects:\n- kind: ServiceAccount\n name: spark\n namespace: {{ namespace }}\n\n"
kind: ConfigMap
metadata:
name: clusterresource-template-tkdkkt4cb5
namespace: flyte
---
apiVersion: v1
data:
db.yaml: |
database:
port: 5432
username: flyte
# TODO Change this to match aurora or rds postgres endpoint
host: flyteadmin-cluster.cluster-456123e6ivib.us-west-2.rds.amazonaws.com
dbname: flytedatacatalog
passwordPath: /etc/db/pass.txt
logger.yaml: |
# TODO this is used to control the log level
logger:
show-source: true
level: 2
server.yaml: |
datacatalog:
storage-prefix: metadata/datacatalog
metrics-scope: "datacatalog"
profiler-port: 10254
application:
grpcPort: 8089
storage.yaml: |
storage:
type: stow
stow:
kind: s3
config:
auth_type: iam
region: us-east-2
# TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
container: "flyte-demo"
# NOTE this cache configuration is purely for propeller. But since we are having a common storage
# config, we are configuring this value. In production create a separate storage config for
# propeller and increase the cache size
cache:
max_size_mbs: 512
target_gc_percent: 70
limits:
maxDownloadMBs: 10
kind: ConfigMap
metadata:
name: datacatalog-config-fktmhdgfk8
namespace: flyte
---
apiVersion: v1
data:
cluster_resources.yaml: |
cluster_resources:
templatePath: "/etc/flyte/clusterresource/templates"
customData:
- production:
- projectQuotaCpu:
value: "5"
- projectQuotaMemory:
value: "4000Mi"
- staging:
- projectQuotaCpu:
value: "2"
- projectQuotaMemory:
value: "3000Mi"
- development:
- projectQuotaCpu:
value: "4"
- projectQuotaMemory:
value: "3000Mi"
refreshInterval: 1m
db.yaml: |
database:
port: 5432
username: flyte
# TODO Change this to match aurora or rds postgres endpoint
host: flyteadmin-cluster.cluster-456123e6ivib.us-west-2.rds.amazonaws.com
dbname: flyte
passwordPath: /etc/db/pass.txt
domain.yaml: |
domains:
- id: development
name: development
- id: staging
name: staging
- id: production
name: production
logger.yaml: |
# TODO this is used to control the log level
logger:
show-source: true
level: 2
server.yaml: |
server:
httpPort: 8088
grpcPort: 8089
security:
# Controls whether to serve requests over SSL/TLS.
secure: false
# Controls whether to enforce authentication. Follow the guide in https://docs.flyte.org/ on how to setup authentication.
useAuth: false
allowCors: true
allowedOrigins:
# Accepting all domains for Sandbox installation
- "*"
allowedHeaders:
- "Content-Type"
- "flyte-authorization"
auth:
authorizedUris:
# This should point at your public http Uri.
- https://localhost:30081
# This will be used by internal services in the same namespace as flyteadmin
- http://flyteadmin:80
# This will be used by internal services in the same cluster but different namespaces
- http://flyteadmin.flyte.svc.cluster.local:80
# Controls app authentication config
appAuth:
thirdPartyConfig:
flyteClient:
clientId: flytectl
redirectUri: https://localhost:53593/callback
scopes:
- offline
- all
# Controls user authentication
userAuth:
openId:
baseUrl: https://accounts.google.com
scopes:
- profile
- openid
clientId: 657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com
flyteadmin:
roleNameKey: "iam.amazonaws.com/role"
storage.yaml: |
storage:
type: stow
stow:
kind: s3
config:
auth_type: iam
region: us-east-2
# TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
container: "flyte-demo"
# NOTE this cache configuration is purely for propeller. But since we are having a common storage
# config, we are configuring this value. In production create a separate storage config for
# propeller and increase the cache size
cache:
max_size_mbs: 512
target_gc_percent: 70
limits:
maxDownloadMBs: 10
task_resource_defaults.yaml: |
task_resources:
defaults:
cpu: 1000m
memory: 1000Mi
storage: 1000Mi
limits:
cpu: 2
memory: 8Gi
storage: 2000Mi
gpu: 1
kind: ConfigMap
metadata:
name: flyte-admin-config-29g4dtt8tc
namespace: flyte
---
apiVersion: v1
data:
BASE_URL: /console
CONFIG_DIR: /etc/flyte/config
kind: ConfigMap
metadata:
name: flyte-console-config
namespace: flyte
---
apiVersion: v1
data:
admin.yaml: |
event:
type: admin
rate: 500
capacity: 1000
admin:
endpoint: flyteadmin:81
insecure: true
catalog.yaml: |
catalog-cache:
endpoint: datacatalog:89
type: datacatalog
insecure: true
catalog_cache.yaml: "plugins:\n catalogCache: \n reader:\n maxItems: 10000\n writer:\n maxItems: 10000\n"
copilot.yaml: |
plugins:
k8s:
co-pilot:
name: "flyte-copilot-"
image: "cr.flyte.org/flyteorg/flytecopilot:v0.5.28"
start-timeout: "30s"
core.yaml: |
propeller:
rawoutput-prefix: s3://my-s3-bucket/
metadata-prefix: metadata/propeller
workers: 40
gc-interval: 12h
max-workflow-retries: 50
workflow-reeval-duration: 30s
downstream-eval-duration: 30s
limit-namespace: "all"
prof-port: 10254
metrics-prefix: flyte
enable-admin-launcher: true
leader-election:
lock-config-map:
name: propeller-leader
namespace: flyte
enabled: true
lease-duration: 15s
renew-deadline: 10s
retry-period: 2s
kube-client-config:
qps: 100
burst: 25
timeout: 30s
queue:
type: batch
batching-interval: 2s
batch-size: -1
queue:
type: maxof
rate: 100
capacity: 1000
base-delay: 5s
max-delay: 120s
sub-queue:
type: bucket
rate: 100
capacity: 1000
workflowStore:
policy: "ResourceVersionCache"
enabled_plugins.yaml: |
tasks:
max-plugin-phase-versions: 1000000
task-plugins:
enabled-plugins:
- container
- sidecar
- spark
- k8s-array
- pytorch
default-for-task-types:
container: container
sidecar: sidecar
spark: spark
container_array: k8s-array
pytorch: pytorch
k8s.yaml: |
plugins:
k8s:
default-env-vars:
- FLYTE_AWS_ENDPOINT: "http://minio.flyte:9000"
- FLYTE_AWS_ACCESS_KEY_ID: minio
- FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage
default-cpus: 100m
default-memory: 100Mi
logger.yaml: |
# TODO this is used to control the log level
logger:
show-source: true
level: 2
qubole.yaml: |
plugins:
qubole:
quboleTokenKey: "FLYTE_QUBOLE_CLIENT_TOKEN"
resource_manager.yaml: |
propeller:
resourcemanager:
type: redis
resourceMaxQuota: 10000
redis:
hostPath: redis-resource-manager:6379
hostKey: mypassword
spark.yaml: |
plugins:
spark:
spark-config-default:
# We override the default credentials chain provider for Hadoop so that
# it can use the serviceAccount based IAM role or ec2 metadata based.
# This is more in line with how AWS works
- spark.hadoop.fs.s3a.aws.credentials.provider: "com.amazonaws.auth.DefaultAWSCredentialsProviderChain"
- spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version: "2"
- spark.kubernetes.allocation.batch.size: "50"
- spark.hadoop.fs.s3a.acl.default: "BucketOwnerFullControl"
- spark.hadoop.fs.s3n.impl: "org.apache.hadoop.fs.s3a.S3AFileSystem"
- spark.hadoop.fs.AbstractFileSystem.s3n.impl: "org.apache.hadoop.fs.s3a.S3A"
- spark.hadoop.fs.s3.impl: "org.apache.hadoop.fs.s3a.S3AFileSystem"
- spark.hadoop.fs.AbstractFileSystem.s3.impl: "org.apache.hadoop.fs.s3a.S3A"
- spark.hadoop.fs.s3a.impl: "org.apache.hadoop.fs.s3a.S3AFileSystem"
- spark.hadoop.fs.AbstractFileSystem.s3a.impl: "org.apache.hadoop.fs.s3a.S3A"
- spark.hadoop.fs.s3a.multipart.threshold: "536870912"
- spark.blacklist.enabled: "true"
- spark.blacklist.timeout: "5m"
- spark.task.maxfailures: "8"
storage.yaml: |
storage:
type: stow
stow:
kind: s3
config:
auth_type: iam
region: us-east-2
# TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
container: "flyte-demo"
# NOTE this cache configuration is purely for propeller. But since we are having a common storage
# config, we are configuring this value. In production create a separate storage config for
# propeller and increase the cache size
cache:
max_size_mbs: 512
target_gc_percent: 70
limits:
maxDownloadMBs: 10
task_logs.yaml: |
plugins:
logs:
# Log links can link to multiple options
# #1 Kubernetes dashboard is disabled in GCP
kubernetes-enabled: false
# #2 AWS Cloudwatch
cloudwatch-enabled: true
# TODO Add region and log group
cloudwatch-region: <region>
cloudwatch-log-group: <log-group>
kind: ConfigMap
metadata:
name: flyte-propeller-config-79b62khbc5
namespace: flyte
---
apiVersion: v1
data:
pass.txt: eW91cnBhc3N3b3Jk
kind: Secret
metadata:
name: db-pass-bthd2588cc
namespace: flyte
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: flyte-admin-auth
namespace: flyte
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: flyte-pod-webhook
namespace: flyte
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: flyte-propeller-auth
namespace: flyte
stringData:
client_secret: foobar
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
annotations:
contour.heptio.com/upstream-protocol.h2c: grpc
name: datacatalog
namespace: flyte
spec:
ports:
- name: http
port: 88
protocol: TCP
targetPort: 8088
- name: grpc
port: 89
protocol: TCP
targetPort: 8089
selector:
app: datacatalog
---
apiVersion: v1
kind: Service
metadata:
annotations:
cloud.google.com/load-balancer-type: Internal
name: datacatalog-metrics
namespace: flyte
spec:
ports:
- name: http-metrics
port: 10254
protocol: TCP
selector:
app: datacatalog
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
annotations:
projectcontour.io/upstream-protocol.h2c: grpc
name: flyte-pod-webhook
namespace: flyte
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 9443
selector:
app: flyte-pod-webhook
---
apiVersion: v1
kind: Service
metadata:
annotations:
external-dns.alpha.kubernetes.io/hostname: flyteadmin.subdomain.mydomain.com
projectcontour.io/upstream-protocol.h2c: grpc
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600"
service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: sg-...,sg-...,sg-...
name: flyteadmin
namespace: flyte
spec:
loadBalancerSourceRanges:
- 0.0.0.0
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8088
- name: grpc
port: 81
protocol: TCP
targetPort: 8089
selector:
app: flyteadmin
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
annotations:
external-dns.alpha.kubernetes.io/hostname: flyte.subdomain.mydomain.com
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600"
service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: sg-....,sg-...,sg-...
name: flyteconsole
namespace: flyte
spec:
loadBalancerSourceRanges:
- 0.0.0.0
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
selector:
app: flyteconsole
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
annotations:
cloud.google.com/load-balancer-type: Internal
name: flytepropeller
namespace: flyte
spec:
ports:
- name: http-metrics
port: 10254
protocol: TCP
selector:
app: flytepropeller
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
labels:
app: redis-resource-manager
name: redis-resource-manager
namespace: flyte
spec:
ports:
- name: redis
port: 6379
protocol: TCP
targetPort: redis
selector:
app: redis-resource-manager
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8443"
prometheus.io/scrape: "true"
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
spec:
ports:
- name: monitoring-port
port: 8443
targetPort: 8443
selector:
kustomize.component: pytorch-operator
name: pytorch-operator
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/port: "8443"
prometheus.io/scheme: https
prometheus.io/scrape: "true"
labels:
control-plane: controller-manager
name: sagemaker-k8s-operator-controller-manager-metrics-service
namespace: sagemaker-k8s-operator-system
spec:
ports:
- name: https
port: 8443
targetPort: https
selector:
control-plane: controller-manager
---
apiVersion: v1
kind: Service
metadata:
name: spark-webhook
namespace: sparkoperator
spec:
ports:
- name: webhook
port: 443
targetPort: 8080
selector:
app.kubernetes.io/name: sparkoperator
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: datacatalog
name: datacatalog
namespace: flyte
spec:
replicas: 1
selector:
matchLabels:
app: datacatalog
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
labels:
app: datacatalog
app.kubernetes.io/name: datacatalog
app.kubernetes.io/version: 0.3.0
spec:
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
image: cr.flyte.org/flyteorg/datacatalog:v0.3.9
imagePullPolicy: IfNotPresent
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
resources:
limits:
cpu: "2"
ephemeral-storage: 1000Mi
memory: 1Gi
volumeMounts:
- mountPath: /etc/datacatalog/config
name: config-volume
- mountPath: /etc/db
name: db-pass
initContainers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- migrate
- run
image: cr.flyte.org/flyteorg/datacatalog:v0.3.9
imagePullPolicy: IfNotPresent
name: run-migrations
volumeMounts:
- mountPath: /etc/datacatalog/config
name: config-volume
- mountPath: /etc/db
name: db-pass
serviceAccountName: datacatalog
volumes:
- emptyDir: {}
name: shared-data
- configMap:
name: datacatalog-config-fktmhdgfk8
name: config-volume
- name: db-pass
secret:
secretName: db-pass-bthd2588cc
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flyte-pod-webhook
name: flyte-pod-webhook
namespace: flyte
spec:
selector:
matchLabels:
app: flyte-pod-webhook
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
app.kubernetes.io/version: 0.5.13
spec:
containers:
- args:
- webhook
- --config
- /etc/flyte/config/*.yaml
command:
- flytepropeller
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: cr.flyte.org/flyteorg/flytepropeller:v0.13.20
imagePullPolicy: IfNotPresent
name: webhook
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
readOnly: true
- mountPath: /etc/webhook/certs
name: webhook-certs
readOnly: true
initContainers:
- args:
- webhook
- init-certs
- --config
- /etc/flyte/config/*.yaml
command:
- flytepropeller
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: cr.flyte.org/flyteorg/flytepropeller:v0.13.20
imagePullPolicy: IfNotPresent
name: generate-secrets
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
serviceAccountName: flyte-pod-webhook
volumes:
- configMap:
name: flyte-propeller-config-79b62khbc5
name: config-volume
- name: webhook-certs
secret:
secretName: flyte-pod-webhook
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flyteadmin
name: flyteadmin
namespace: flyte
spec:
replicas: 1
selector:
matchLabels:
app: flyteadmin
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
labels:
app: flyteadmin
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/version: 0.4.13
spec:
containers:
- command:
- flyteadmin
- --config
- /etc/flyte/config/*.yaml
- serve
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: flyteadmin
ports:
- containerPort: 8088
- containerPort: 8089
resources:
limits:
cpu: "2"
ephemeral-storage: 1Gi
memory: 1Gi
volumeMounts:
- mountPath: /srv/flyte
name: shared-data
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/db
name: db-pass
- mountPath: /etc/secrets/
name: auth
- command:
- sh
- -c
- ln -s /usr/share/nginx/html /usr/share/nginx/html/openapi && sh /usr/local/bin/docker-run.sh
env:
- name: PAGE_TITLE
value: Flyte Admin OpenAPI
- name: SPEC_URL
value: /api/v1/openapi
- name: PORT
value: "8087"
image: docker.io/redocly/redoc
imagePullPolicy: IfNotPresent
name: redoc
ports:
- containerPort: 8087
resources:
limits:
cpu: "0.1"
memory: 200Mi
initContainers:
- command:
- flyteadmin
- --config
- /etc/flyte/config/*.yaml
- migrate
- run
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: run-migrations
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/db
name: db-pass
- command:
- flyteadmin
- --config
- /etc/flyte/config/*.yaml
- migrate
- seed-projects
- flytesnacks
- flytetester
- flyteexamples
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: seed-projects
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/db
name: db-pass
- command:
- flyteadmin
- --config
- /etc/flyte/config/*.yaml
- clusterresource
- sync
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: sync-cluster-resources
volumeMounts:
- mountPath: /etc/flyte/clusterresource/templates
name: resource-templates
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/db
name: db-pass
- args:
- flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/secrets/auth && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --fromPath /etc/secrets/auth
command:
- /bin/sh
- -c
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: generate-secrets
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
serviceAccountName: flyteadmin
volumes:
- emptyDir: {}
name: shared-data
- configMap:
name: flyte-admin-config-29g4dtt8tc
name: config-volume
- configMap:
name: clusterresource-template-tkdkkt4cb5
name: resource-templates
- name: db-pass
secret:
secretName: db-pass-bthd2588cc
- name: auth
secret:
secretName: flyte-admin-auth
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flyteconsole
name: flyteconsole
namespace: flyte
spec:
replicas: 1
selector:
matchLabels:
app: flyteconsole
template:
metadata:
labels:
app: flyteconsole
app.kubernetes.io/name: flyteconsole
app.kubernetes.io/version: 0.19.0
spec:
containers:
- envFrom:
- configMapRef:
name: flyte-console-config
image: cr.flyte.org/flyteorg/flyteconsole:v0.25.0
name: flyteconsole
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /srv/flyte
name: shared-data
volumes:
- emptyDir: {}
name: shared-data
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flytepropeller
name: flytepropeller
namespace: flyte
spec:
selector:
matchLabels:
app: flytepropeller
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
labels:
app: flytepropeller
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/version: 0.7.1
spec:
containers:
- args:
- --config
- /etc/flyte/config/*.yaml
command:
- flytepropeller
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: cr.flyte.org/flyteorg/flytepropeller:v0.13.20
imagePullPolicy: IfNotPresent
name: flytepropeller
ports:
- containerPort: 10254
resources:
limits:
cpu: "2"
ephemeral-storage: 1Gi
memory: 4Gi
volumeMounts:
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/secrets/
name: auth
serviceAccountName: flytepropeller
volumes:
- configMap:
name: flyte-propeller-config-79b62khbc5
name: config-volume
- name: auth
secret:
secretName: flyte-propeller-auth
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: pytorch-operator
name: pytorch-operator
template:
metadata:
labels:
kustomize.component: pytorch-operator
name: pytorch-operator
spec:
containers:
- command:
- /pytorch-operator.v1
- --alsologtostderr
- -v=1
- --monitoring-port=8443
env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
name: pytorch-operator
serviceAccountName: pytorch-operator
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
control-plane: controller-manager
name: sagemaker-k8s-operator-controller-manager
namespace: sagemaker-k8s-operator-system
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
template:
metadata:
labels:
control-plane: controller-manager
spec:
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=10
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
- args:
- --metrics-addr=127.0.0.1:8080
command:
- /manager
env:
- name: AWS_DEFAULT_SAGEMAKER_ENDPOINT
value: ""
image: 957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1.2
imagePullPolicy: Always
name: manager
resources:
limits:
cpu: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
serviceAccountName: sagemaker-k8s-operator-default
terminationGracePeriodSeconds: 10
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: sparkoperator
app.kubernetes.io/version: v2.4.5-v1beta2
name: sparkoperator
namespace: sparkoperator
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: sparkoperator
strategy:
type: Recreate
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
labels:
app.kubernetes.io/name: sparkoperator
app.kubernetes.io/version: v2.4.5-v1beta2
spec:
containers:
- args:
- -logtostderr
- -v=2
- -controller-threads=20
- -enable-metrics=true
- '-metrics-prefix=service:'
- -metrics-labels=task_name
- -metrics-labels=workflow_name
- -enable-webhook=true
- -webhook-svc-namespace=sparkoperator
command:
- /usr/bin/spark-operator
image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
imagePullPolicy: Always
name: sparkoperator-unknown
ports:
- containerPort: 10254
- containerPort: 8080
volumeMounts:
- mountPath: /etc/webhook-certs
name: webhook-certs
serviceAccountName: sparkoperator
volumes:
- name: webhook-certs
secret:
secretName: spark-webhook-certs
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis
namespace: flyte
spec:
replicas: 1
selector:
matchLabels:
app: redis-resource-manager
serviceName: redis-resource-manager
template:
metadata:
labels:
app: redis-resource-manager
spec:
containers:
- env:
- name: REDIS_PASSWORD
value: mypassword
image: docker.io/bitnami/redis:4.0.2-r1
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
command:
- redis-cli
- ping
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: redis-resource-manager
ports:
- containerPort: 6379
name: redis
protocol: TCP
readinessProbe:
exec:
command:
- redis-cli
- ping
failureThreshold: 3
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
requests:
cpu: 200m
memory: 128Mi
volumeMounts:
- mountPath: /bitnami
name: redis-data
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
- emptyDir: {}
name: redis-data
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: syncresources
namespace: flyte
spec:
jobTemplate:
spec:
template:
spec:
containers:
- command:
- flyteadmin
- --config
- /etc/flyte/config/*.yaml
- clusterresource
- sync
image: cr.flyte.org/flyteorg/flyteadmin:v0.6.22
imagePullPolicy: IfNotPresent
name: sync-cluster-resources
volumeMounts:
- mountPath: /etc/flyte/clusterresource/templates
name: resource-templates
- mountPath: /etc/flyte/config
name: config-volume
- mountPath: /etc/db
name: db-pass
restartPolicy: OnFailure
serviceAccountName: flyteadmin
volumes:
- configMap:
name: clusterresource-template-tkdkkt4cb5
name: resource-templates
- configMap:
name: flyte-admin-config-29g4dtt8tc
name: config-volume
- name: db-pass
secret:
secretName: db-pass-bthd2588cc
schedule: '*/1 * * * *'
---
apiVersion: batch/v1
kind: Job
metadata:
labels:
app.kubernetes.io/name: sparkoperator
app.kubernetes.io/version: v2.4.5-v1beta2
name: sparkoperator-init
namespace: sparkoperator
spec:
backoffLimit: 3
template:
metadata:
labels:
app.kubernetes.io/name: sparkoperator
app.kubernetes.io/version: v2.4.5-v1beta2
spec:
containers:
- command:
- /usr/bin/gencerts.sh
- --namespace
- sparkoperator
- -p
image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
imagePullPolicy: IfNotPresent
name: main
restartPolicy: Never
serviceAccountName: sparkoperator
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6
alb.ingress.kubernetes.io/group.name: flytesystem
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/tags: service_instance=production
kubernetes.io/ingress.class: alb
labels:
app: flyteadmin
name: flytesystem
namespace: flyte
spec:
rules:
- http:
paths:
- backend:
service:
name: ssl-redirect
port:
name: use-annotation
path: /*
pathType: ImplementationSpecific
- backend:
service:
name: flyteconsole
port:
number: 80
path: /console
pathType: ImplementationSpecific
- backend:
service:
name: flyteconsole
port:
number: 80
path: /console/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /api/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /healthcheck
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /v1/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /openapi/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /.well-known/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /login
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /login/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /logout
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /logout/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /callback
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /callback/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /me
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /config
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /config/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /oauth2
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 80
path: /oauth2/*
pathType: ImplementationSpecific
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6
alb.ingress.kubernetes.io/group.name: flytesystem
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/tags: service_instance=production
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/ssl-redirect: "false"
labels:
app: flyteadmin
name: flytesystem-grpc
namespace: flyte
spec:
rules:
- http:
paths:
- backend:
service:
name: flyteadmin
port:
number: 81
path: /flyteidl.service.AdminService/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 81
path: /flyteidl.service.AuthMetadataService/*
pathType: ImplementationSpecific
- backend:
service:
name: flyteadmin
port:
number: 81
path: /flyteidl.service.IdentityService/*
pathType: ImplementationSpecific |
You think we can merge it @EngHabu? |
Thank you! |
Congrats on merging your first pull request! 🎉 |
Kustomizer released their PR that allows loading from HTTP, meaning that we can remove the
installer.yaml
for Sagemaker that was here because of that.