3675 lines
125 KiB
YAML
3675 lines
125 KiB
YAML
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
annotations:
|
|
cas.openebs.io/config: |
|
|
- name: StorageType
|
|
value: "hostpath"
|
|
- name: BasePath
|
|
value: "/var/local/openebs/localpv-hostpath/etcd"
|
|
openebs.io/cas-type: local
|
|
name: mayastor-etcd-localpv
|
|
provisioner: openebs.io/local
|
|
reclaimPolicy: Delete
|
|
volumeBindingMode: WaitForFirstConsumer
|
|
---
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
annotations:
|
|
cas.openebs.io/config: |
|
|
- name: StorageType
|
|
value: "hostpath"
|
|
- name: BasePath
|
|
value: "/var/local/openebs/localpv-hostpath/loki"
|
|
openebs.io/cas-type: local
|
|
name: mayastor-loki-localpv
|
|
provisioner: openebs.io/local
|
|
reclaimPolicy: Delete
|
|
volumeBindingMode: WaitForFirstConsumer
|
|
---
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
annotations:
|
|
cas.openebs.io/config: |
|
|
- name: StorageType
|
|
value: "hostpath"
|
|
- name: BasePath
|
|
value: "/var/mnt/local-volume"
|
|
openebs.io/cas-type: local
|
|
name: openebs-hostpath
|
|
provisioner: openebs.io/local
|
|
reclaimPolicy: Delete
|
|
volumeBindingMode: WaitForFirstConsumer
|
|
---
|
|
allowVolumeExpansion: true
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: openebs-single-replica
|
|
parameters:
|
|
protocol: nvmf
|
|
repl: "1"
|
|
provisioner: io.openebs.csi-mayastor
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814
|
|
controller-gen.kubebuilder.io/version: v0.11.3
|
|
helm.sh/resource-policy: keep
|
|
creationTimestamp: null
|
|
name: volumesnapshotclasses.snapshot.storage.k8s.io
|
|
spec:
|
|
group: snapshot.storage.k8s.io
|
|
names:
|
|
kind: VolumeSnapshotClass
|
|
listKind: VolumeSnapshotClassList
|
|
plural: volumesnapshotclasses
|
|
shortNames:
|
|
- vsclass
|
|
- vsclasses
|
|
singular: volumesnapshotclass
|
|
scope: Cluster
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .driver
|
|
name: Driver
|
|
type: string
|
|
- description: Determines whether a VolumeSnapshotContent created through the
|
|
VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted.
|
|
jsonPath: .deletionPolicy
|
|
name: DeletionPolicy
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshotClass specifies parameters that a underlying storage
|
|
system uses when creating a volume snapshot. A specific VolumeSnapshotClass
|
|
is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses
|
|
are non-namespaced
|
|
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
|
|
deletionPolicy:
|
|
description: deletionPolicy determines whether a VolumeSnapshotContent
|
|
created through the VolumeSnapshotClass should be deleted when its bound
|
|
VolumeSnapshot is deleted. Supported values are "Retain" and "Delete".
|
|
"Retain" means that the VolumeSnapshotContent and its physical snapshot
|
|
on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent
|
|
and its physical snapshot on underlying storage system are deleted.
|
|
Required.
|
|
enum:
|
|
- Delete
|
|
- Retain
|
|
type: string
|
|
driver:
|
|
description: driver is the name of the storage driver that handles this
|
|
VolumeSnapshotClass. Required.
|
|
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
|
|
parameters:
|
|
additionalProperties:
|
|
type: string
|
|
description: parameters is a key-value map with storage driver specific
|
|
parameters for creating snapshots. These values are opaque to Kubernetes.
|
|
type: object
|
|
required:
|
|
- deletionPolicy
|
|
- driver
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources: {}
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .driver
|
|
name: Driver
|
|
type: string
|
|
- description: |
|
|
Determines whether a VolumeSnapshotContent created through the
|
|
VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted.
|
|
jsonPath: .deletionPolicy
|
|
name: DeletionPolicy
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
deprecated: true
|
|
deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshotClass is deprecated;
|
|
use snapshot.storage.k8s.io/v1 VolumeSnapshotClass
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshotClass specifies parameters that a underlying storage
|
|
system uses when creating a volume snapshot. A specific VolumeSnapshotClass
|
|
is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses
|
|
are non-namespaced
|
|
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
|
|
deletionPolicy:
|
|
description: deletionPolicy determines whether a VolumeSnapshotContent
|
|
created through the VolumeSnapshotClass should be deleted when its bound
|
|
VolumeSnapshot is deleted. Supported values are "Retain" and "Delete".
|
|
"Retain" means that the VolumeSnapshotContent and its physical snapshot
|
|
on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent
|
|
and its physical snapshot on underlying storage system are deleted.
|
|
Required.
|
|
enum:
|
|
- Delete
|
|
- Retain
|
|
type: string
|
|
driver:
|
|
description: driver is the name of the storage driver that handles this
|
|
VolumeSnapshotClass. Required.
|
|
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
|
|
parameters:
|
|
additionalProperties:
|
|
type: string
|
|
description: parameters is a key-value map with storage driver specific
|
|
parameters for creating snapshots. These values are opaque to Kubernetes.
|
|
type: object
|
|
required:
|
|
- deletionPolicy
|
|
- driver
|
|
type: object
|
|
served: false
|
|
storage: false
|
|
subresources: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814
|
|
controller-gen.kubebuilder.io/version: v0.11.3
|
|
helm.sh/resource-policy: keep
|
|
creationTimestamp: null
|
|
name: volumesnapshotcontents.snapshot.storage.k8s.io
|
|
spec:
|
|
group: snapshot.storage.k8s.io
|
|
names:
|
|
kind: VolumeSnapshotContent
|
|
listKind: VolumeSnapshotContentList
|
|
plural: volumesnapshotcontents
|
|
shortNames:
|
|
- vsc
|
|
- vscs
|
|
singular: volumesnapshotcontent
|
|
scope: Cluster
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- description: Indicates if the snapshot is ready to be used to restore a volume.
|
|
jsonPath: .status.readyToUse
|
|
name: ReadyToUse
|
|
type: boolean
|
|
- description: Represents the complete size of the snapshot in bytes
|
|
jsonPath: .status.restoreSize
|
|
name: RestoreSize
|
|
type: integer
|
|
- description: Determines whether this VolumeSnapshotContent and its physical
|
|
snapshot on the underlying storage system should be deleted when its bound
|
|
VolumeSnapshot is deleted.
|
|
jsonPath: .spec.deletionPolicy
|
|
name: DeletionPolicy
|
|
type: string
|
|
- description: Name of the CSI driver used to create the physical snapshot on
|
|
the underlying storage system.
|
|
jsonPath: .spec.driver
|
|
name: Driver
|
|
type: string
|
|
- description: Name of the VolumeSnapshotClass to which this snapshot belongs.
|
|
jsonPath: .spec.volumeSnapshotClassName
|
|
name: VolumeSnapshotClass
|
|
type: string
|
|
- description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent
|
|
object is bound.
|
|
jsonPath: .spec.volumeSnapshotRef.name
|
|
name: VolumeSnapshot
|
|
type: string
|
|
- description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent
|
|
object is bound.
|
|
jsonPath: .spec.volumeSnapshotRef.namespace
|
|
name: VolumeSnapshotNamespace
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshotContent represents the actual "on-disk" snapshot
|
|
object in the underlying storage system
|
|
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
|
|
spec:
|
|
description: spec defines properties of a VolumeSnapshotContent created
|
|
by the underlying storage system. Required.
|
|
properties:
|
|
deletionPolicy:
|
|
description: deletionPolicy determines whether this VolumeSnapshotContent
|
|
and its physical snapshot on the underlying storage system should
|
|
be deleted when its bound VolumeSnapshot is deleted. Supported values
|
|
are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent
|
|
and its physical snapshot on underlying storage system are kept.
|
|
"Delete" means that the VolumeSnapshotContent and its physical snapshot
|
|
on underlying storage system are deleted. For dynamically provisioned
|
|
snapshots, this field will automatically be filled in by the CSI
|
|
snapshotter sidecar with the "DeletionPolicy" field defined in the
|
|
corresponding VolumeSnapshotClass. For pre-existing snapshots, users
|
|
MUST specify this field when creating the VolumeSnapshotContent
|
|
object. Required.
|
|
enum:
|
|
- Delete
|
|
- Retain
|
|
type: string
|
|
driver:
|
|
description: driver is the name of the CSI driver used to create the
|
|
physical snapshot on the underlying storage system. This MUST be
|
|
the same as the name returned by the CSI GetPluginName() call for
|
|
that driver. Required.
|
|
type: string
|
|
source:
|
|
description: source specifies whether the snapshot is (or should be)
|
|
dynamically provisioned or already exists, and just requires a Kubernetes
|
|
object representation. This field is immutable after creation. Required.
|
|
oneOf:
|
|
- required:
|
|
- snapshotHandle
|
|
- required:
|
|
- volumeHandle
|
|
properties:
|
|
snapshotHandle:
|
|
description: snapshotHandle specifies the CSI "snapshot_id" of
|
|
a pre-existing snapshot on the underlying storage system for
|
|
which a Kubernetes object representation was (or should be)
|
|
created. This field is immutable.
|
|
type: string
|
|
volumeHandle:
|
|
description: volumeHandle specifies the CSI "volume_id" of the
|
|
volume from which a snapshot should be dynamically taken from.
|
|
This field is immutable.
|
|
type: string
|
|
type: object
|
|
sourceVolumeMode:
|
|
description: SourceVolumeMode is the mode of the volume whose snapshot
|
|
is taken. Can be either “Filesystem” or “Block”. If not specified,
|
|
it indicates the source volume's mode is unknown. This field is
|
|
immutable. This field is an alpha field.
|
|
type: string
|
|
volumeSnapshotClassName:
|
|
description: name of the VolumeSnapshotClass from which this snapshot
|
|
was (or will be) created. Note that after provisioning, the VolumeSnapshotClass
|
|
may be deleted or recreated with different set of values, and as
|
|
such, should not be referenced post-snapshot creation.
|
|
type: string
|
|
volumeSnapshotRef:
|
|
description: volumeSnapshotRef specifies the VolumeSnapshot object
|
|
to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName
|
|
field must reference to this VolumeSnapshotContent's name for the
|
|
bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent
|
|
object, name and namespace of the VolumeSnapshot object MUST be
|
|
provided for binding to happen. This field is immutable after creation.
|
|
Required.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: |
|
|
If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.
|
|
type: string
|
|
kind:
|
|
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
type: string
|
|
name:
|
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: |
|
|
Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- deletionPolicy
|
|
- driver
|
|
- source
|
|
- volumeSnapshotRef
|
|
type: object
|
|
status:
|
|
description: status represents the current information of a snapshot.
|
|
properties:
|
|
creationTime:
|
|
description: |
|
|
creationTime is the timestamp when the point-in-time
|
|
snapshot is taken by the underlying storage system. In dynamic snapshot
|
|
creation case, this field will be filled in by the CSI snapshotter
|
|
sidecar with the "creation_time" value returned from CSI "CreateSnapshot"
|
|
gRPC call. For a pre-existing snapshot, this field will be filled
|
|
with the "creation_time" value returned from the CSI "ListSnapshots"
|
|
gRPC call if the driver supports it. If not specified, it indicates
|
|
the creation time is unknown. The format of this field is a Unix
|
|
nanoseconds time encoded as an int64. On Unix, the command `date
|
|
+%s%N` returns the current time in nanoseconds since 1970-01-01
|
|
00:00:00 UTC.
|
|
format: int64
|
|
type: integer
|
|
error:
|
|
description: error is the last observed error during snapshot creation,
|
|
if any. Upon success after retry, this error field will be cleared.
|
|
properties:
|
|
message:
|
|
description: |
|
|
message is a string detailing the encountered error
|
|
during snapshot creation if specified. NOTE: message may be
|
|
logged, and it should not contain sensitive information.
|
|
type: string
|
|
time:
|
|
description: time is the timestamp when the error was encountered.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
readyToUse:
|
|
description: readyToUse indicates if a snapshot is ready to be used
|
|
to restore a volume. In dynamic snapshot creation case, this field
|
|
will be filled in by the CSI snapshotter sidecar with the "ready_to_use"
|
|
value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "ready_to_use" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it, otherwise, this field will be set to "True". If not specified,
|
|
it means the readiness of a snapshot is unknown.
|
|
type: boolean
|
|
restoreSize:
|
|
description: restoreSize represents the complete size of the snapshot
|
|
in bytes. In dynamic snapshot creation case, this field will be
|
|
filled in by the CSI snapshotter sidecar with the "size_bytes" value
|
|
returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "size_bytes" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it. When restoring a volume from this snapshot, the size of the
|
|
volume MUST NOT be smaller than the restoreSize if it is specified,
|
|
otherwise the restoration will fail. If not specified, it indicates
|
|
that the size is unknown.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
snapshotHandle:
|
|
description: snapshotHandle is the CSI "snapshot_id" of a snapshot
|
|
on the underlying storage system. If not specified, it indicates
|
|
that dynamic snapshot creation has either failed or it is still
|
|
in progress.
|
|
type: string
|
|
volumeGroupSnapshotContentName:
|
|
description: VolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent
|
|
of which this VolumeSnapshotContent is a part of.
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
- additionalPrinterColumns:
|
|
- description: Indicates if the snapshot is ready to be used to restore a volume.
|
|
jsonPath: .status.readyToUse
|
|
name: ReadyToUse
|
|
type: boolean
|
|
- description: Represents the complete size of the snapshot in bytes
|
|
jsonPath: .status.restoreSize
|
|
name: RestoreSize
|
|
type: integer
|
|
- description: Determines whether this VolumeSnapshotContent and its physical
|
|
snapshot on the underlying storage system should be deleted when its bound
|
|
VolumeSnapshot is deleted.
|
|
jsonPath: .spec.deletionPolicy
|
|
name: DeletionPolicy
|
|
type: string
|
|
- description: Name of the CSI driver used to create the physical snapshot on
|
|
the underlying storage system.
|
|
jsonPath: .spec.driver
|
|
name: Driver
|
|
type: string
|
|
- description: Name of the VolumeSnapshotClass to which this snapshot belongs.
|
|
jsonPath: .spec.volumeSnapshotClassName
|
|
name: VolumeSnapshotClass
|
|
type: string
|
|
- description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent
|
|
object is bound.
|
|
jsonPath: .spec.volumeSnapshotRef.name
|
|
name: VolumeSnapshot
|
|
type: string
|
|
- description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent
|
|
object is bound.
|
|
jsonPath: .spec.volumeSnapshotRef.namespace
|
|
name: VolumeSnapshotNamespace
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
deprecated: true
|
|
deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshotContent is deprecated;
|
|
use snapshot.storage.k8s.io/v1 VolumeSnapshotContent
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshotContent represents the actual "on-disk" snapshot
|
|
object in the underlying storage system
|
|
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
|
|
spec:
|
|
description: spec defines properties of a VolumeSnapshotContent created
|
|
by the underlying storage system. Required.
|
|
properties:
|
|
deletionPolicy:
|
|
description: deletionPolicy determines whether this VolumeSnapshotContent
|
|
and its physical snapshot on the underlying storage system should
|
|
be deleted when its bound VolumeSnapshot is deleted. Supported values
|
|
are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent
|
|
and its physical snapshot on underlying storage system are kept.
|
|
"Delete" means that the VolumeSnapshotContent and its physical snapshot
|
|
on underlying storage system are deleted. For dynamically provisioned
|
|
snapshots, this field will automatically be filled in by the CSI
|
|
snapshotter sidecar with the "DeletionPolicy" field defined in the
|
|
corresponding VolumeSnapshotClass. For pre-existing snapshots, users
|
|
MUST specify this field when creating the VolumeSnapshotContent
|
|
object. Required.
|
|
enum:
|
|
- Delete
|
|
- Retain
|
|
type: string
|
|
driver:
|
|
description: driver is the name of the CSI driver used to create the
|
|
physical snapshot on the underlying storage system. This MUST be
|
|
the same as the name returned by the CSI GetPluginName() call for
|
|
that driver. Required.
|
|
type: string
|
|
source:
|
|
description: source specifies whether the snapshot is (or should be)
|
|
dynamically provisioned or already exists, and just requires a Kubernetes
|
|
object representation. This field is immutable after creation. Required.
|
|
properties:
|
|
snapshotHandle:
|
|
description: snapshotHandle specifies the CSI "snapshot_id" of
|
|
a pre-existing snapshot on the underlying storage system for
|
|
which a Kubernetes object representation was (or should be)
|
|
created. This field is immutable.
|
|
type: string
|
|
volumeHandle:
|
|
description: volumeHandle specifies the CSI "volume_id" of the
|
|
volume from which a snapshot should be dynamically taken from.
|
|
This field is immutable.
|
|
type: string
|
|
type: object
|
|
volumeSnapshotClassName:
|
|
description: name of the VolumeSnapshotClass from which this snapshot
|
|
was (or will be) created. Note that after provisioning, the VolumeSnapshotClass
|
|
may be deleted or recreated with different set of values, and as
|
|
such, should not be referenced post-snapshot creation.
|
|
type: string
|
|
volumeSnapshotRef:
|
|
description: volumeSnapshotRef specifies the VolumeSnapshot object
|
|
to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName
|
|
field must reference to this VolumeSnapshotContent's name for the
|
|
bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent
|
|
object, name and namespace of the VolumeSnapshot object MUST be
|
|
provided for binding to happen. This field is immutable after creation.
|
|
Required.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: |
|
|
If referring to a piece of an object instead of
|
|
an entire object, this string should contain a valid JSON/Go
|
|
field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within
|
|
a pod, this would take on a value like: "spec.containers{name}"
|
|
(where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]"
|
|
(container with index 2 in this pod). This syntax is chosen
|
|
only to have some well-defined way of referencing a part of
|
|
an object. TODO: this design is not final and this field is
|
|
subject to change in the future.
|
|
type: string
|
|
kind:
|
|
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
type: string
|
|
name:
|
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
description: |
|
|
Specific resourceVersion to which this reference
|
|
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
required:
|
|
- deletionPolicy
|
|
- driver
|
|
- source
|
|
- volumeSnapshotRef
|
|
type: object
|
|
status:
|
|
description: status represents the current information of a snapshot.
|
|
properties:
|
|
creationTime:
|
|
description: creationTime is the timestamp when the point-in-time
|
|
snapshot is taken by the underlying storage system. In dynamic snapshot
|
|
creation case, this field will be filled in by the CSI snapshotter
|
|
sidecar with the "creation_time" value returned from CSI "CreateSnapshot"
|
|
gRPC call. For a pre-existing snapshot, this field will be filled
|
|
with the "creation_time" value returned from the CSI "ListSnapshots"
|
|
gRPC call if the driver supports it. If not specified, it indicates
|
|
the creation time is unknown. The format of this field is a Unix
|
|
nanoseconds time encoded as an int64. On Unix, the command `date
|
|
+%s%N` returns the current time in nanoseconds since 1970-01-01
|
|
00:00:00 UTC.
|
|
format: int64
|
|
type: integer
|
|
error:
|
|
description: error is the last observed error during snapshot creation,
|
|
if any. Upon success after retry, this error field will be cleared.
|
|
properties:
|
|
message:
|
|
description: |
|
|
message is a string detailing the encountered error
|
|
during snapshot creation if specified. NOTE: message may be
|
|
logged, and it should not contain sensitive information.
|
|
type: string
|
|
time:
|
|
description: time is the timestamp when the error was encountered.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
readyToUse:
|
|
description: readyToUse indicates if a snapshot is ready to be used
|
|
to restore a volume. In dynamic snapshot creation case, this field
|
|
will be filled in by the CSI snapshotter sidecar with the "ready_to_use"
|
|
value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "ready_to_use" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it, otherwise, this field will be set to "True". If not specified,
|
|
it means the readiness of a snapshot is unknown.
|
|
type: boolean
|
|
restoreSize:
|
|
description: restoreSize represents the complete size of the snapshot
|
|
in bytes. In dynamic snapshot creation case, this field will be
|
|
filled in by the CSI snapshotter sidecar with the "size_bytes" value
|
|
returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "size_bytes" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it. When restoring a volume from this snapshot, the size of the
|
|
volume MUST NOT be smaller than the restoreSize if it is specified,
|
|
otherwise the restoration will fail. If not specified, it indicates
|
|
that the size is unknown.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
snapshotHandle:
|
|
description: snapshotHandle is the CSI "snapshot_id" of a snapshot
|
|
on the underlying storage system. If not specified, it indicates
|
|
that dynamic snapshot creation has either failed or it is still
|
|
in progress.
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: false
|
|
storage: false
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814
|
|
controller-gen.kubebuilder.io/version: v0.11.3
|
|
helm.sh/resource-policy: keep
|
|
creationTimestamp: null
|
|
name: volumesnapshots.snapshot.storage.k8s.io
|
|
spec:
|
|
group: snapshot.storage.k8s.io
|
|
names:
|
|
kind: VolumeSnapshot
|
|
listKind: VolumeSnapshotList
|
|
plural: volumesnapshots
|
|
shortNames:
|
|
- vs
|
|
singular: volumesnapshot
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- description: Indicates if the snapshot is ready to be used to restore a volume.
|
|
jsonPath: .status.readyToUse
|
|
name: ReadyToUse
|
|
type: boolean
|
|
- description: If a new snapshot needs to be created, this contains the name of
|
|
the source PVC from which this snapshot was (or will be) created.
|
|
jsonPath: .spec.source.persistentVolumeClaimName
|
|
name: SourcePVC
|
|
type: string
|
|
- description: If a snapshot already exists, this contains the name of the existing
|
|
VolumeSnapshotContent object representing the existing snapshot.
|
|
jsonPath: .spec.source.volumeSnapshotContentName
|
|
name: SourceSnapshotContent
|
|
type: string
|
|
- description: Represents the minimum size of volume required to rehydrate from
|
|
this snapshot.
|
|
jsonPath: .status.restoreSize
|
|
name: RestoreSize
|
|
type: string
|
|
- description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot.
|
|
jsonPath: .spec.volumeSnapshotClassName
|
|
name: SnapshotClass
|
|
type: string
|
|
- description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot
|
|
object intends to bind to. Please note that verification of binding actually
|
|
requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure
|
|
both are pointing at each other. Binding MUST be verified prior to usage of
|
|
this object.
|
|
jsonPath: .status.boundVolumeSnapshotContentName
|
|
name: SnapshotContent
|
|
type: string
|
|
- description: Timestamp when the point-in-time snapshot was taken by the underlying
|
|
storage system.
|
|
jsonPath: .status.creationTime
|
|
name: CreationTime
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshot is a user's request for either creating a point-in-time
|
|
snapshot of a persistent volume, or binding to a pre-existing snapshot.
|
|
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
|
|
spec:
|
|
description: 'spec defines the desired characteristics of a snapshot requested
|
|
by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
|
|
Required.'
|
|
properties:
|
|
source:
|
|
description: source specifies where a snapshot will be created from.
|
|
This field is immutable after creation. Required.
|
|
oneOf:
|
|
- required:
|
|
- persistentVolumeClaimName
|
|
- required:
|
|
- volumeSnapshotContentName
|
|
properties:
|
|
persistentVolumeClaimName:
|
|
description: persistentVolumeClaimName specifies the name of the
|
|
PersistentVolumeClaim object representing the volume from which
|
|
a snapshot should be created. This PVC is assumed to be in the
|
|
same namespace as the VolumeSnapshot object. This field should
|
|
be set if the snapshot does not exists, and needs to be created.
|
|
This field is immutable.
|
|
type: string
|
|
volumeSnapshotContentName:
|
|
description: volumeSnapshotContentName specifies the name of a
|
|
pre-existing VolumeSnapshotContent object representing an existing
|
|
volume snapshot. This field should be set if the snapshot already
|
|
exists and only needs a representation in Kubernetes. This field
|
|
is immutable.
|
|
type: string
|
|
type: object
|
|
volumeSnapshotClassName:
|
|
description: |
|
|
VolumeSnapshotClassName is the name of the VolumeSnapshotClass
|
|
requested by the VolumeSnapshot. VolumeSnapshotClassName may be
|
|
left nil to indicate that the default SnapshotClass should be used.
|
|
A given cluster may have multiple default Volume SnapshotClasses:
|
|
one default per CSI Driver. If a VolumeSnapshot does not specify
|
|
a SnapshotClass, VolumeSnapshotSource will be checked to figure
|
|
out what the associated CSI Driver is, and the default VolumeSnapshotClass
|
|
associated with that CSI Driver will be used. If more than one VolumeSnapshotClass
|
|
exist for a given CSI Driver and more than one have been marked
|
|
as default, CreateSnapshot will fail and generate an event. Empty
|
|
string is not allowed for this field.
|
|
type: string
|
|
required:
|
|
- source
|
|
type: object
|
|
status:
|
|
description: status represents the current information of a snapshot.
|
|
Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent
|
|
objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent
|
|
point at each other) before using this object.
|
|
properties:
|
|
boundVolumeSnapshotContentName:
|
|
description: |
|
|
boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent
|
|
object to which this VolumeSnapshot object intends to bind to. If
|
|
not specified, it indicates that the VolumeSnapshot object has not
|
|
been successfully bound to a VolumeSnapshotContent object yet. NOTE:
|
|
To avoid possible security issues, consumers must verify binding
|
|
between VolumeSnapshot and VolumeSnapshotContent objects is successful
|
|
(by validating that both VolumeSnapshot and VolumeSnapshotContent
|
|
point at each other) before using this object.
|
|
type: string
|
|
creationTime:
|
|
description: creationTime is the timestamp when the point-in-time
|
|
snapshot is taken by the underlying storage system. In dynamic snapshot
|
|
creation case, this field will be filled in by the snapshot controller
|
|
with the "creation_time" value returned from CSI "CreateSnapshot"
|
|
gRPC call. For a pre-existing snapshot, this field will be filled
|
|
with the "creation_time" value returned from the CSI "ListSnapshots"
|
|
gRPC call if the driver supports it. If not specified, it may indicate
|
|
that the creation time of the snapshot is unknown.
|
|
format: date-time
|
|
type: string
|
|
error:
|
|
description: error is the last observed error during snapshot creation,
|
|
if any. This field could be helpful to upper level controllers(i.e.,
|
|
application controller) to decide whether they should continue on
|
|
waiting for the snapshot to be created based on the type of error
|
|
reported. The snapshot controller will keep retrying when an error
|
|
occurs during the snapshot creation. Upon success, this error field
|
|
will be cleared.
|
|
properties:
|
|
message:
|
|
description: 'message is a string detailing the encountered error
|
|
during snapshot creation if specified. NOTE: message may be
|
|
logged, and it should not contain sensitive information.'
|
|
type: string
|
|
time:
|
|
description: time is the timestamp when the error was encountered.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
readyToUse:
|
|
description: readyToUse indicates if the snapshot is ready to be used
|
|
to restore a volume. In dynamic snapshot creation case, this field
|
|
will be filled in by the snapshot controller with the "ready_to_use"
|
|
value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "ready_to_use" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it, otherwise, this field will be set to "True". If not specified,
|
|
it means the readiness of a snapshot is unknown.
|
|
type: boolean
|
|
restoreSize:
|
|
description: restoreSize represents the minimum size of volume required
|
|
to create a volume from this snapshot. In dynamic snapshot creation
|
|
case, this field will be filled in by the snapshot controller with
|
|
the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call.
|
|
For a pre-existing snapshot, this field will be filled with the
|
|
"size_bytes" value returned from the CSI "ListSnapshots" gRPC call
|
|
if the driver supports it. When restoring a volume from this snapshot,
|
|
the size of the volume MUST NOT be smaller than the restoreSize
|
|
if it is specified, otherwise the restoration will fail. If not
|
|
specified, it indicates that the size is unknown.
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
type: string
|
|
x-kubernetes-int-or-string: true
|
|
volumeGroupSnapshotName:
|
|
description: VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot
|
|
of which this VolumeSnapshot is a part of.
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
- additionalPrinterColumns:
|
|
- description: Indicates if the snapshot is ready to be used to restore a volume.
|
|
jsonPath: .status.readyToUse
|
|
name: ReadyToUse
|
|
type: boolean
|
|
- description: If a new snapshot needs to be created, this contains the name of
|
|
the source PVC from which this snapshot was (or will be) created.
|
|
jsonPath: .spec.source.persistentVolumeClaimName
|
|
name: SourcePVC
|
|
type: string
|
|
- description: If a snapshot already exists, this contains the name of the existing
|
|
VolumeSnapshotContent object representing the existing snapshot.
|
|
jsonPath: .spec.source.volumeSnapshotContentName
|
|
name: SourceSnapshotContent
|
|
type: string
|
|
- description: Represents the minimum size of volume required to rehydrate from
|
|
this snapshot.
|
|
jsonPath: .status.restoreSize
|
|
name: RestoreSize
|
|
type: string
|
|
- description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot.
|
|
jsonPath: .spec.volumeSnapshotClassName
|
|
name: SnapshotClass
|
|
type: string
|
|
- description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot
|
|
object intends to bind to. Please note that verification of binding actually
|
|
requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure
|
|
both are pointing at each other. Binding MUST be verified prior to usage of
|
|
this object.
|
|
jsonPath: .status.boundVolumeSnapshotContentName
|
|
name: SnapshotContent
|
|
type: string
|
|
- description: Timestamp when the point-in-time snapshot was taken by the underlying
|
|
storage system.
|
|
jsonPath: .status.creationTime
|
|
name: CreationTime
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
deprecated: true
|
|
deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshot is deprecated;
|
|
use snapshot.storage.k8s.io/v1 VolumeSnapshot
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeSnapshot is a user's request for either creating a point-in-time
|
|
snapshot of a persistent volume, or binding to a pre-existing snapshot.
|
|
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
|
|
spec:
|
|
description: |
|
|
spec defines the desired characteristics of a snapshot requested
|
|
by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
|
|
Required.
|
|
properties:
|
|
source:
|
|
description: source specifies where a snapshot will be created from.
|
|
This field is immutable after creation. Required.
|
|
properties:
|
|
persistentVolumeClaimName:
|
|
description: persistentVolumeClaimName specifies the name of the
|
|
PersistentVolumeClaim object representing the volume from which
|
|
a snapshot should be created. This PVC is assumed to be in the
|
|
same namespace as the VolumeSnapshot object. This field should
|
|
be set if the snapshot does not exists, and needs to be created.
|
|
This field is immutable.
|
|
type: string
|
|
volumeSnapshotContentName:
|
|
description: volumeSnapshotContentName specifies the name of a
|
|
pre-existing VolumeSnapshotContent object representing an existing
|
|
volume snapshot. This field should be set if the snapshot already
|
|
exists and only needs a representation in Kubernetes. This field
|
|
is immutable.
|
|
type: string
|
|
type: object
|
|
volumeSnapshotClassName:
|
|
description: |
|
|
VolumeSnapshotClassName is the name of the VolumeSnapshotClass
|
|
requested by the VolumeSnapshot. VolumeSnapshotClassName may be
|
|
left nil to indicate that the default SnapshotClass should be used.
|
|
A given cluster may have multiple default Volume SnapshotClasses:
|
|
one default per CSI Driver. If a VolumeSnapshot does not specify
|
|
a SnapshotClass, VolumeSnapshotSource will be checked to figure
|
|
out what the associated CSI Driver is, and the default VolumeSnapshotClass
|
|
associated with that CSI Driver will be used. If more than one VolumeSnapshotClass
|
|
exist for a given CSI Driver and more than one have been marked
|
|
as default, CreateSnapshot will fail and generate an event. Empty
|
|
string is not allowed for this field.
|
|
type: string
|
|
required:
|
|
- source
|
|
type: object
|
|
status:
|
|
description: status represents the current information of a snapshot.
|
|
Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent
|
|
objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent
|
|
point at each other) before using this object.
|
|
properties:
|
|
boundVolumeSnapshotContentName:
|
|
description: |
|
|
boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent
|
|
object to which this VolumeSnapshot object intends to bind to. If
|
|
not specified, it indicates that the VolumeSnapshot object has not
|
|
been successfully bound to a VolumeSnapshotContent object yet. NOTE:
|
|
To avoid possible security issues, consumers must verify binding
|
|
between VolumeSnapshot and VolumeSnapshotContent objects is successful
|
|
(by validating that both VolumeSnapshot and VolumeSnapshotContent
|
|
point at each other) before using this object.
|
|
type: string
|
|
creationTime:
|
|
description: creationTime is the timestamp when the point-in-time
|
|
snapshot is taken by the underlying storage system. In dynamic snapshot
|
|
creation case, this field will be filled in by the snapshot controller
|
|
with the "creation_time" value returned from CSI "CreateSnapshot"
|
|
gRPC call. For a pre-existing snapshot, this field will be filled
|
|
with the "creation_time" value returned from the CSI "ListSnapshots"
|
|
gRPC call if the driver supports it. If not specified, it may indicate
|
|
that the creation time of the snapshot is unknown.
|
|
format: date-time
|
|
type: string
|
|
error:
|
|
description: error is the last observed error during snapshot creation,
|
|
if any. This field could be helpful to upper level controllers(i.e.,
|
|
application controller) to decide whether they should continue on
|
|
waiting for the snapshot to be created based on the type of error
|
|
reported. The snapshot controller will keep retrying when an error
|
|
occurs during the snapshot creation. Upon success, this error field
|
|
will be cleared.
|
|
properties:
|
|
message:
|
|
description: |
|
|
message is a string detailing the encountered error
|
|
during snapshot creation if specified. NOTE: message may be
|
|
logged, and it should not contain sensitive information.
|
|
type: string
|
|
time:
|
|
description: time is the timestamp when the error was encountered.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
readyToUse:
|
|
description: readyToUse indicates if the snapshot is ready to be used
|
|
to restore a volume. In dynamic snapshot creation case, this field
|
|
will be filled in by the snapshot controller with the "ready_to_use"
|
|
value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing
|
|
snapshot, this field will be filled with the "ready_to_use" value
|
|
returned from the CSI "ListSnapshots" gRPC call if the driver supports
|
|
it, otherwise, this field will be set to "True". If not specified,
|
|
it means the readiness of a snapshot is unknown.
|
|
type: boolean
|
|
restoreSize:
|
|
description: restoreSize represents the minimum size of volume required
|
|
to create a volume from this snapshot. In dynamic snapshot creation
|
|
case, this field will be filled in by the snapshot controller with
|
|
the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call.
|
|
For a pre-existing snapshot, this field will be filled with the
|
|
"size_bytes" value returned from the CSI "ListSnapshots" gRPC call
|
|
if the driver supports it. When restoring a volume from this snapshot,
|
|
the size of the volume MUST NOT be smaller than the restoreSize
|
|
if it is specified, otherwise the restoration will fail. If not
|
|
specified, it indicates that the size is unknown.
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
type: string
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: false
|
|
storage: false
|
|
subresources:
|
|
status: {}
|
|
status:
|
|
acceptedNames:
|
|
kind: ""
|
|
plural: ""
|
|
conditions: []
|
|
storedVersions: []
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
labels:
|
|
app: localpv-provisioner
|
|
chart: localpv-provisioner-4.2.0
|
|
component: localpv-provisioner
|
|
heritage: Helm
|
|
openebs.io/component-name: openebs-localpv-provisioner
|
|
release: openebs
|
|
name: openebs-localpv-provisioner
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
automountServiceAccountToken: true
|
|
kind: ServiceAccount
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: nats
|
|
app.kubernetes.io/version: 2.9.17
|
|
helm.sh/chart: nats-0.19.14
|
|
name: openebs-nats
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: pre-upgrade
|
|
helm.sh/hook-delete-policy: hook-succeeded
|
|
helm.sh/hook-weight: "-2"
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/version: 4.2.0
|
|
helm.sh/chart: openebs-4.2.0
|
|
name: openebs-pre-upgrade-hook
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: promtail
|
|
app.kubernetes.io/version: 2.8.3
|
|
helm.sh/chart: promtail-6.13.1
|
|
name: openebs-promtail
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
labels:
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-service-account
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
labels:
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-cluster-role
|
|
rules:
|
|
- apiGroups:
|
|
- apiextensions.k8s.io
|
|
resources:
|
|
- customresourcedefinitions
|
|
verbs:
|
|
- create
|
|
- get
|
|
- update
|
|
- list
|
|
- patch
|
|
- replace
|
|
- apiGroups:
|
|
- apiextensions.k8s.io
|
|
resources:
|
|
- customresourcedefinitions/status
|
|
verbs:
|
|
- get
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- openebs.io
|
|
resources:
|
|
- mayastorpools
|
|
verbs:
|
|
- get
|
|
- list
|
|
- patch
|
|
- delete
|
|
- deletecollection
|
|
- apiGroups:
|
|
- openebs.io
|
|
resources:
|
|
- diskpools
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- replace
|
|
- patch
|
|
- create
|
|
- apiGroups:
|
|
- openebs.io
|
|
resources:
|
|
- diskpools/status
|
|
verbs:
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
verbs:
|
|
- create
|
|
- get
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- apps
|
|
resources:
|
|
- deployments
|
|
verbs:
|
|
- get
|
|
- list
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- persistentvolumes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- create
|
|
- delete
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- persistentvolumeclaims
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- apiGroups:
|
|
- storage.k8s.io
|
|
resources:
|
|
- storageclasses
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- list
|
|
- watch
|
|
- create
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- pods
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- persistentvolumeclaims/status
|
|
verbs:
|
|
- patch
|
|
- apiGroups:
|
|
- snapshot.storage.k8s.io
|
|
resources:
|
|
- volumesnapshotclasses
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- snapshot.storage.k8s.io
|
|
resources:
|
|
- volumesnapshotcontents
|
|
verbs:
|
|
- create
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- patch
|
|
- delete
|
|
- apiGroups:
|
|
- snapshot.storage.k8s.io
|
|
resources:
|
|
- volumesnapshotcontents/status
|
|
verbs:
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- snapshot.storage.k8s.io
|
|
resources:
|
|
- volumesnapshots
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- patch
|
|
- delete
|
|
- apiGroups:
|
|
- snapshot.storage.k8s.io
|
|
resources:
|
|
- volumesnapshots/status
|
|
verbs:
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- storage.k8s.io
|
|
resources:
|
|
- volumeattachments
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- storage.k8s.io
|
|
resources:
|
|
- volumeattachments/status
|
|
verbs:
|
|
- patch
|
|
- apiGroups:
|
|
- storage.k8s.io
|
|
resources:
|
|
- csinodes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- namespaces
|
|
verbs:
|
|
- get
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
labels:
|
|
app: localpv-provisioner
|
|
chart: localpv-provisioner-4.2.0
|
|
component: localpv-provisioner
|
|
heritage: Helm
|
|
openebs.io/component-name: openebs-localpv-provisioner
|
|
release: openebs
|
|
name: openebs-localpv-provisioner
|
|
rules:
|
|
- apiGroups:
|
|
- '*'
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- '*'
|
|
resources:
|
|
- namespaces
|
|
- pods
|
|
- events
|
|
- endpoints
|
|
verbs:
|
|
- '*'
|
|
- apiGroups:
|
|
- '*'
|
|
resources:
|
|
- resourcequotas
|
|
- limitranges
|
|
verbs:
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- '*'
|
|
resources:
|
|
- storageclasses
|
|
- persistentvolumeclaims
|
|
- persistentvolumes
|
|
verbs:
|
|
- '*'
|
|
- apiGroups:
|
|
- apiextensions.k8s.io
|
|
resources:
|
|
- customresourcedefinitions
|
|
verbs:
|
|
- get
|
|
- list
|
|
- create
|
|
- update
|
|
- delete
|
|
- patch
|
|
- apiGroups:
|
|
- openebs.io
|
|
resources:
|
|
- '*'
|
|
verbs:
|
|
- '*'
|
|
- apiGroups:
|
|
- coordination.k8s.io
|
|
resources:
|
|
- leases
|
|
verbs:
|
|
- get
|
|
- create
|
|
- update
|
|
- nonResourceURLs:
|
|
- /metrics
|
|
verbs:
|
|
- get
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: pre-upgrade
|
|
helm.sh/hook-delete-policy: hook-succeeded
|
|
helm.sh/hook-weight: "-2"
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/version: 4.2.0
|
|
helm.sh/chart: openebs-4.2.0
|
|
name: openebs-pre-upgrade-hook
|
|
rules:
|
|
- apiGroups:
|
|
- apiextensions.k8s.io
|
|
resources:
|
|
- customresourcedefinitions
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- apiGroups:
|
|
- apps
|
|
resources:
|
|
- deployments
|
|
verbs:
|
|
- delete
|
|
- list
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: promtail
|
|
app.kubernetes.io/version: 2.8.3
|
|
helm.sh/chart: promtail-6.13.1
|
|
name: openebs-promtail
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
- nodes/proxy
|
|
- services
|
|
- endpoints
|
|
- pods
|
|
verbs:
|
|
- get
|
|
- watch
|
|
- list
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: openebs-loki
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
labels:
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-cluster-role-binding
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: openebs-cluster-role
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: openebs-service-account
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
labels:
|
|
app: localpv-provisioner
|
|
chart: localpv-provisioner-4.2.0
|
|
component: localpv-provisioner
|
|
heritage: Helm
|
|
openebs.io/component-name: openebs-localpv-provisioner
|
|
release: openebs
|
|
name: openebs-localpv-provisioner
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: openebs-localpv-provisioner
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: openebs-localpv-provisioner
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: pre-upgrade
|
|
helm.sh/hook-delete-policy: hook-succeeded
|
|
helm.sh/hook-weight: "-1"
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/version: 4.2.0
|
|
helm.sh/chart: openebs-4.2.0
|
|
name: openebs-pre-upgrade-hook
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: openebs-pre-upgrade-hook
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: openebs-pre-upgrade-hook
|
|
namespace: openebs
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: promtail
|
|
app.kubernetes.io/version: 2.8.3
|
|
helm.sh/chart: promtail-6.13.1
|
|
name: openebs-promtail
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: openebs-promtail
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: openebs-promtail
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
loki-stack-datasource.yaml: |-
|
|
apiVersion: 1
|
|
datasources:
|
|
- name: Loki
|
|
type: loki
|
|
access: proxy
|
|
url: "http://openebs-loki:3100"
|
|
version: 1
|
|
isDefault: true
|
|
jsonData:
|
|
{}
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: loki-stack
|
|
chart: loki-stack-2.9.11
|
|
grafana_datasource: "1"
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki-stack
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
test.sh: |
|
|
#!/usr/bin/env bash
|
|
|
|
LOKI_URI="http://${LOKI_SERVICE}:${LOKI_PORT}"
|
|
|
|
function setup() {
|
|
apk add -u curl jq
|
|
until (curl -s ${LOKI_URI}/loki/api/v1/label/app/values | jq -e '.data[] | select(. == "loki")'); do
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
@test "Has labels" {
|
|
curl -s ${LOKI_URI}/loki/api/v1/labels | \
|
|
jq -e '.data[] | select(. == "app")'
|
|
}
|
|
|
|
@test "Query log entry" {
|
|
curl -sG ${LOKI_URI}/api/prom/query?limit=10 --data-urlencode 'query={app="loki"}' | \
|
|
jq -e '.streams[].entries | length >=1'
|
|
}
|
|
|
|
@test "Push log entry" {
|
|
local timestamp=$(date +%s000000000)
|
|
local data=$(jq -n --arg timestamp "${timestamp}" '{"streams": [{"stream": {"app": "loki-test"}, "values": [[$timestamp, "foobar"]]}]}')
|
|
|
|
curl -s -X POST -H "Content-Type: application/json" ${LOKI_URI}/loki/api/v1/push --data-raw "${data}"
|
|
|
|
curl -sG ${LOKI_URI}/loki/api/v1/query_range?limit=1 --data-urlencode 'query={app="loki-test"}' | \
|
|
jq -e '.data.result[].values[][1] == "foobar"'
|
|
}
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app: loki-stack
|
|
chart: loki-stack-2.9.11
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki-stack-test
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
nats.conf: "# NATS Clients Port\nport: 4222\n\n# PID file shared with configuration
|
|
reloader.\npid_file: \"/var/run/nats/nats.pid\"\n\n###############\n# #\n#
|
|
Monitoring #\n# #\n###############\nhttp: 8222\nserver_name:$POD_NAME\n###################################\n#
|
|
\ #\n# NATS JetStream #\n# #\n###################################\njetstream
|
|
{\n max_mem: 5Mi\n}\n###################################\n# #\n#
|
|
NATS Full Mesh Clustering Setup #\n# #\n###################################\ncluster
|
|
{\n port: 6222\n name: nats\n\n routes = [\n nats://openebs-nats-0.openebs-nats.openebs:6222,nats://openebs-nats-1.openebs-nats.openebs:6222,nats://openebs-nats-2.openebs-nats.openebs:6222,\n
|
|
\ \n ]\n cluster_advertise: $CLUSTER_ADVERTISE\n\n connect_retries: 120\n}\nlame_duck_grace_period:
|
|
10s\nlame_duck_duration: 30s\n"
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: nats
|
|
app.kubernetes.io/version: 2.9.17
|
|
helm.sh/chart: nats-0.19.14
|
|
name: openebs-nats-config
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
jwt-token.pem: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKSndJQkFBS0NBZ0VBeEVISkc5SXY4dVZZTS9xeXZ4TEtKQkoyVmxSNHY0dHhZd3ZuQnF2MW1BZkpnbTVkCmVHd3FaNUVLUnR1UXJ5MVlnc091bXRITkFjaWRhc1JYd2EwTDhYWkhmekIySlBvMVRtTTF5Sno1OW5YYnpXQ3cKT0huTlZIZk1HOHhVOWpBaklOU2J6d0ZBekE0THh6dFFuZWtOTWxheWYrT1IzalMyVHFSZTNxcVhGNTdSbGdERApqTG8zMkV2YURsaVluNFpseFlGUWJuZUluVzBDaHdXUzI0QUxjanVISEF5aklvWktISVdkMzRCN2J5dHVmVjBDCkdkczI3RFUyNzZRM1ZOM3V5VlA1WnNocVBWYTVESzZkelAyaHJNczJBNE1NZ1F3cm9SL2dHOG5xeExTOTRDU0QKUXpxdXc1K1V6N1NKMlVKS05JV2xqd1RIUXVlV2hPZHo3czh0U1BBK0R4dVUwSG5IQkJNdjhwMGp2aU9SZXdWUwp3Lyt4eVhTZGRUL29BS0lCWHlTdHNFa2V2ME1wcW14VGlQdXdUQzJBeCsycVNISG1OeWRyMFNvQ0ZoUUpHTGV4ClMxN0t5RDcwWWJyTGpOOTdML0x2VUE1Zml2MVV0NzV3T2RnYkpnb1dneXBHb0QwclFvL3pkcWM4OGlCdG1tZXMKbFhpelhvSXc1UGJrM1hRemJWS2hCVi9NeG9YYWZBdVRJOWc5ZUxnL2hhQktldnVvdXR5TllBcXZhUHhLc2g2eQo0NUVRT3ZMRHpKNnpic3NqNVV3VXhWd1UxbGd5QUpKcFRkdXdsK0NJSk5vRWJ2bTNHSXl0WFZjSmI1b2ttOU5JClhCdXhDR0h2WVZKaWRDQlZQZWlDZml0N3ZjdkNWd1c2NWNCZFZUeEVlSGRwRnNSdGJYanNYbk5SK1lrQ0F3RUEKQVFLQ0FnQVZsa21HcytIdVRSSng5VHRxdWxNSVpnelBoaVJ2VXBQbG1jNDVuNlNOLzhmeDFDM3RMRjM3QjZzaQpZWGhTckhiZ2tLR2VDZXhnMW9PVTFpL3ptbWlHa01TMTFYWWVyeDdrbG1rT0UxRGVBOWRxTkhQRERUTEJVeGxkCkNCRmpCYWNpTDFYMnVRNlFPTGlobTRGTWtwdmtVNVpOYkR5dWttRzkyTHFrQjJPWWg0YjAxdlNyZ0EyRnp5SVgKRXpaYjBGbFZhNFNXQWdsQmpRSUsxQVFlcDJ1YTVHS3N6OVJmTWN6cEY1Rm1uMzFKbkhTMHpyYmRIVGhpQWFCMApwT2dwS2tMZnNQV1g1cWVPUTZ4ckhBYzR5eFV1S242d2VETzNPM0xPY0VaNFhWeTR4NkN6RE9ad28xTWgxV1hLCjlaMTJ0a3laNWx3YTZuaE4xYWRxeXdLbmhwdXJzL2V3K3N0SFlwcHZ5UzJ5bTR5UUZxMXNseVdlcmhLSkdzZUsKZWgzampXWm13T3pzSkJqT1VRaHNCdFdtQS9Wbk9UQy9BNXhaVjZYWnFSKzlUdkxraUF6aFllQ3Q2WTh1TlVhTgo5WElqRFV1WGIrYkt0eVpWNmlCN2lMMUgvdUVZQldVdVZ2ZittaEFNU0VhZ0Fnb1RaQzliZXNSTlpNREpTajYrCmsvVkdYdU5ZaHB0YXRqdy8vU1E1azduS2ZEaEZOclgrV0tUVU9KTGkzcG5YQ0ZNcS8wVjhGaVNvVENWSDVtdG0KVXdDTktaMmtyUExmODFMem1zK1dtYnBYdFQ0MFhHaHFuY0xYZDJweXRhOTN6bVJBamJDWDdncGZNL0dJSUdyYwpGb29qZTcyWUl3TXVJajN6K3BrUFAyYnZSZ2t3dmxmRXRLSWtLdEYzRXpCTUFUbWIrUUtDQVFFQTk4YlFTR000CmlNYmZFbUZENzByUVJmdFdmcDBVSEx1dFlJaE1SdGxlSWFtNHZjK1ZzcWdvb29POHlNbWJBNlFVMnJwSU4yd0UKZ2xaVjFzSXZ6ZHJPTjhsWWRQUDlRRThRT2ZEYnNHVy9ycHhIMWpnTktRaWhuSGhHL2lCQ2NwNFRVd09NV1RXYwptTjZybUdTeUh4aVNVcXZJM0pPVHZJY1FidWVROWtJcGFzRXdVMXRZZ2FlZHFuQzhMODJkQW1LVWMrYUJlYW5nCkltNHViWFFvMkNxejVsRytLdzVMckVIZVpsdUhqeGFBYTFMSEcvN3ZyVjJwbnp1M1N5ZzlOK1pKeHhhODhwVVQKSEVLTXZNUVFaMStYc0wyVG82eU0veXdEaExtdTg3eStRcFllaVFDaDFaMzhVdEhuUE5va0JMcksvK3ZkZUNKSgptb0hTbWhzLzQwZytJd0tDQVFFQXlzVSt5TGhZcjNsUytHdkdZWXhJSG1jZ1JKL3ZpVlRLMlhhdVV1UStoY1FCCmh5WDl3ek1OVVNyK0hwY2lRZnQ3clI3OVVlSUtUM21zZGdzY0JUd1A5QkJCU1k1RkhUQ083VW10UHlxU2VRNm8KUVNUVStWVFdlQmlXWmhTMGRmKzBZRERUOWlGRlNvWDlaZXhHVWNIVnBrK3hPT2UxbE8vV1JBNWZEcm8vbUxENQpoa1cvTHVvYkRXaFR2RTVXbGIxTFNsRi9UM0x6dVFuWVFweDc1WjA4TzJMSHZWcGJIVnVDNzhYNU53eHBicHZpCnZmYU5McE96THJRdXF3TDhKdHY3R0pZMVI3ZTJ5dGwrSlpYcExJRzBQRG1Xem50eXZrUWxmWWJpZjhMSVltNTMKS2JHdzlaTjZrYnpVaDZ1Q3l5QXVKOTlmOWVzZ1V3aVdVMEFLN2VCbVl3S0NBUUFhQWUxVTI4MVFWZ2VPSjFWNQpKWklzOWsvQzVIdjY5QndqdU1yQTJRb1BZSUE2dERKVFdXRkNoYTlvSi9rMGJhR2V2OVRhdEdUWXhYVW5JS1RoCjU2aWpwR2U3aHV5N05sRk9zNkJycUpKeElvaEx6UUJjb1VKTmFUYVNjQkpwYzN3MXgzYVEycGJBV1FjTDdPM2gKWTdQZ0o1WGl5VDdGbUN1NmFHWUg0elB6dDZsNTVtbW8yazRyV0wvNENJNEZkUkYrQk9Ec1EwOTZiYlJEMnVCNgpxQ2pQOFI2VDZHRTdDSUx1blliaUZ3dU51RmViOGF0NHVBOFkzcXpEbjhxbE5tL2lETm55WUlGc0F2UkEwQmVrCnNoejYrVHNvLy9DZ3pCN21iSk1YbEdVb0doZkVhNk9SQjQ4M3BqNnVYWHRRWDhiMUMrM29NVGttbFova2V4MisKbnBPZkFvSUJBQkM0U3dFS0VtWUZ2dzIwOVZxOTBvU1BSRjNrUWtBMHViVk16L3NOendvQXE0K1ZWbU51Smo3MwpLSlVsS1RIL3BxY1QweGVaWi9nOXREYlhtNnZpMC8zd0NUSWpoUmR2RlpvRFpVRzhKTy9PZ1prOWpFSXkrS3hXCmVyQllMTGsrS0lWMkFVUmVZZlJQTUNIalpia0FIcm5rQUYwTTNqQTF4cGsrQmlDVXd3RzROaHNZVFRkMUhsM3cKcUZieXJya1NMczhtQVRWdjZTRHM2dVF6T3hRbjd2dUduYW5EZFpmcUg5WGRvVHNrenR6TUJkcGNKakFkQmIxbwpKaUQ3MGdieVJMWTJUSlpwVTYxT1dkU0hrLzZUZzJVajZvZUVMbVg2QUkxbFBmQURBN3I2R09GYlFaZytYUEQvCmZSYmkwWm9tUVNnUWh6MGo4anBtanQ2MmZUQTRQTGtDZ2dFQVpISDRoRGhrbjNXM3pXY3ZnYkp1K056bk82VmEKOWU5V3RjZ1hrVHlnWWZEUG9SSGg2ODl6VmYzdkNiM2NlcCt6KzVKdUc1SGpHU1V2dmlBQnNaRE5Sc0RhU2ZnWQp4UHlhUStnd3B1VzF6bmpjZEtzenBCRWNVNXBMV3RSWnMzRm9xYUYzMXphTXcrUHBrT3BXU2hhUk5tY20rcXVZCjdnN1I0UnNXOGRrTWpsemxRcU1jSzNwemFwWDgxS1F3N1lvTmNZMmxKeUIyR2pRSUNudk9xUVR1OU9xNnhZMnoKZDRMMU1RUE1yamJLdkFwZEs0M0dja1FPUzd6amlNMHhzNW44YTVFOXRiRDdWdEVJbkU3cTRSWXEwMjhnbUJSMwp0VW5aRmcrNktwaTJnRHZzMnBQdVI0WjBFYllzOUpnakJwMHdLSmVtS0psV0ovRXF5UXNpbXFGaXRRPT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
name: openebs-etcd-jwt-token
|
|
namespace: openebs
|
|
type: Opaque
|
|
---
|
|
apiVersion: v1
|
|
data:
|
|
loki.yaml: YXV0aF9lbmFibGVkOiBmYWxzZQpjaHVua19zdG9yZV9jb25maWc6CiAgbWF4X2xvb2tfYmFja19wZXJpb2Q6IDBzCmNvbXBhY3RvcjoKICBjb21wYWN0aW9uX2ludGVydmFsOiAyMG0KICByZXRlbnRpb25fZGVsZXRlX2RlbGF5OiAxaAogIHJldGVudGlvbl9kZWxldGVfd29ya2VyX2NvdW50OiA1MAogIHJldGVudGlvbl9lbmFibGVkOiB0cnVlCiAgc2hhcmVkX3N0b3JlOiBmaWxlc3lzdGVtCiAgd29ya2luZ19kaXJlY3Rvcnk6IC9kYXRhL2xva2kvYm9sdGRiLXNoaXBwZXItY29tcGFjdG9yCmluZ2VzdGVyOgogIGNodW5rX2Jsb2NrX3NpemU6IDI2MjE0NAogIGNodW5rX2lkbGVfcGVyaW9kOiAzbQogIGNodW5rX3JldGFpbl9wZXJpb2Q6IDFtCiAgbGlmZWN5Y2xlcjoKICAgIHJpbmc6CiAgICAgIHJlcGxpY2F0aW9uX2ZhY3RvcjogMQogIG1heF90cmFuc2Zlcl9yZXRyaWVzOiAwCiAgd2FsOgogICAgZGlyOiAvZGF0YS9sb2tpL3dhbApsaW1pdHNfY29uZmlnOgogIGVuZm9yY2VfbWV0cmljX25hbWU6IGZhbHNlCiAgbWF4X2VudHJpZXNfbGltaXRfcGVyX3F1ZXJ5OiA1MDAwCiAgcmVqZWN0X29sZF9zYW1wbGVzOiB0cnVlCiAgcmVqZWN0X29sZF9zYW1wbGVzX21heF9hZ2U6IDE2OGgKICByZXRlbnRpb25fcGVyaW9kOiAxNjhoCm1lbWJlcmxpc3Q6CiAgam9pbl9tZW1iZXJzOgogIC0gJ29wZW5lYnMtbG9raS1tZW1iZXJsaXN0JwpzY2hlbWFfY29uZmlnOgogIGNvbmZpZ3M6CiAgLSBmcm9tOiAiMjAyMC0xMC0yNCIKICAgIGluZGV4OgogICAgICBwZXJpb2Q6IDI0aAogICAgICBwcmVmaXg6IGluZGV4XwogICAgb2JqZWN0X3N0b3JlOiBmaWxlc3lzdGVtCiAgICBzY2hlbWE6IHYxMQogICAgc3RvcmU6IGJvbHRkYi1zaGlwcGVyCnNlcnZlcjoKICBncnBjX2xpc3Rlbl9wb3J0OiA5MDk1CiAgaHR0cF9saXN0ZW5fcG9ydDogMzEwMApzdG9yYWdlX2NvbmZpZzoKICBib2x0ZGJfc2hpcHBlcjoKICAgIGFjdGl2ZV9pbmRleF9kaXJlY3Rvcnk6IC9kYXRhL2xva2kvYm9sdGRiLXNoaXBwZXItYWN0aXZlCiAgICBjYWNoZV9sb2NhdGlvbjogL2RhdGEvbG9raS9ib2x0ZGItc2hpcHBlci1jYWNoZQogICAgY2FjaGVfdHRsOiAyNGgKICAgIHNoYXJlZF9zdG9yZTogZmlsZXN5c3RlbQogIGZpbGVzeXN0ZW06CiAgICBkaXJlY3Rvcnk6IC9kYXRhL2xva2kvY2h1bmtzCnRhYmxlX21hbmFnZXI6CiAgcmV0ZW50aW9uX2RlbGV0ZXNfZW5hYmxlZDogZmFsc2UKICByZXRlbnRpb25fcGVyaW9kOiAwcw==
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: promtail
|
|
app.kubernetes.io/version: 2.8.3
|
|
helm.sh/chart: promtail-6.13.1
|
|
name: openebs-promtail
|
|
namespace: openebs
|
|
stringData:
|
|
promtail.yaml: "server:\n log_level: info\n log_format: logfmt\n http_listen_port:
|
|
3101\n health_check_target: false\n\nclients:\n - url: http://openebs-loki:3100/loki/api/v1/push\n\npositions:\n
|
|
\ filename: /run/promtail/positions.yaml\n\nscrape_configs:\n - job_name: openebs-pods-name\n
|
|
\ pipeline_stages:\n - docker: {}\n - replace:\n expression:
|
|
'(\\n)'\n replace: ''\n - multiline:\n firstline: '^ \\x1b\\[2m(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{6})Z'\n
|
|
\ max_wait_time: 3s\n - multiline:\n firstline: '^ (\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{6})Z'\n
|
|
\ max_wait_time: 3s\n kubernetes_sd_configs:\n - role: pod\n relabel_configs:\n
|
|
\ - source_labels:\n - __meta_kubernetes_pod_node_name\n target_label:
|
|
hostname\n action: replace\n - action: labelmap\n regex: __meta_kubernetes_pod_label_(.+)\n
|
|
\ - action: keep\n source_labels:\n - __meta_kubernetes_pod_label_openebs_io_logging\n
|
|
\ regex: true\n target_label: openebs_component\n - action: replace\n
|
|
\ replacement: $1\n separator: /\n source_labels:\n - __meta_kubernetes_namespace\n
|
|
\ target_label: job\n - action: replace\n source_labels:\n -
|
|
__meta_kubernetes_pod_name\n target_label: pod\n - action: replace\n source_labels:\n
|
|
\ - __meta_kubernetes_pod_container_name\n target_label: container\n
|
|
\ - replacement: /var/log/pods/*$1/*.log\n separator: /\n source_labels:\n
|
|
\ - __meta_kubernetes_pod_uid\n - __meta_kubernetes_pod_container_name\n
|
|
\ target_label: __path__\n \n \n\nlimits_config:\n \n\ntracing:\n enabled:
|
|
false\n"
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: agent-core
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-agent-core
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: grpc
|
|
port: 50051
|
|
- name: ha-cluster
|
|
port: 50052
|
|
selector:
|
|
app: agent-core
|
|
openebs.io/release: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: api-rest
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-api-rest
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: https
|
|
port: 8080
|
|
protocol: TCP
|
|
targetPort: 8080
|
|
- name: http
|
|
port: 8081
|
|
protocol: TCP
|
|
targetPort: 8081
|
|
selector:
|
|
app: api-rest
|
|
openebs.io/release: openebs
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
name: openebs-etcd
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: client
|
|
nodePort: null
|
|
port: 2379
|
|
targetPort: client
|
|
- name: peer
|
|
nodePort: null
|
|
port: 2380
|
|
targetPort: peer
|
|
selector:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: etcd
|
|
sessionAffinity: None
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
annotations:
|
|
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
name: openebs-etcd-headless
|
|
namespace: openebs
|
|
spec:
|
|
clusterIP: None
|
|
ports:
|
|
- name: client
|
|
port: 2379
|
|
targetPort: client
|
|
- name: peer
|
|
port: 2380
|
|
targetPort: peer
|
|
publishNotReadyAddresses: true
|
|
selector:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: etcd
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: http-metrics
|
|
port: 3100
|
|
protocol: TCP
|
|
targetPort: http-metrics
|
|
selector:
|
|
app: loki
|
|
release: openebs
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
variant: headless
|
|
name: openebs-loki-headless
|
|
namespace: openebs
|
|
spec:
|
|
clusterIP: None
|
|
ports:
|
|
- name: http-metrics
|
|
port: 3100
|
|
protocol: TCP
|
|
targetPort: http-metrics
|
|
selector:
|
|
app: loki
|
|
release: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki-memberlist
|
|
namespace: openebs
|
|
spec:
|
|
clusterIP: None
|
|
ports:
|
|
- name: http
|
|
port: 7946
|
|
protocol: TCP
|
|
targetPort: memberlist-port
|
|
publishNotReadyAddresses: true
|
|
selector:
|
|
app: loki
|
|
release: openebs
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: metrics-exporter-io-engine
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-metrics-exporter-io-engine
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: metrics
|
|
port: 9502
|
|
protocol: TCP
|
|
targetPort: 9502
|
|
selector:
|
|
app: io-engine
|
|
openebs.io/release: openebs
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: nats
|
|
app.kubernetes.io/version: 2.9.17
|
|
helm.sh/chart: nats-0.19.14
|
|
name: openebs-nats
|
|
namespace: openebs
|
|
spec:
|
|
clusterIP: None
|
|
ports:
|
|
- appProtocol: tcp
|
|
name: client
|
|
port: 4222
|
|
- appProtocol: tcp
|
|
name: cluster
|
|
port: 6222
|
|
- appProtocol: http
|
|
name: monitor
|
|
port: 8222
|
|
- appProtocol: http
|
|
name: metrics
|
|
port: 7777
|
|
- appProtocol: tcp
|
|
name: leafnodes
|
|
port: 7422
|
|
- appProtocol: tcp
|
|
name: gateways
|
|
port: 7522
|
|
publishNotReadyAddresses: true
|
|
selector:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: nats
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app: obs-callhome
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-obs-callhome-stats
|
|
namespace: openebs
|
|
spec:
|
|
ports:
|
|
- name: https
|
|
port: 9090
|
|
protocol: TCP
|
|
targetPort: 9090
|
|
- name: http
|
|
port: 9091
|
|
protocol: TCP
|
|
targetPort: 9091
|
|
selector:
|
|
app: obs-callhome
|
|
openebs.io/release: openebs
|
|
---
|
|
apiVersion: scheduling.k8s.io/v1
|
|
description: Used for critical pods that must run in the cluster, which can be moved
|
|
to another node if necessary.
|
|
kind: PriorityClass
|
|
metadata:
|
|
name: openebs-cluster-critical
|
|
preemptionPolicy: PreemptLowerPriority
|
|
value: 1000000000
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: agent-core
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-agent-core
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: agent-core
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: agent-core
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --store=openebs-etcd:2379
|
|
- --request-timeout=5s
|
|
- --cache-period=30s
|
|
- --grpc-server-addr=[::]:50051
|
|
- --pool-commitment=250%
|
|
- --snapshot-commitment=40%
|
|
- --volume-commitment-initial=40%
|
|
- --volume-commitment=40%
|
|
- --events-url=nats://openebs-nats:4222
|
|
- --fmt-style=pretty
|
|
- --ansi-colors=true
|
|
- --create-volume-limit=10
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: MY_POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
image: docker.io/openebs/mayastor-agent-core:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-core
|
|
ports:
|
|
- containerPort: 50051
|
|
resources:
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 128Mi
|
|
requests:
|
|
cpu: 500m
|
|
memory: 32Mi
|
|
- args:
|
|
- -g=[::]:50052
|
|
- --store=http://openebs-etcd:2379
|
|
- --core-grpc=https://openebs-agent-core:50051
|
|
- --events-url=nats://openebs-nats:4222
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: MY_POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
image: docker.io/openebs/mayastor-agent-ha-cluster:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-ha-cluster
|
|
ports:
|
|
- containerPort: 50052
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 16Mi
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-etcd 2379; do date; echo "Waiting
|
|
for etcd..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: etcd-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
priorityClassName: openebs-cluster-critical
|
|
serviceAccountName: openebs-service-account
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: api-rest
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-api-rest
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: api-rest
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: api-rest
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --dummy-certificates
|
|
- --no-auth
|
|
- --http=[::]:8081
|
|
- --request-timeout=5s
|
|
- --core-grpc=https://openebs-agent-core:50051
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
- --core-health-freq=20s
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
image: docker.io/openebs/mayastor-api-rest:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
failureThreshold: 1
|
|
httpGet:
|
|
path: /live
|
|
port: 8081
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 30
|
|
timeoutSeconds: 5
|
|
name: api-rest
|
|
ports:
|
|
- containerPort: 8080
|
|
- containerPort: 8081
|
|
readinessProbe:
|
|
failureThreshold: 2
|
|
httpGet:
|
|
path: /ready
|
|
port: 8081
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 20
|
|
timeoutSeconds: 5
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-agent-core 50051; do date; echo
|
|
"Waiting for agent-core-grpc services..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-core-grpc-probe
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-etcd 2379; do date; echo "Waiting
|
|
for etcd..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: etcd-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
priorityClassName: openebs-cluster-critical
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: csi-controller
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-csi-controller
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: csi-controller
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: csi-controller
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --v=2
|
|
- --csi-address=$(ADDRESS)
|
|
- --feature-gates=Topology=true
|
|
- --strict-topology=false
|
|
- --default-fstype=ext4
|
|
- --extra-create-metadata
|
|
- --timeout=36s
|
|
- --worker-threads=10
|
|
- --prevent-volume-mode-conversion
|
|
env:
|
|
- name: ADDRESS
|
|
value: /var/lib/csi/sockets/pluginproxy/csi.sock
|
|
image: registry.k8s.io/sig-storage/csi-provisioner:v3.5.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-provisioner
|
|
volumeMounts:
|
|
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
|
name: socket-dir
|
|
- args:
|
|
- --v=2
|
|
- --timeout=36s
|
|
- --csi-address=$(ADDRESS)
|
|
env:
|
|
- name: ADDRESS
|
|
value: /var/lib/csi/sockets/pluginproxy/csi.sock
|
|
image: registry.k8s.io/sig-storage/csi-attacher:v4.3.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-attacher
|
|
volumeMounts:
|
|
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
|
name: socket-dir
|
|
- args:
|
|
- --v=2
|
|
- --csi-address=$(ADDRESS)
|
|
env:
|
|
- name: ADDRESS
|
|
value: /var/lib/csi/sockets/pluginproxy/csi.sock
|
|
image: registry.k8s.io/sig-storage/csi-snapshotter:v6.3.3
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-snapshotter
|
|
volumeMounts:
|
|
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
|
name: socket-dir
|
|
- args:
|
|
- --v=2
|
|
- --leader-election=false
|
|
- --prevent-volume-mode-conversion
|
|
image: registry.k8s.io/sig-storage/snapshot-controller:v6.3.3
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-snapshot-controller
|
|
- args:
|
|
- --v=2
|
|
- --csi-address=$(ADDRESS)
|
|
- --handle-volume-inuse-error=false
|
|
env:
|
|
- name: ADDRESS
|
|
value: /var/lib/csi/sockets/pluginproxy/csi.sock
|
|
image: registry.k8s.io/sig-storage/csi-resizer:v1.9.3
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-resizer
|
|
volumeMounts:
|
|
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
|
name: socket-dir
|
|
- args:
|
|
- --csi-socket=/var/lib/csi/sockets/pluginproxy/csi.sock
|
|
- --rest-endpoint=http://openebs-api-rest:8081
|
|
- --node-selector=openebs.io/csi-node=mayastor
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
- --create-volume-limit=10
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
image: docker.io/openebs/mayastor-csi-controller:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-controller
|
|
resources:
|
|
limits:
|
|
cpu: 32m
|
|
memory: 128Mi
|
|
requests:
|
|
cpu: 16m
|
|
memory: 64Mi
|
|
volumeMounts:
|
|
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
|
name: socket-dir
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
hostNetwork: true
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-api-rest 8081; do date; echo
|
|
"Waiting for REST API endpoint to become available"; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: api-rest-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
priorityClassName: openebs-cluster-critical
|
|
serviceAccountName: openebs-service-account
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
volumes:
|
|
- emptyDir: null
|
|
name: socket-dir
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: localpv-provisioner
|
|
chart: localpv-provisioner-4.2.0
|
|
component: localpv-provisioner
|
|
heritage: Helm
|
|
openebs.io/component-name: openebs-localpv-provisioner
|
|
release: openebs
|
|
name: openebs-localpv-provisioner
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: localpv-provisioner
|
|
component: localpv-provisioner
|
|
release: openebs
|
|
strategy:
|
|
rollingUpdate: null
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: localpv-provisioner
|
|
chart: localpv-provisioner-4.2.0
|
|
component: localpv-provisioner
|
|
heritage: Helm
|
|
name: openebs-localpv-provisioner
|
|
openebs.io/component-name: openebs-localpv-provisioner
|
|
release: openebs
|
|
spec:
|
|
containers:
|
|
- env:
|
|
- name: OPENEBS_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: OPENEBS_SERVICE_ACCOUNT
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.serviceAccountName
|
|
- name: OPENEBS_IO_ENABLE_ANALYTICS
|
|
value: "true"
|
|
- name: OPENEBS_IO_BASE_PATH
|
|
value: /var/mnt/local-volume
|
|
- name: OPENEBS_IO_HELPER_IMAGE
|
|
value: openebs/linux-utils:4.1.0
|
|
- name: OPENEBS_IO_HELPER_POD_HOST_NETWORK
|
|
value: "false"
|
|
- name: OPENEBS_IO_INSTALLER_TYPE
|
|
value: localpv-charts-helm
|
|
- name: LEADER_ELECTION_ENABLED
|
|
value: "true"
|
|
image: openebs/provisioner-localpv:4.2.0
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- test `pgrep -c "^provisioner-loc.*"` = 1
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
name: openebs-localpv-provisioner
|
|
resources: null
|
|
securityContext: {}
|
|
serviceAccountName: openebs-localpv-provisioner
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: obs-callhome
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-obs-callhome
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: obs-callhome
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: obs-callhome
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- -e http://openebs-api-rest:8081
|
|
- -n openebs
|
|
- --aggregator-url=http://openebs-obs-callhome-stats:9090/stats
|
|
- --send-report
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
image: docker.io/openebs/mayastor-obs-callhome:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: obs-callhome
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 32Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 16Mi
|
|
- args:
|
|
- --namespace=openebs
|
|
- --release-name=openebs
|
|
- --mbus-url=nats://openebs-nats:4222
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
image: docker.io/openebs/mayastor-obs-callhome-stats:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: obs-callhome-stats
|
|
ports:
|
|
- containerPort: 9090
|
|
name: stats
|
|
protocol: TCP
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 32Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 16Mi
|
|
imagePullSecrets: null
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
serviceAccountName: openebs-service-account
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: operator-diskpool
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-operator-diskpool
|
|
namespace: openebs
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: operator-diskpool
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: operator-diskpool
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- -e http://openebs-api-rest:8081
|
|
- -nopenebs
|
|
- --request-timeout=5s
|
|
- --interval=30s
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
image: docker.io/openebs/mayastor-operator-diskpool:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: operator-diskpool
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 32Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 16Mi
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-agent-core 50051; do date; echo
|
|
"Waiting for agent-core-grpc services..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-core-grpc-probe
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-etcd 2379; do date; echo "Waiting
|
|
for etcd..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: etcd-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
priorityClassName: openebs-cluster-critical
|
|
serviceAccountName: openebs-service-account
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 5
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
name: openebs-etcd
|
|
namespace: openebs
|
|
spec:
|
|
podManagementPolicy: Parallel
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: etcd
|
|
serviceName: openebs-etcd-headless
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/token-secret: bd9d0ae68d11f2982838ff82293445e47b678e28808bd54c7cfe46a96e40ef93
|
|
labels:
|
|
app: etcd
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
openebs.io/logging: "true"
|
|
spec:
|
|
affinity:
|
|
nodeAffinity: null
|
|
podAffinity: null
|
|
podAntiAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
- labelSelector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: etcd
|
|
topologyKey: kubernetes.io/hostname
|
|
containers:
|
|
- env:
|
|
- name: BITNAMI_DEBUG
|
|
value: "false"
|
|
- name: MY_POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: MY_STS_NAME
|
|
value: openebs-etcd
|
|
- name: ETCDCTL_API
|
|
value: "3"
|
|
- name: ETCD_ON_K8S
|
|
value: "yes"
|
|
- name: ETCD_START_FROM_SNAPSHOT
|
|
value: "no"
|
|
- name: ETCD_DISASTER_RECOVERY
|
|
value: "no"
|
|
- name: ETCD_NAME
|
|
value: $(MY_POD_NAME)
|
|
- name: ETCD_DATA_DIR
|
|
value: /bitnami/etcd/data
|
|
- name: ETCD_LOG_LEVEL
|
|
value: info
|
|
- name: ALLOW_NONE_AUTHENTICATION
|
|
value: "yes"
|
|
- name: ETCD_AUTH_TOKEN
|
|
value: jwt,priv-key=/opt/bitnami/etcd/certs/token/jwt-token.pem,sign-method=RS256,ttl=10m
|
|
- name: ETCD_ADVERTISE_CLIENT_URLS
|
|
value: http://$(MY_POD_NAME).openebs-etcd-headless.openebs.svc.cluster.local:2379,http://openebs-etcd.openebs.svc.cluster.local:2379
|
|
- name: ETCD_LISTEN_CLIENT_URLS
|
|
value: http://0.0.0.0:2379
|
|
- name: ETCD_INITIAL_ADVERTISE_PEER_URLS
|
|
value: http://$(MY_POD_NAME).openebs-etcd-headless.openebs.svc.cluster.local:2380
|
|
- name: ETCD_LISTEN_PEER_URLS
|
|
value: http://0.0.0.0:2380
|
|
- name: ETCD_AUTO_COMPACTION_MODE
|
|
value: revision
|
|
- name: ETCD_AUTO_COMPACTION_RETENTION
|
|
value: "100"
|
|
- name: ETCD_INITIAL_CLUSTER_TOKEN
|
|
value: etcd-cluster-k8s
|
|
- name: ETCD_INITIAL_CLUSTER_STATE
|
|
value: new
|
|
- name: ETCD_INITIAL_CLUSTER
|
|
value: openebs-etcd-0=http://openebs-etcd-0.openebs-etcd-headless.openebs.svc.cluster.local:2380,openebs-etcd-1=http://openebs-etcd-1.openebs-etcd-headless.openebs.svc.cluster.local:2380,openebs-etcd-2=http://openebs-etcd-2.openebs-etcd-headless.openebs.svc.cluster.local:2380
|
|
- name: ETCD_CLUSTER_DOMAIN
|
|
value: openebs-etcd-headless.openebs.svc.cluster.local
|
|
- name: ETCD_QUOTA_BACKEND_BYTES
|
|
value: "8589934592"
|
|
envFrom: null
|
|
image: docker.io/bitnami/etcd:3.5.6-debian-11-r10
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- /opt/bitnami/scripts/etcd/healthcheck.sh
|
|
failureThreshold: 5
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 30
|
|
successThreshold: 1
|
|
timeoutSeconds: 5
|
|
name: etcd
|
|
ports:
|
|
- containerPort: 2379
|
|
name: client
|
|
protocol: TCP
|
|
- containerPort: 2380
|
|
name: peer
|
|
protocol: TCP
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- /opt/bitnami/scripts/etcd/healthcheck.sh
|
|
failureThreshold: 5
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 5
|
|
resources:
|
|
limits: {}
|
|
requests: {}
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
runAsNonRoot: true
|
|
runAsUser: 1001
|
|
volumeMounts:
|
|
- mountPath: /bitnami/etcd
|
|
name: data
|
|
- mountPath: /opt/bitnami/etcd/certs/token/
|
|
name: etcd-jwt-token
|
|
readOnly: true
|
|
initContainers:
|
|
- command:
|
|
- /bin/bash
|
|
- -ec
|
|
- |
|
|
chown -R 1001:1001 /bitnami/etcd
|
|
image: docker.io/openebs/alpine-bash:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: volume-permissions
|
|
resources:
|
|
limits: {}
|
|
requests: {}
|
|
securityContext:
|
|
runAsUser: 0
|
|
volumeMounts:
|
|
- mountPath: /bitnami/etcd
|
|
name: data
|
|
securityContext:
|
|
fsGroup: 1001
|
|
serviceAccountName: default
|
|
volumes:
|
|
- name: etcd-jwt-token
|
|
secret:
|
|
defaultMode: 256
|
|
secretName: openebs-etcd-jwt-token
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
name: data
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 2Gi
|
|
storageClassName: mayastor-etcd-localpv
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
labels:
|
|
app: loki
|
|
chart: loki-2.16.0
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki
|
|
namespace: openebs
|
|
spec:
|
|
podManagementPolicy: OrderedReady
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: loki
|
|
release: openebs
|
|
serviceName: openebs-loki-headless
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: d754b334e2f0f83d14eaa66553982a27439f3f6a19d4625cb63ced56e32602c1
|
|
prometheus.io/port: http-metrics
|
|
prometheus.io/scrape: "true"
|
|
labels:
|
|
app: loki
|
|
name: openebs-loki
|
|
release: openebs
|
|
spec:
|
|
affinity: {}
|
|
containers:
|
|
- args:
|
|
- -config.file=/etc/loki/loki.yaml
|
|
env: null
|
|
image: grafana/loki:2.6.1
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http-metrics
|
|
initialDelaySeconds: 45
|
|
name: loki
|
|
ports:
|
|
- containerPort: 3100
|
|
name: http-metrics
|
|
protocol: TCP
|
|
- containerPort: 9095
|
|
name: grpc
|
|
protocol: TCP
|
|
- containerPort: 7946
|
|
name: memberlist-port
|
|
protocol: TCP
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http-metrics
|
|
initialDelaySeconds: 45
|
|
resources: {}
|
|
securityContext:
|
|
readOnlyRootFilesystem: true
|
|
volumeMounts:
|
|
- mountPath: /tmp
|
|
name: tmp
|
|
- mountPath: /etc/loki
|
|
name: config
|
|
- mountPath: /data
|
|
name: storage
|
|
subPath: null
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -ec
|
|
- chown -R 1001:1001 /data
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: volume-permissions
|
|
securityContext:
|
|
runAsUser: 0
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
volumeMounts:
|
|
- mountPath: /data
|
|
name: storage
|
|
nodeSelector: {}
|
|
securityContext:
|
|
fsGroup: 1001
|
|
runAsGroup: 1001
|
|
runAsNonRoot: false
|
|
runAsUser: 1001
|
|
serviceAccountName: openebs-loki
|
|
terminationGracePeriodSeconds: 4800
|
|
tolerations: []
|
|
volumes:
|
|
- emptyDir: {}
|
|
name: tmp
|
|
- name: config
|
|
secret:
|
|
secretName: openebs-loki
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
annotations: {}
|
|
labels: {}
|
|
name: storage
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
storageClassName: mayastor-loki-localpv
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: nats
|
|
app.kubernetes.io/version: 2.9.17
|
|
helm.sh/chart: nats-0.19.14
|
|
name: openebs-nats
|
|
namespace: openebs
|
|
spec:
|
|
podManagementPolicy: Parallel
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: nats
|
|
serviceName: openebs-nats
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: e4e59e32c0128fae11bf52af4b733c364d878e4619792f720850b606df60fbd2
|
|
prometheus.io/path: /metrics
|
|
prometheus.io/port: "7777"
|
|
prometheus.io/scrape: "true"
|
|
labels:
|
|
app: nats
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: nats
|
|
openebs.io/logging: "true"
|
|
spec:
|
|
containers:
|
|
- command:
|
|
- nats-server
|
|
- --config
|
|
- /etc/nats-config/nats.conf
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: SERVER_NAME
|
|
value: $(POD_NAME)
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: CLUSTER_ADVERTISE
|
|
value: $(POD_NAME).openebs-nats.$(POD_NAMESPACE)
|
|
image: nats:2.9.17-alpine
|
|
imagePullPolicy: IfNotPresent
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- nats-server
|
|
- -sl=ldm=/var/run/nats/nats.pid
|
|
livenessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /
|
|
port: 8222
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
successThreshold: 1
|
|
timeoutSeconds: 5
|
|
name: nats
|
|
ports:
|
|
- containerPort: 4222
|
|
name: client
|
|
- containerPort: 6222
|
|
name: cluster
|
|
- containerPort: 8222
|
|
name: monitor
|
|
readinessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /
|
|
port: 8222
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 5
|
|
resources: {}
|
|
startupProbe:
|
|
failureThreshold: 90
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8222
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 5
|
|
volumeMounts:
|
|
- mountPath: /etc/nats-config
|
|
name: config-volume
|
|
- mountPath: /var/run/nats
|
|
name: pid
|
|
- command:
|
|
- nats-server-config-reloader
|
|
- -pid
|
|
- /var/run/nats/nats.pid
|
|
- -config
|
|
- /etc/nats-config/nats.conf
|
|
image: natsio/nats-server-config-reloader:0.10.1
|
|
imagePullPolicy: IfNotPresent
|
|
name: reloader
|
|
resources: {}
|
|
volumeMounts:
|
|
- mountPath: /etc/nats-config
|
|
name: config-volume
|
|
- mountPath: /var/run/nats
|
|
name: pid
|
|
- args:
|
|
- -connz
|
|
- -routez
|
|
- -subz
|
|
- -varz
|
|
- -prefix=nats
|
|
- -use_internal_server_id
|
|
- -jsz=all
|
|
- http://localhost:8222/
|
|
image: natsio/prometheus-nats-exporter:0.11.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: metrics
|
|
ports:
|
|
- containerPort: 7777
|
|
name: metrics
|
|
resources: {}
|
|
dnsPolicy: ClusterFirst
|
|
serviceAccountName: openebs-nats
|
|
shareProcessNamespace: true
|
|
terminationGracePeriodSeconds: 60
|
|
volumes:
|
|
- configMap:
|
|
name: openebs-nats-config
|
|
name: config-volume
|
|
- emptyDir: {}
|
|
name: pid
|
|
volumeClaimTemplates: null
|
|
---
|
|
apiVersion: policy/v1
|
|
kind: PodDisruptionBudget
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: etcd
|
|
helm.sh/chart: etcd-8.6.0
|
|
name: openebs-etcd
|
|
namespace: openebs
|
|
spec:
|
|
minAvailable: 51%
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: etcd
|
|
---
|
|
apiVersion: policy/v1
|
|
kind: PodDisruptionBudget
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: nats
|
|
app.kubernetes.io/version: 2.9.17
|
|
helm.sh/chart: nats-0.19.14
|
|
name: openebs-nats
|
|
namespace: openebs
|
|
spec:
|
|
maxUnavailable: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: nats
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
labels:
|
|
app: agent-ha-node
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-agent-ha-node
|
|
namespace: openebs
|
|
spec:
|
|
minReadySeconds: 10
|
|
selector:
|
|
matchLabels:
|
|
app: agent-ha-node
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: agent-ha-node
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --node-name=$(MY_NODE_NAME)
|
|
- --csi-socket=/csi/csi.sock
|
|
- --grpc-ip=$(MY_POD_IP)
|
|
- --grpc-port=50053
|
|
- --cluster-agent=https://openebs-agent-core:50052
|
|
- --events-url=nats://openebs-nats:4222
|
|
- --ansi-colors=true
|
|
- --fmt-style=pretty
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: MY_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: MY_POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: RUST_BACKTRACE
|
|
value: "1"
|
|
image: docker.io/openebs/mayastor-agent-ha-node:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-ha-node
|
|
ports:
|
|
- containerPort: 50053
|
|
name: ha-node
|
|
protocol: TCP
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
securityContext:
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev
|
|
name: device
|
|
- mountPath: /sys
|
|
name: sys
|
|
- mountPath: /run/udev
|
|
name: run-udev
|
|
- mountPath: /csi
|
|
name: plugin-dir
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
hostNetwork: true
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-agent-core 50052; do date; echo
|
|
"Waiting for agent-cluster-grpc services..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-cluster-grpc-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
volumes:
|
|
- hostPath:
|
|
path: /dev
|
|
type: Directory
|
|
name: device
|
|
- hostPath:
|
|
path: /sys
|
|
type: Directory
|
|
name: sys
|
|
- hostPath:
|
|
path: /run/udev
|
|
type: Directory
|
|
name: run-udev
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins/io.openebs.mayastor/
|
|
type: DirectoryOrCreate
|
|
name: plugin-dir
|
|
updateStrategy:
|
|
rollingUpdate:
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
labels:
|
|
app: csi-node
|
|
openebs.io/csi-node: mayastor
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-csi-node
|
|
namespace: openebs
|
|
spec:
|
|
minReadySeconds: 10
|
|
selector:
|
|
matchLabels:
|
|
app: csi-node
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: csi-node
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --csi-socket=/csi/csi.sock
|
|
- --node-name=$(MY_NODE_NAME)
|
|
- --rest-endpoint=http://openebs-api-rest:8081
|
|
- --enable-rest
|
|
- --enable-registration
|
|
- --grpc-ip=$(MY_POD_IP)
|
|
- --grpc-port=10199
|
|
- --nvme-io-timeout=110s10s
|
|
- --nvme-core-io-timeout=110s10s
|
|
- --nvme-ctrl-loss-tmo=1980
|
|
- --nvme-nr-io-queues=2
|
|
- --nvme-connect-fallback=true
|
|
- --kubelet-path=/var/lib/kubelet
|
|
- --node-selector=openebs.io/csi-node=mayastor
|
|
- --fmt-style=pretty
|
|
- --ansi-colors=true
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: MY_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: MY_POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: RUST_BACKTRACE
|
|
value: "1"
|
|
image: docker.io/openebs/mayastor-csi-node:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-node
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
securityContext:
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev
|
|
name: device
|
|
- mountPath: /sys
|
|
name: sys
|
|
- mountPath: /run/udev
|
|
name: run-udev
|
|
- mountPath: /csi
|
|
name: plugin-dir
|
|
- mountPath: /var/lib/kubelet
|
|
mountPropagation: Bidirectional
|
|
name: kubelet-dir
|
|
- args:
|
|
- --csi-address=/csi/csi.sock
|
|
- --kubelet-registration-path=/var/lib/kubelet/plugins/io.openebs.mayastor/csi.sock
|
|
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: csi-driver-registrar
|
|
ports:
|
|
- containerPort: 10199
|
|
name: mayastor-node
|
|
protocol: TCP
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 50Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 50Mi
|
|
volumeMounts:
|
|
- mountPath: /csi
|
|
name: plugin-dir
|
|
- mountPath: /registration
|
|
name: registration-dir
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
hostNetwork: true
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until [ -d /sys/module/nvme_tcp ]; do [ -z "$WARNED"
|
|
] && echo "nvme_tcp module not loaded..."; WARNED=1; sleep 60; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: nvme-tcp-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
serviceAccountName: openebs-service-account
|
|
volumes:
|
|
- hostPath:
|
|
path: /dev
|
|
type: Directory
|
|
name: device
|
|
- hostPath:
|
|
path: /sys
|
|
type: Directory
|
|
name: sys
|
|
- hostPath:
|
|
path: /run/udev
|
|
type: Directory
|
|
name: run-udev
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins_registry/
|
|
type: Directory
|
|
name: registration-dir
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins/io.openebs.mayastor/
|
|
type: DirectoryOrCreate
|
|
name: plugin-dir
|
|
- hostPath:
|
|
path: /var/lib/kubelet
|
|
type: Directory
|
|
name: kubelet-dir
|
|
updateStrategy:
|
|
rollingUpdate:
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
labels:
|
|
app: io-engine
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
name: openebs-io-engine
|
|
namespace: openebs
|
|
spec:
|
|
minReadySeconds: 10
|
|
selector:
|
|
matchLabels:
|
|
app: io-engine
|
|
openebs.io/release: openebs
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: io-engine
|
|
openebs.io/logging: "true"
|
|
openebs.io/release: openebs
|
|
openebs.io/version: 2.8.0
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- --fmt-style=pretty
|
|
- --ansi-colors=true
|
|
env:
|
|
- name: MY_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: MY_POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
image: docker.io/openebs/mayastor-metrics-exporter-io-engine:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: metrics-exporter-io-engine
|
|
ports:
|
|
- containerPort: 9502
|
|
name: metrics
|
|
protocol: TCP
|
|
- args:
|
|
- --grpc-ip=$(MY_POD_IP)
|
|
- -N$(MY_NODE_NAME)
|
|
- -Rhttps://openebs-agent-core:50051
|
|
- -y/var/local/openebs/io-engine/config.yaml
|
|
- -l1,2
|
|
- -p=openebs-etcd:2379
|
|
- --ptpl-dir=/var/local/openebs/io-engine/ptpl/
|
|
- --api-versions=v1
|
|
- --tgt-crdt=30
|
|
- --events-url=nats://openebs-nats:4222
|
|
- --ps-retries=300
|
|
command:
|
|
- io-engine
|
|
env:
|
|
- name: RUST_LOG
|
|
value: info
|
|
- name: NVMF_TCP_MAX_QPAIRS_PER_CTRL
|
|
value: "32"
|
|
- name: NVMF_TCP_MAX_QUEUE_DEPTH
|
|
value: "32"
|
|
- name: NVME_TIMEOUT
|
|
value: 110s
|
|
- name: NVME_TIMEOUT_ADMIN
|
|
value: 30s
|
|
- name: NVME_KATO
|
|
value: 10s
|
|
- name: MY_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: MY_POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: NEXUS_NVMF_ANA_ENABLE
|
|
value: "1"
|
|
- name: NEXUS_NVMF_RESV_ENABLE
|
|
value: "1"
|
|
image: docker.io/openebs/mayastor-io-engine:v2.8.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: io-engine
|
|
ports:
|
|
- containerPort: 10124
|
|
name: io-engine
|
|
protocol: TCP
|
|
resources:
|
|
limits:
|
|
cpu: "2"
|
|
hugepages-2Mi: 2Gi
|
|
memory: 1Gi
|
|
requests:
|
|
cpu: "2"
|
|
hugepages-2Mi: 2Gi
|
|
memory: 1Gi
|
|
securityContext:
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev
|
|
name: device
|
|
- mountPath: /run/udev
|
|
name: udev
|
|
- mountPath: /dev/shm
|
|
name: dshm
|
|
- mountPath: /var/local/openebs/io-engine/
|
|
name: configlocation
|
|
- mountPath: /dev/hugepages
|
|
name: hugepage
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
hostNetwork: true
|
|
imagePullSecrets: null
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-agent-core 50051; do date; echo
|
|
"Waiting for agent-core-grpc services..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: agent-core-grpc-probe
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- trap "exit 1" TERM; until nc -vzw 5 openebs-etcd 2379; do date; echo "Waiting
|
|
for etcd..."; sleep 1; done;
|
|
image: docker.io/openebs/alpine-sh:4.1.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: etcd-probe
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
openebs.io/engine: mayastor
|
|
volumes:
|
|
- hostPath:
|
|
path: /dev
|
|
type: Directory
|
|
name: device
|
|
- hostPath:
|
|
path: /run/udev
|
|
type: Directory
|
|
name: udev
|
|
- emptyDir:
|
|
medium: Memory
|
|
sizeLimit: 1Gi
|
|
name: dshm
|
|
- emptyDir:
|
|
medium: HugePages
|
|
name: hugepage
|
|
- hostPath:
|
|
path: /var/local/openebs/io-engine/
|
|
type: DirectoryOrCreate
|
|
name: configlocation
|
|
updateStrategy:
|
|
type: OnDelete
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: promtail
|
|
app.kubernetes.io/version: 2.8.3
|
|
helm.sh/chart: promtail-6.13.1
|
|
name: openebs-promtail
|
|
namespace: openebs
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: promtail
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: e67cf0d4573abbc19bbd0798f5a6dfeaa0bb173cca295c7523f09b09ba9fb133
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/name: promtail
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- -config.file=/etc/promtail/promtail.yaml
|
|
env:
|
|
- name: HOSTNAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
image: docker.io/grafana/promtail:2.8.3
|
|
imagePullPolicy: IfNotPresent
|
|
name: promtail
|
|
ports:
|
|
- containerPort: 3101
|
|
name: http-metrics
|
|
protocol: TCP
|
|
readinessProbe:
|
|
failureThreshold: 5
|
|
httpGet:
|
|
path: /ready
|
|
port: http-metrics
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: true
|
|
volumeMounts:
|
|
- mountPath: /etc/promtail
|
|
name: config
|
|
- mountPath: /run/promtail
|
|
name: run
|
|
- mountPath: /var/lib/docker/containers
|
|
name: containers
|
|
readOnly: true
|
|
- mountPath: /var/log/pods
|
|
name: pods
|
|
readOnly: true
|
|
enableServiceLinks: true
|
|
securityContext:
|
|
runAsGroup: 0
|
|
runAsUser: 0
|
|
serviceAccountName: openebs-promtail
|
|
volumes:
|
|
- name: config
|
|
secret:
|
|
secretName: openebs-promtail
|
|
- hostPath:
|
|
path: /run/promtail
|
|
name: run
|
|
- hostPath:
|
|
path: /var/lib/docker/containers
|
|
name: containers
|
|
- hostPath:
|
|
path: /var/log/pods
|
|
name: pods
|
|
updateStrategy: {}
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: pre-upgrade
|
|
helm.sh/hook-delete-policy: hook-succeeded
|
|
helm.sh/hook-weight: "0"
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/version: 4.2.0
|
|
helm.sh/chart: openebs-4.2.0
|
|
name: openebs-pre-upgrade-hook
|
|
namespace: openebs
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: openebs
|
|
app.kubernetes.io/managed-by: Helm
|
|
helm.sh/chart: openebs-4.2.0
|
|
name: openebs-pre-upgrade-hook
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- (kubectl annotate --overwrite crd volumesnapshots.snapshot.storage.k8s.io
|
|
volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io
|
|
helm.sh/resource-policy=keep || true) && (kubectl -n openebs delete deploy
|
|
-l openebs.io/component-name=openebs-localpv-provisioner --ignore-not-found)
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
image: docker.io/openebs/kubectl:1.25.15
|
|
imagePullPolicy: IfNotPresent
|
|
name: pre-upgrade-job
|
|
restartPolicy: Never
|
|
serviceAccountName: openebs-pre-upgrade-hook
|
|
---
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: test-success
|
|
labels:
|
|
app: loki-stack
|
|
chart: loki-stack-2.9.11
|
|
heritage: Helm
|
|
release: openebs
|
|
name: openebs-loki-stack-test
|
|
namespace: openebs
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- /var/lib/loki/test.sh
|
|
env:
|
|
- name: LOKI_SERVICE
|
|
value: openebs-loki
|
|
- name: LOKI_PORT
|
|
value: "3100"
|
|
image: bats/bats:1.8.2
|
|
imagePullPolicy: ""
|
|
name: test
|
|
volumeMounts:
|
|
- mountPath: /var/lib/loki
|
|
name: tests
|
|
restartPolicy: Never
|
|
volumes:
|
|
- configMap:
|
|
name: openebs-loki-stack-test
|
|
name: tests
|
|
---
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
annotations:
|
|
helm.sh/hook: test
|
|
labels:
|
|
app: openebs-nats-test-request-reply
|
|
chart: nats-0.19.14
|
|
name: openebs-nats-test-request-reply
|
|
namespace: openebs
|
|
spec:
|
|
containers:
|
|
- command:
|
|
- /bin/sh
|
|
- -ec
|
|
- |
|
|
nats reply -s nats://$NATS_HOST:4222 'name.>' --command "echo 1" &
|
|
- |
|
|
"&&"
|
|
- |
|
|
name=$(nats request -s nats://$NATS_HOST:4222 name.test '' 2>/dev/null)
|
|
- |
|
|
"&&"
|
|
- |
|
|
[ $name = test ]
|
|
env:
|
|
- name: NATS_HOST
|
|
value: openebs-nats
|
|
image: natsio/nats-box:0.13.8
|
|
name: nats-box
|
|
restartPolicy: Never
|