디렉토리 구조 및 각 서비스 추가

This commit is contained in:
dsk-minchulahn
2024-01-03 17:29:11 +09:00
parent 98de2a7627
commit d601d0f259
1632 changed files with 207616 additions and 1 deletions

View File

@@ -0,0 +1,177 @@
##############################################
########### ############
########### LVMNode CRD ############
########### ############
##############################################
# LVMNode CRD is autogenerated via `make manifests` command.
# Do the modification in the code and run the `make manifests` command
# to generate the CRD definition
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.0
creationTimestamp: null
name: lvmnodes.local.openebs.io
spec:
group: local.openebs.io
names:
kind: LVMNode
listKind: LVMNodeList
plural: lvmnodes
shortNames:
- lvmnode
singular: lvmnode
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: LVMNode records information about all lvm volume groups available
in a node. In general, the openebs node-agent creates the LVMNode object
& periodically synchronizing the volume groups available in the node. LVMNode
has an owner reference pointing to the corresponding node object.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
volumeGroups:
items:
description: VolumeGroup specifies attributes of a given vg exists on
node.
properties:
allocationPolicy:
description: 'AllocationPolicy indicates the volume group allocation
policy. AllocationPolicy has the following mapping between int
and string for its value: [-1: "", 0: "normal", 1: "contiguous",
2: "cling", 3: "anywhere", 4: "inherited"]'
type: integer
free:
anyOf:
- type: integer
- type: string
description: Free specifies the available capacity of volume group.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
lvCount:
description: LVCount denotes total number of logical volumes in
volume group.
format: int32
minimum: 0
type: integer
maxLv:
description: MaxLV denotes maximum number of logical volumes allowed
in volume group or 0 if unlimited.
format: int32
type: integer
maxPv:
description: MaxPV denotes maximum number of physical volumes allowed
in volume group or 0 if unlimited.
format: int32
type: integer
metadataCount:
description: MetadataCount denotes number of metadata areas on the
volume group.
format: int32
type: integer
metadataFree:
anyOf:
- type: integer
- type: string
description: MetadataFree specifies the available metadata area
space for the volume group
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
metadataSize:
anyOf:
- type: integer
- type: string
description: MetadataSize specifies size of smallest metadata area
for the volume group
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
metadataUsedCount:
description: MetadataUsedCount denotes number of used metadata areas
in volume group
format: int32
type: integer
missingPvCount:
description: MissingPVCount denotes number of physical volumes in
volume group which are missing.
format: int32
type: integer
name:
description: Name of the lvm volume group.
minLength: 1
type: string
permissions:
description: 'Permission indicates the volume group permission which
can be writable or read-only. Permission has the following mapping
between int and string for its value: [-1: "", 0: "writeable",
1: "read-only"]'
type: integer
pvCount:
description: PVCount denotes total number of physical volumes constituting
the volume group.
format: int32
minimum: 0
type: integer
size:
anyOf:
- type: integer
- type: string
description: Size specifies the total size of volume group.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
snapCount:
description: SnapCount denotes number of snapshots in volume group.
format: int32
type: integer
uuid:
description: UUID denotes a unique identity of a lvm volume group.
minLength: 1
type: string
required:
- allocationPolicy
- free
- lvCount
- maxLv
- maxPv
- metadataCount
- metadataFree
- metadataSize
- metadataUsedCount
- missingPvCount
- name
- permissions
- pvCount
- size
- snapCount
- uuid
type: object
type: array
required:
- volumeGroups
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,85 @@
##############################################
########### ############
########### LVMSnapshot CRD ############
########### ############
##############################################
# LVMSnapshot CRD is autogenerated via `make manifests` command.
# Do the modification in the code and run the `make manifests` command
# to generate the CRD definition
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.0
creationTimestamp: null
name: lvmsnapshots.local.openebs.io
spec:
group: local.openebs.io
names:
kind: LVMSnapshot
listKind: LVMSnapshotList
plural: lvmsnapshots
singular: lvmsnapshot
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: LVMSnapshot represents an LVM Snapshot of the lvm volume
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: LVMSnapshotSpec defines LVMSnapshot spec
properties:
ownerNodeID:
description: OwnerNodeID is the Node ID where the volume group is
present which is where the snapshot has been provisioned. OwnerNodeID
can not be edited after the snapshot has been provisioned.
minLength: 1
type: string
snapSize:
description: SnapSize specifies the space reserved for the snapshot
type: string
volGroup:
description: VolGroup specifies the name of the volume group where
the snapshot has been created.
type: string
required:
- ownerNodeID
- volGroup
type: object
status:
description: SnapStatus string that reflects if the snapshot was created
successfully
properties:
state:
type: string
type: object
required:
- spec
- status
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,153 @@
##############################################
########### ############
########### LVMVolume CRD ############
########### ############
##############################################
# LVMVolume CRD is autogenerated via `make manifests` command.
# Do the modification in the code and run the `make manifests` command
# to generate the CRD definition
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.0
creationTimestamp: null
name: lvmvolumes.local.openebs.io
spec:
group: local.openebs.io
names:
kind: LVMVolume
listKind: LVMVolumeList
plural: lvmvolumes
shortNames:
- lvmvol
singular: lvmvolume
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: volume group where the volume is created
jsonPath: .spec.volGroup
name: VolGroup
type: string
- description: Node where the volume is created
jsonPath: .spec.ownerNodeID
name: Node
type: string
- description: Size of the volume
jsonPath: .spec.capacity
name: Size
type: string
- description: Status of the volume
jsonPath: .status.state
name: Status
type: string
- description: Age of the volume
jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: LVMVolume represents a LVM based volume
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VolumeInfo defines LVM info
properties:
capacity:
description: Capacity of the volume
minLength: 1
type: string
ownerNodeID:
description: OwnerNodeID is the Node ID where the volume group is
present which is where the volume has been provisioned. OwnerNodeID
can not be edited after the volume has been provisioned.
minLength: 1
type: string
shared:
description: Shared specifies whether the volume can be shared among
multiple pods. If it is not set to "yes", then the LVM LocalPV Driver
will not allow the volumes to be mounted by more than one pods.
enum:
- "yes"
- "no"
type: string
thinProvision:
description: ThinProvision specifies whether logical volumes can be
thinly provisioned. If it is set to "yes", then the LVM LocalPV
Driver will create thinProvision i.e. logical volumes that are larger
than the available extents.
enum:
- "yes"
- "no"
type: string
vgPattern:
description: VgPattern specifies the regex to choose volume groups
where volume needs to be created.
type: string
volGroup:
description: VolGroup specifies the name of the volume group where
the volume has been created.
type: string
required:
- capacity
- ownerNodeID
- vgPattern
- volGroup
type: object
status:
description: VolStatus string that specifies the current state of the
volume provisioning request.
properties:
error:
description: Error denotes the error occurred during provisioning/expanding
a volume. Error field should only be set when State becomes Failed.
properties:
code:
description: VolumeErrorCode represents the error code to represent
specific class of errors.
type: string
message:
type: string
type: object
state:
description: State specifies the current state of the volume provisioning
request. The state "Pending" means that the volume creation request
has not processed yet. The state "Ready" means that the volume has
been created and it is ready for the use. "Failed" means that volume
provisioning has been failed and will not be retried by node agent
controller.
enum:
- Pending
- Ready
- Failed
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []