You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+51-49Lines changed: 51 additions & 49 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,23 +4,23 @@
4
4
<divid="top"></div>
5
5
6
6
# NooBaa
7
-
- NooBaa is an object data service for hybrid and multi cloud environments.
8
-
- NooBaa can be run on kubernetes (k8s).\
9
-
`*` we have more ways to deploy NooBaa, based on the needs, please refer to [noobaa-core](https://github.com/noobaa/noobaa-core/) repository for more information).
7
+
- NooBaa is an object data service for hybrid and multi cloud environments
8
+
- NooBaa can be run on Kubernetes (k8s)
9
+
`*` we have more ways to deploy NooBaa, based on the needs, please refer to [noobaa-core](https://github.com/noobaa/noobaa-core/) repository for more information)
10
10
- NooBaa is a highly customizable and dynamic data gateway for objects, providing data services such as caching, tiering, mirroring, dedup, encryption, compression, over any storage resource including: Amazon (S3), Google (GCS), Azure (Blob), IBM (COS), other S3-compatble, Filesystems (NSFS), PV-pool etc.
11
-
- NooBaa provides an S3 object store service (and Lambda with bucket triggers) to clients both inside and outside the cluster, and uses storage resources from within or outside the cluster, with flexible placement policies to automate data use cases.
12
-
- NooBaa goal is to simplify data flows for system administrators by connecting to any of the storage silos from private or public clouds, and providing a single scalable data services, using the same S3 API and management tools. NooBaa allows full control over data placement with dynamic policies per bucket or account.
11
+
- NooBaa provides an S3 object store service (and Lambda with bucket triggers) to clients both inside and outside the cluster, and uses storage resources from within or outside the cluster, with flexible placement policies to automate data use cases
12
+
- NooBaa goal is to simplify data flows for system administrators by connecting to any of the storage silos from private or public clouds, and providing a single scalable data services, using the same S3 API and management tools. NooBaa allows full control over data placement with dynamic policies per bucket or account
13
13
14
14
# NooBaa Operator
15
-
NooBaa operator (the Operator) watches for NooBaa changes and reconciles them to apply the desired state.
16
-
- The NooBaa operator is following the [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) - you can find extensive documentation in the Kubernetes docs.
17
-
- Operators are software extensions to Kubernetes that make use of custom resources ([CRs](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)) to manage applications and their components.
18
-
- NooBaa operator is a [controller](https://kubernetes.io/docs/concepts/architecture/controller/). In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the **current state** of the cluster closer to the **desired state**.
15
+
NooBaa operator (the Operator) watches for NooBaa changes and reconciles them to apply the desired state
16
+
- The NooBaa operator is following the [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) - you can find extensive documentation in the Kubernetes docs
17
+
- Operators are software extensions to Kubernetes that make use of custom resources ([CRs](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)) to manage applications and their components
18
+
- NooBaa operator is a [controller](https://kubernetes.io/docs/concepts/architecture/controller/). In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the **current state** of the cluster closer to the **desired state**
19
19
20
20
#### Reconcile loops
21
21
System Reconciler example - the system reconciliation is divided to the following phases:
22
-
1.[Verifying](pkg/system/phase1_verifying.go) - checks the validity of the CR (noobaa image, address, etc.).
23
-
2.[Creating](pkg/system/phase2_creating.go) - creates the needed resources (secrets, services, etc.).
22
+
1.[Verifying](pkg/system/phase1_verifying.go) - checks the validity of the CR (noobaa image, address, etc.)
23
+
2.[Creating](pkg/system/phase2_creating.go) - creates the needed resources (secrets, services, etc.)
24
24
3.[Connecting](pkg/system/phase3_connecting.go) - populate the statuses of mgmt and s3 services, initialize client for making calls to the server, etc.
25
25
4.[Configuring](pkg/system/phase4_configuring.go) - creates default backingstore, default bucketclass, etc.
26
26
@@ -66,13 +66,13 @@ noobaa status
66
66
67
67
### Usage
68
68
#### NooBaa CLI
69
-
The CLI helps with most management tasks and focuses on ease of use for manual operations or scripts.
69
+
The CLI helps with most management tasks and focuses on ease of use for manual operations or scripts
70
70
71
71
Notes:
72
72
- Help: `noobaa --help`\
73
-
use `noobaa <command> --help` for more information about any command.
74
-
- kubeconfig - same as kubectl - the CLI operates on the current context from kubeconfig which can be changed with `export KUBECONFIG=/path/to/custom/kubeconfig` or use the `--kubeconfig` and `--namespace` flags.
75
-
- local clusters (minikube, rancher desktop): use `noobaa install --mini` or `--dev` to allocate less resources.
73
+
use `noobaa <command> --help` for more information about any command
74
+
- kubeconfig - same as kubectl - the CLI operates on the current context from kubeconfig which can be changed with `export KUBECONFIG=/path/to/custom/kubeconfig` or use the `--kubeconfig` and `--namespace` flags
75
+
- local clusters (minikube, rancher desktop): use `noobaa install --mini` or `--dev` to allocate less resources
76
76
- Uninstalling: `noobaa uninstall`
77
77
78
78
**Examples:**\
@@ -124,12 +124,12 @@ Other Commands:
124
124
options Print the list of global flags
125
125
version Show version
126
126
127
-
Use "noobaa <command> --help" for more information about a given command.
127
+
Use "noobaa <command> --help" for more information about a given command
128
128
```
129
129
(taken from branch 5.16)
130
130
131
131
**2) Option menu**
132
-
In case you would like to add flags that are not specific for a certain command.
132
+
In case you would like to add flags that are not specific for a certain command
133
133
134
134
```bash
135
135
$ noobaa options
@@ -150,7 +150,7 @@ The following options can be passed to any command:
150
150
--dev=false: Set sufficient resources for dev env
151
151
--disable-load-balancer=false: Set the service type to ClusterIP instead of LoadBalancer
152
152
--image-pull-secret='': Image pull secret (must be in same namespace)
153
-
--kubeconfig='': Paths to a kubeconfig. Only required if out-of-cluster.
153
+
--kubeconfig='': Paths to a kubeconfig. Only required if out-of-cluster
154
154
--manual-default-backingstore=false: allow to delete the default backingstore
155
155
--mini=false: Signal the operator that it is running in a low resource environment
- or specify which storage class to use with `noobaa install --db-storage-class XXX --pv-pool-default-storage-class YYY`
192
192
193
193
## Documentation
194
-
You can find documentation related to noobaa operator and noobaa components in kubernetes in [doc](doc) directory.
195
-
For example:
196
-
-[NooBaa](doc/about-noobaa.md) - Basic terminology and links to videos.
197
-
-[S3 API Compatibility](doc/s3-compatibility.md) - Overview of S3 API compatibility in NooBaa
198
-
-[AWS API Compatibility](https://github.com/noobaa/noobaa-core/blob/master/docs/design/AWS_API_Compatibility.md) - Overview of AWS API calls support in NooBaa
194
+
You can find documentation related to the NooBaa operator and other NooBaa components in Kubernetes in the [noobaa-operator/doc](doc) directory as well as [noobaa-core/docs](https://github.com/noobaa/noobaa-core/tree/master/docs)
195
+
Operator docs mostly focus on Kubernetes custom resources that NooBaa provides - their function, definitions, parameters and uses.
196
+
Core docs focus on NooBaa APIs, advanced features, configuration instructions and design.
197
+
A few important docs can be found below:
198
+
-[NooBaa](doc/about-noobaa.md) - Basic terminology and links to videos
199
+
-[S3 API Compatibility](https://github.com/noobaa/noobaa-core/blob/master/s3-compatibility.md) - Overview of S3 API compatibility in NooBaa
200
+
-[AWS API Compatibility](https://github.com/noobaa/noobaa-core/blob/master/docs/AWS_API_Compatibility.md) - Overview of AWS API calls support in NooBaa
A custom resource is an extension of the Kubernetes API that is not necessarily available in a default Kubernetes installation. CRDs allow users to create new types of resources without adding another API server.
201
-
Once a custom resource is installed, users can create, update and access its objects using [`kubectl`](https://kubernetes.io/docs/reference/kubectl/), just as they do for built-in resources.
202
-
-[NooBaaSystem](doc/noobaa-crd.md) - The basic CRD to deploy a NooBaa system. Represents a single installation of NooBaa that includes a set of sub-resources (backing-stores, bucket-classes, and buckets).
203
-
-[BackingStore](doc/backing-store-crd.md) - Storage resources. These storage targets are used to store deduplicated, compressed and encrypted chunks of data.
204
-
-[NamespaceStore](doc/namespace-store-crd.md) - Data resources. These storage targets are used to store and read plain data.
205
-
-[BucketClass](doc/bucket-class-crd.md) - Policies applied to a class of buckets, defines bucket policies relating to data placement.
206
-
-[Bucket Types](doc/bucket-types.md) - Overview of data and namespace buckets, and supported services
207
-
-[Bucket Replication](doc/bucket-replication.md) - Overview of bucket replication rules in NooBaa, including log-based optimizations, inner workings, and example rules
208
-
-[Account](doc/noobaa-account-crd.md) - We use the account to receive new credentials set for accessing different noobaa services.
202
+
A custom resource is an extension of the Kubernetes API that is not necessarily available in a default Kubernetes installation. CRDs allow users to create new types of resources without adding another API server
203
+
Once a custom resource is installed, users can create, update and access its objects using [`kubectl`](https://kubernetes.io/docs/reference/kubectl/), just as they do for built-in resources
204
+
-[NooBaaSystem](doc/noobaa-crd.md) - The basic CRD to deploy a NooBaa system. Represents a single installation of NooBaa that includes a set of sub-resources (backing-stores, bucket-classes, and buckets)
205
+
-[BackingStore](doc/backing-store-crd.md) - Storage resources. These storage targets are used to store deduplicated, compressed and encrypted chunks of data
206
+
-[NamespaceStore](doc/namespace-store-crd.md) - Data resources. These storage targets are used to store and read plain data
207
+
-[BucketClass](doc/bucket-class-crd.md) - Policies applied to a class of buckets, defines bucket policies relating to data placement
208
+
-[Bucket Types](https://github.com/noobaa/noobaa-core/blob/master/docs/bucket-types.md) - Overview of data and namespace buckets, and supported services
209
+
-[Bucket Replication](https://github.com/noobaa/noobaa-core/blob/master/docs/bucket-replication.md) - Overview of bucket replication rules in NooBaa, including log-based optimizations, inner workings, and example rules
210
+
-[Account](doc/noobaa-account-crd.md) - We use the account to receive new credentials set for accessing different noobaa services
209
211
- Bucket Claim:
210
-
-[OBC Provisioner](doc/obc-provisioner.md) - OBC (Object Bucket Claim) is currently the main CR to provision buckets, however it is being deprecated in favor of COSI.
211
-
-[COSI Provisioner](doc/cosi-provisioner.md) - COSI (Container Object Storage Interface) is a new kubernetes storage standard (like CSI, Container Storage Interface) to provision object storage buckets.
212
+
-[OBC Provisioner](doc/obc-provisioner.md) - OBC (Object Bucket Claim) is currently the main CR to provision buckets, however it is being deprecated in favor of COSI
213
+
-[COSI Provisioner](doc/cosi-provisioner.md) - COSI (Container Object Storage Interface) is a new kubernetes storage standard (like CSI, Container Storage Interface) to provision object storage buckets
212
214
- DB:
213
-
- The default DB is postgres, internal in the cluster.
215
+
- The default DB is postgres, internal in the cluster
214
216
-[External Postgresql DB support](doc/external-postgres.md)
215
217
- Other:
216
-
-[HA controller](doc/high-availability-controller.md) - High Availability controller improves NooBaa pods recovery in the case of a node failure.
217
-
-[Admission Controller](doc/noobaa-admission.md) - The utilize k8s admission webhook feature to validate various NooBaa custom resource definitions.
218
+
-[HA controller](doc/high-availability-controller.md) - High Availability controller improves NooBaa pods recovery in the case of a node failure
219
+
-[Admission Controller](doc/noobaa-admission.md) - The utilize k8s admission webhook feature to validate various NooBaa custom resource definitions
-[noobaa.io](https://www.noobaa.io/) - it is work in progress
223
225
224
226
## Contributing
225
-
- Fork and clone the repo: `git clone https://github.com/<username>/noobaa-operator` (see [here](https://github.com/noobaa/noobaa-core/wiki/Git-Pull-Request-Guide) the full needed procedure when contributing code in Github).
227
+
- Fork and clone the repo: `git clone https://github.com/<username>/noobaa-operator` (see [here](https://github.com/noobaa/noobaa-core/wiki/Git-Pull-Request-Guide) the full needed procedure when contributing code in Github)
226
228
- Use a [local cluster](doc/deply_noobaa_on_minikube_or_rancher_desktop.md):
227
-
- Minikube (`minikube start`).
228
-
- Rancher Desktop.
229
-
- Use your package manager to install `go` and `python3`.
230
-
- Source the devenv into your shell: `. devenv.sh`.
231
-
- Build the project: `make`.
232
-
- Test with the alias `nb` that runs the local operator from `build/_output/bin` (alias created by devenv).
233
-
- Install the operator and create the system with: `nb install`.
229
+
- Minikube (`minikube start`)
230
+
- Rancher Desktop
231
+
- Use your package manager to install `go` and `python3`
232
+
- Source the devenv into your shell: `. devenv.sh`
233
+
- Build the project: `make`
234
+
- Test with the alias `nb` that runs the local operator from `build/_output/bin` (alias created by devenv)
235
+
- Install the operator and create the system with: `nb install`
234
236
- Other:
235
-
-[Deploy NSFS on kubernetes](https://github.com/noobaa/noobaa-core/wiki/NSFS-on-Kubernetes).
237
+
-[Deploy NSFS on kubernetes](https://github.com/noobaa/noobaa-core/wiki/NSFS-on-Kubernetes)
0 commit comments