Skip to content

Commit 8a596ad

Browse files
authored
Add usage doc for VolumeSnapshot (#103)
* add usage doc for `volumeSnapshot` * address ai review comment
1 parent 52b1773 commit 8a596ad

3 files changed

Lines changed: 37 additions & 8 deletions

File tree

docs/iaas/kubernetes/cloud-controller-manager.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ explanation on how APIs are implemented in IronCore cloud-provider.
4747
### Ensure LoadBalancer
4848

4949
- `EnsureLoadBalancer` gets the LoadBalancer name based on service name.
50-
- Checks if IronCore `LoadBalancer` object already exists. If not it gets the `port` and `protocol`, `ipFamily` information from the service and creates a new LoadBalancer object in the Ironcore.
50+
- Checks if IronCore `LoadBalancer` object already exists. If not it gets the `port` and `protocol`, `ipFamily` information from the service and creates a new LoadBalancer object in the IronCore.
5151
- Newly created LoadBalancer will be associated with Network reference provided in cloud configuration.
52-
- Then `LoadBalancerRouting` object is created with the destination IP information retrieved from the nodes (Note: `LoadBalancerRouting` is internal object to Ironcore). Later, this information is used at the Ironcore API level to describe the explicit targets in a pool traffic is routed to.
53-
- Ironcore supports two types of LoadBalancer `Public` and `Internal`. If LoadBalancer has to be of type Internal, "service.beta.kubernetes.io/ironcore-load-balancer-internal" annotation needs to be set to true, otherwise it will be considered as public type.
52+
- Then `LoadBalancerRouting` object is created with the destination IP information retrieved from the nodes (Note: `LoadBalancerRouting` is internal object to IronCore). Later, this information is used at the IronCore API level to describe the explicit targets in a pool traffic is routed to.
53+
- IronCore supports two types of LoadBalancer `Public` and `Internal`. If LoadBalancer has to be of type Internal, "service.beta.kubernetes.io/ironcore-load-balancer-internal" annotation needs to be set to true, otherwise it will be considered as public type.
5454

5555
### Update LoadBalancer
5656

docs/iaas/usage-guides/networking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The format of a network providerID is as follows:
3939
- The `binding` phase of a `spec.peerings` item is reflected in a corresponding `status.peerings` item with the same name. The phase can either be `Pending`, meaning there is no active peering or `Bound` meaning the peering as described in the `spec.peerings` item is in place.
4040

4141

42-
After successful reconciliation, the Ironcore `Network` resource gets updated with `providerID`, `incomingpeerings` and `status`.
42+
After successful reconciliation, the IronCore `Network` resource gets updated with `providerID`, `incomingpeerings` and `status`.
4343

4444
```yaml
4545
apiVersion: networking.ironcore.dev/v1alpha1

docs/iaas/usage-guides/storage.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Storage Resources
2-
IronCore storage resources are `Volumes`, their associated `Volumeclasses` and `VolumePools` that allow you to define, provision, and manage Block devices in the Ironcore infrastructure. This guide explains the core storage resource types and how to use them.
2+
IronCore storage resources are
3+
- `Volumes`, their associated `Volumeclasses` and `VolumePools` that allow you to define, provision, and manage Block devices in the IronCore infrastructure.
4+
5+
- `Buckets`, their associated `Bucketclasses` and `BucketPools`, that allow you to define, provision, and manage the object storage such as files or data blobs.
6+
7+
- `VolumeSnapshots`, that allow users to take a point-in-time snapshot of an IronCore `Volume` content. It can be used to restore the data in case of data loss or to migrate the data to a different cluster or storage system. Also an IronCore `Volume` can be provisioned by referencing a `VolumeSnapshot`.
8+
9+
This guide explains the core storage resource types and how to use them.
310

411
## Volume
512

@@ -59,7 +66,7 @@ capabilities:
5966

6067
## VolumePool
6168

62-
A `VolumePool` is a resource in `Ironcore` that represents a pool of storage volume managed collectively. It defines
69+
A `VolumePool` is a resource in IronCore that represents a pool of storage volume managed collectively. It defines
6370
the infrastructure's storage configuration used to provision and manage volumes, ensuring resource availability and
6471
compatibility with associated `VolumeClasses`.
6572

@@ -119,7 +126,7 @@ spec:
119126

120127
A `BucketClass` is a concept used to define and manage different types of storage buckets, typically based on resource
121128
capabilities. It is conceptually similar to Kubernetes `StorageClass`, enabling users to specify the desired properties
122-
for an Ironcore `Bucket` resource creation.
129+
for an IronCore `Bucket` resource creation.
123130

124131
### Example BucketClass Resource
125132

@@ -149,7 +156,7 @@ capabilities:
149156

150157
## BucketPool
151158

152-
A `BucketPool` is a resource in `Ironcore` that represents a pool of storage buckets managed collectively. It defines
159+
A `BucketPool` is a resource in IronCore that represents a pool of storage buckets managed collectively. It defines
153160
the infrastructure's storage configuration used to provision and manage buckets, ensuring resource availability and
154161
compatibility with associated `BucketClasses`.
155162

@@ -169,3 +176,25 @@ spec:
169176
### Key Fields:
170177

171178
- `ProviderID` (`string`): The `providerId` helps the controller identify and communicate with the correct storage system within the specific backened storage provider.
179+
180+
## VolumeSnapshot
181+
182+
The IronCore `VolumeSnapshot` resource allows users to take point-in-time snapshots of the content of a `Volume` without creating an entirely new volume. This functionality allows users to take backup before performing any modifications on data.
183+
184+
### Example VolumeSnapshot Resource
185+
186+
An example of how to define a `VolumeSnapshot` resource in IronCore:
187+
188+
```yaml
189+
apiVersion: storage.ironcore.dev/v1alpha1
190+
kind: VolumeSnapshot
191+
metadata:
192+
name: volumesnapshot-sample
193+
spec:
194+
volumeRef:
195+
name: volume-sample
196+
```
197+
198+
### Key Fields:
199+
200+
- `volumeRef` (`string`): `volumeRef` refers to the name of an IronCore `volume` to create a volumeSnapshot.

0 commit comments

Comments
 (0)