Skip to content

Commit c44a38b

Browse files
committed
address review comments and refactoring
1 parent 10d2869 commit c44a38b

File tree

7 files changed

+69
-59
lines changed

7 files changed

+69
-59
lines changed

docs/usage/installation.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Installing IronCore
1+
# Installing Ironcore
22

33
## Requirements
44

55
* `go` >= 1.20
6-
* `git`, `make` and `kubectl`
6+
* `git`, `make`, and `kubectl`
77
* [Kustomize](https://kustomize.io/)
88
* Access to a Kubernetes cluster ([Minikube](https://minikube.sigs.k8s.io/docs/), [kind](https://kind.sigs.k8s.io/) or a real cluster)
99

1010
## Clone the Repository
1111

12-
To bring up and install the `ironcore` project, you first need to clone the repository.
12+
To bring up and install the `Ironcore` project, you first need to clone the repository.
1313

14-
```shell
14+
``` shell
1515
git clone git@github.com:ironcore-dev/ironcore.git
1616
cd ironcore
1717
```
@@ -20,41 +20,41 @@ cd ironcore
2020

2121
If there is no [cert-manager](https://cert-manager.io/docs/) present in the cluster it needs to be installed.
2222

23-
```shell
23+
``` shell
2424
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.2/cert-manager.yaml
2525
```
2626

2727
## Install APIs into the Cluster
2828

29-
Your Kubernetes API server needs to know about the APIs which come with the `ironcore` project. To install the APIs into your cluster, run
29+
Your Kubernetes API server needs to know about the APIs that come with the `Ironcore` project. To install the APIs into your cluster, run
3030

31-
```shell
31+
``` shell
3232
make install
3333
```
3434

35-
**Note**: This requires the `APISERVER_IMG` (Makefile default set to `apiserver`) to be pullable from your kubernetes
36-
cluster. For local development with `kind`, a make target that builds and loads the api server image and then applies
35+
**Note**: This requires the `APISERVER_IMG` (Makefile default set to `apiserver`) to be pullable from your Kubernetes
36+
cluster. For local development with `kind`, a make target that builds and loads the API server image and then applies
3737
the manifests is available via
3838

39-
```shell
39+
``` shell
4040
make kind-install
4141
```
4242

43-
**Note**: In case that there are multiple environments running, ensure that `kind get clusters` is pointing to the
43+
**Note**: In case multiple environments running, ensure that `kind get clusters` is pointing to the
4444
default kind cluster.
4545

4646
## Deploy the Controller Manager
4747

48-
The controller manager can be started via the following command
48+
The controller manager can be started via the following command.
4949

50-
```shell
50+
``` shell
5151
make kind-deploy
5252
```
53-
## validate
53+
## Validate
5454

55-
Make sure you have all the below pods running
55+
Make sure you have all the below pods running.
5656

57-
```shell
57+
``` shell
5858
$ kubectl get po -n ironcore-system
5959
NAME READY STATUS RESTARTS AGE
6060
ironcore-apiserver-85995846f9-47247 1/1 Running 0 136m
@@ -67,14 +67,14 @@ ironcore-etcd-0 1/1 Running 0
6767
The `config/samples` folder contains samples for all APIs supported by this project. You can apply any of the samples by
6868
running
6969

70-
```shell
70+
``` shell
7171
kubectl apply -f config/samples/SOME_RESOURCE.yaml
7272
```
7373

7474
## Cleanup
7575

76-
To remove the APIs from your cluster, simply run
76+
To remove the APIs from your cluster, simply run.
7777

78-
```shell
78+
``` shell
7979
make uninstall
8080
```

docs/usage/storage/bucket.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Bucket
2-
A `bucket` in `ironcore` refers to a storage resource that organizes and manages data, similar to the concept of buckets in cloud storage services like Amazon S3. Buckets serve as containers for storing objects, such as files or data blobs, and is crucial for managing storage workloads.
2+
A `Bucket` in `Ironcore` refers to a storage resource that organizes and manages data, similar to the concept of buckets in cloud storage services like Amazon S3. Buckets are containers for storing objects, such as files or data blobs, and are crucial for managing storage workloads.
33

44
# Example Bucket Resource
5-
An example of how to define a `bucket` resource in `ironcore`
5+
An example of how to define a `Bucket` resource in `Ironcore`
6+
67
```
78
apiVersion: storage.ironcore.dev/v1alpha1
89
kind: Bucket
@@ -11,35 +12,35 @@ metadata:
1112
spec:
1213
bucketClassRef:
1314
name: bucketclass-sample
14-
# bucketPoolRef:
15-
# name: bucketpool-sample
15+
# bucketPoolRef:
16+
# name: bucketpool-sample
1617
```
1718

1819
# Key Fields:
1920
- `bucketClassRef`(`string`):
20-
- Mandatory field
21-
- `BucketClassRef` is the BucketClass of a bucket
21+
- Mandatory field
22+
- `BucketClassRef` is the BucketClass of a bucket
2223

2324
- `bucketPoolRef`(`string`):
24-
- Optional field
25-
- `bucketPoolRef` indicates which BucketPool to use for the bucket, if not specified the controller itself picks the available bucketPool
25+
- Optional field
26+
-  `bucketPoolRef` indicates which BucketPool to use for the bucket, if not specified the controller itself picks the available bucketPool
2627

2728

2829
# Usage
29-
- **Data Storage**: Use buckets to store and organize data blobs, files, or any object-based data.
30+
- **Data Storage**: Use `Buckets` to store and organize data blobs, files, or any object-based data.
3031

3132
- **Multi-Tenant Workloads**: Leverage buckets for isolated and secure data storage in multi-tenant environments by using separate BucketClass or BucketPool references.
3233

33-
- **Secure Access**: Buckets store access credentials securely in their status. Applications can retrieve access details via Kubernetes secrets.
34+
- **Secure Access**: Buckets store a reference to the `Secret` securely in their status, and the `Secret` has the access credentials, which applications can retrieve access details from the `Secret`.
3435

3536
# Reconciliation Process:
3637
- The controller detects changes and fetches bucket details.
3738

3839
- Creation/Update ensures the backend bucket exists, metadata is synced, and credentials are updated.
3940

40-
- The bucket will automatically sync with the backend storage system, Updates Bucket's state (e.g., `Available`, `Pending`, or `Error`) in the bucket's status.
41+
- The bucket will automatically sync with the backend storage system, and update the Bucket's state (e.g., `Available`, `Pending`, or `Error`) in the bucket's status.
4142

42-
- Access details and credentials will be managed securely and updated in the bucket status.
43+
- Access details and credentials will be managed securely using Kubernetes `Secret` and the bucket status will track a reference to the `Secret`.
4344

4445
- During deletion, resources will be cleaned up gracefully without manual intervention.
4546

docs/usage/storage/bucketclass.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# BucketClass
2-
A BucketClass is a concept used to define and manage different types of storage buckets, typically based on resource capabilities
2+
A `BucketClass` is a concept used to define and manage different types of storage buckets, typically based on resource capabilities. It is conceptually similar to Kubernetes `StorageClass`, enabling users to specify the desired properties for an Ironcore `Bucket` resource creation.
33

44
# Example BucketClass Resource
5-
An example of how to define a bucketClass resource
5+
An example of how to define a `BucketClass` resource in `Ironcore`
66

77
```
88
apiVersion: storage.ironcore.dev/v1alpha1
@@ -15,21 +15,25 @@ capabilities:
1515
```
1616

1717
# Key Fields:
18-
- capabilities: Capabilities has `tps` and `iops` fields which need to specified, it's a mandatory field,
19-
- tps(`string`): The `tps` represents trasactions per second
2018

21-
- iops(`string`): `iops` is the number of input/output operations a storage device can complete per second.
19+
- `capabilities`: Capabilities has `tps` and `iops` fields which need to be specified, it's a mandatory field,
20+
- `tps`(`string`): The `tps` represents transactions per second.
21+
22+
- `iops`(`string`): `iops` is the number of input/output operations a storage device can complete per second.
2223

2324
# Usage
24-
- **BucketClass Definition**: Create a BucketClass to set storage properties based on resource capibilities
25-
- **Associate with buckets**: Link a BucketClass to a Bucket using a reference in the Bucket resource.
26-
- **Dynamic configuration**: Update the BucketClass to modify storage properties for all its Buckets.
25+
26+
- **BucketClass Definition**: Create a `BucketClass` to set storage properties based on resource capabilities.
27+
28+
- **Associate with buckets**: Link a `BucketClass` to a `Bucket` using a reference in the Bucket resource.
29+
30+
- **Dynamic configuration**: Update the `BucketClass` to modify storage properties for all its Buckets.
2731

2832
# Reconciliation Process:
2933

30-
- **Fetches & Validates**: Retrieves the BucketClass from the cluster and checks if it exists.
34+
- **Fetches & Validates**: Retrieves the `BucketClass` from the cluster and checks if it exists.
3135

32-
- **Synchronizes State**: Keeps the BucketClass resource updated with its current state and dependencies.
36+
- **Synchronizes State**: Keeps the `BucketClass` resource updated with its current state and dependencies.
3337

3438
- **Monitors Dependencies**: Watches for changes in dependent Bucket resources and reacts accordingly.
3539

docs/usage/storage/bucketpool.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# BucketPool
2-
A `BucketPool` is a resource in `IronCore` that represents a pool of storage buckets managed collectively. It defines the infrastructure's storage configuration used to provision and manage buckets, ensuring resource availability and compatibility with associated `BucketClasses`.
2+
A `BucketPool` is a resource in `Ironcore` that represents a pool of storage buckets managed collectively. It defines the infrastructure's storage configuration used to provision and manage buckets, ensuring resource availability and compatibility with associated BucketClasses.
33

44
# Example BucketPool Resource
5+
An example of how to define a `BucketPool` resource in `Ironcore`
56

67
```
78
apiVersion: storage.ironcore.dev/v1alpha1

docs/usage/storage/volume.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Volume
2-
The `IronCore` `Volume` is a storage abstraction provided by the `IronCore Runtime Interface` `(IRI)` service, designed to integrate with external storage backend for managing persistent storage. It acts as a managed storage unit, ensuring consistency, scalability, and compatibility with Kubernetes workloads.
3-
By integrating IronCore Volumes with Kubernetes, users benefit from seamless storage management, automation, and advanced features such as encryption and scalability, making it suitable for modern cloud-native and hybrid applications.
2+
The `Ironcore` `Volume` is a storage abstraction provided by the `Ironcore Runtime Interface` `(IRI)` service, designed to integrate with external storage backend for managing persistent storage. It acts as a managed storage unit, ensuring consistency, scalability, and compatibility with Kubernetes workloads.
3+
By integrating Ironcore Volumes with Kubernetes, users benefit from seamless storage management, automation, and advanced features such as encryption and scalability, making it suitable for modern cloud-native and hybrid applications.
44

55
# Example Volume Resource
6-
An example of how to define a `volume` resource in `ironcore`
6+
An example of how to define a `Volume` resource in `Ironcore`
77

88
```
99
apiVersion: storage.ironcore.dev/v1alpha1
@@ -21,11 +21,11 @@ spec:
2121

2222
# Key Fields:
2323

24-
- `volumeClassRef`(`string`): `volumeClassRef` refers to the name of an ironcore `volumeclass`( for eg: `slow`, `fast`, `super-fast` etc.) to create a volume,
24+
- `volumeClassRef`(`string`): `volumeClassRef` refers to the name of an Ironcore `volumeClass`( for eg: `slow`, `fast`, `super-fast` etc.) to create a volume,
2525

2626
- `volumePoolRef` (`string`): `VolumePoolRef` indicates which VolumePool to use for a volume. If unset, the scheduler will figure out a suitable `VolumePoolRef`.
2727

28-
- `resources`: Resources is a description of the volume's resources and capacity.
28+
- `resources`: `Resources` is a description of the volume's resources and capacity.
2929

3030
# Reconciliation Process:
3131

@@ -36,7 +36,7 @@ spec:
3636
- **Check IRI Volumes**: List and identify `IRI` volumes linked to the `Volume` resource.
3737

3838
- **Create or Update Volume**:
39-
- Create a new IRI volume if none exist.
39+
- Create a new IRI volume if none exists.
4040
- Update existing IRI volumes if attributes like size or encryption need adjustments.
4141

4242
- **Sync Status**: Reflect the IRI volume's state (e.g., Pending, Available) in the Kubernetes Volume resource's status.

docs/usage/storage/volumeclass.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# VolumeClass
2-
The `VolumeClass` in `IronCore` is a Kubernetes-like abstraction that defines a set of parameters or configurations for provisioning storage resources through the `IronCore Runtime Interface (IRI)`. It is conceptually similar to Kubernetes `StorageClass`, enabling users to specify the desired properties for an IronCore `Volume` resource creation.
2+
The `VolumeClass` in `Ironcore` is a Kubernetes-like abstraction that defines a set of parameters or configurations for provisioning storage resources through the `Ironcore Runtime Interface (IRI)`. It is conceptually similar to Kubernetes `StorageClass`, enabling users to specify the desired properties for an Ironcore `Volume` resource creation.
33

44
# Example VolumeClass Resource
5-
An example of how to define a volumeClass resource
5+
An example of how to define a `VolumeClass` resource in `Ironcore`
66

77
```
88
apiVersion: storage.ironcore.dev/v1alpha1
@@ -15,15 +15,18 @@ capabilities:
1515
```
1616

1717
# Key Fields:
18-
- capabilities: Capabilities has tps and iops fields which need to specified, it's a mandatory field,
19-
- tps(`string`): The `tps` represents trasactions per second
18+
- `capabilities`: Capabilities has tps and iops fields that need to be specified, it's a mandatory field,
19+
- `tps`(`string`): The `tps` represents transactions per second.
2020

21-
- iops(`string`): `iops` is the number of input/output operations a storage device can complete per second.
21+
- `iops`(`string`): `iops` is the number of input/output operations a storage device can complete per second.
2222

2323
# Usage
24-
- **VolumeClass Definition**: Create a volumeClass to set storage properties based on resource capibilities
25-
- **Associate with Volume**: Link a volumeClass to a Volume using a reference in the Volume resource.
26-
- **Dynamic configuration**: Update the volumeClass to modify storage properties for all its Volumes.
24+
25+
- **VolumeClass Definition**: Create a `VolumeClass` to set storage properties based on resource capabilities.
26+
27+
- **Associate with Volume**: Link a `VolumeClass` to a `Volume` using a reference in the Volume resource.
28+
29+
- **Dynamic configuration**: Update the `VolumeClass` to modify storage properties for all its Volumes.
2730

2831
# Reconciliation Process:
2932

docs/usage/storage/volumepool.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# VolumePool
2-
A `VolumePool` is a resource in `IronCore` that represents a pool of storage volume managed collectively. It defines the infrastructure's storage configuration used to provision and manage volumes, ensuring resource availability and compatibility with associated `VolumeClasses`.
2+
A `VolumePool` is a resource in `Ironcore` that represents a pool of storage volume managed collectively. It defines the infrastructure's storage configuration used to provision and manage volumes, ensuring resource availability and compatibility with associated `VolumeClasses`.
33

4-
# Example Volume Resource
4+
# Example VolumePool Resource
5+
An example of how to define a `VolumePool` resource in `Ironcore`
56

67
```
78
apiVersion: storage.ironcore.dev/v1alpha1
@@ -18,7 +19,7 @@ spec:
1819
```
1920

2021
# Key Fields:
21-
- `ProviderID`(`string`): The `providerId` helps the controller identify and communicate with the correct storage system within the specific backened storage porvider.
22+
- `providerID`(`string`): The `providerId` helps the controller identify and communicate with the correct storage system within the specific backened storage porvider.
2223

2324
for example `ironcore://shared`
2425

0 commit comments

Comments
 (0)