Documentation
¶
Index ¶
Constants ¶
View Source
const File_deploy_cluster_role_binding_yaml = `` /* 267-byte string literal not displayed */
View Source
const File_deploy_cluster_role_yaml = `` /* 709-byte string literal not displayed */
View Source
const File_deploy_crds_noobaa_v1alpha1_backingstore_cr_yaml = `` /* 249-byte string literal not displayed */
View Source
const File_deploy_crds_noobaa_v1alpha1_backingstore_crd_yaml = `` /* 7210-byte string literal not displayed */
View Source
const File_deploy_crds_noobaa_v1alpha1_bucketclass_cr_yaml = `` /* 171-byte string literal not displayed */
View Source
const File_deploy_crds_noobaa_v1alpha1_bucketclass_crd_yaml = `` /* 4318-byte string literal not displayed */
View Source
const File_deploy_crds_noobaa_v1alpha1_noobaa_cr_yaml = `apiVersion: noobaa.io/v1alpha1
kind: NooBaa
metadata:
name: noobaa
labels:
app: noobaa
spec: {}
`
View Source
const File_deploy_crds_noobaa_v1alpha1_noobaa_crd_yaml = `apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: noobaas.noobaa.io
spec:
additionalPrinterColumns:
- JSONPath: .status.services.serviceMgmt.nodePorts
description: Management Endpoints
name: Mgmt-Endpoints
type: string
- JSONPath: .status.services.serviceS3.nodePorts
description: S3 Endpoints
name: S3-Endpoints
type: string
- JSONPath: .status.actualImage
description: Actual Image
name: Image
type: string
- JSONPath: .status.phase
description: Phase
name: Phase
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: noobaa.io
names:
kind: NooBaa
listKind: NooBaaList
plural: noobaas
shortNames:
- nb
singular: noobaa
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
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/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/api-conventions.md#types-kinds'
type: string
metadata:
description: Standard object metadata.
type: object
spec:
description: Specification of the desired behavior of the noobaa system.
properties:
coreResources:
description: CoreResources (optional) overrides the default resource
requirements for the server container
type: object
dbImage:
description: DBImage (optional) overrides the default image for the
db container
type: string
dbResources:
description: DBResources (optional) overrides the default resource requirements
for the db container
type: object
dbStorageClass:
description: DBStorageClass (optional) overrides the default cluster
StorageClass for the database volume. For the time being this field
is immutable and can only be set on system creation. This affects
where the system stores its database which contains system config,
buckets, objects meta-data and mapping file parts to storage locations.
+immutable
type: string
dbVolumeResources:
description: 'DBVolumeResources (optional) overrides the default PVC
resource requirements for the database volume. For the time being
this field is immutable and can only be set on system creation. This
is because volume size updates are only supported for increasing the
size, and only if the storage class specifies ` + "`" + `allowVolumeExpansion:
true` + "`" + `, +immutable'
type: object
image:
description: Image (optional) overrides the default image for the server
container
type: string
imagePullSecret:
description: ImagePullSecret (optional) sets a pull secret for the system
image
type: object
pvPoolDefaultStorageClass:
description: PVPoolDefaultStorageClass (optional) overrides the default
cluster StorageClass for the pv-pool volumes. This affects where the
system stores data chunks (encrypted). Updates to this field will
only affect new pv-pools, but updates to existing pools are not supported
by the operator.
type: string
tolerations:
description: Tolerations (optional) passed through to noobaa's pods
items:
type: object
type: array
type: object
status:
description: Most recently observed status of the noobaa system.
properties:
accounts:
properties:
admin:
properties:
secretRef:
type: object
required:
- secretRef
type: object
required:
- admin
type: object
actualImage:
description: ActualImage is set to report which image the operator is
using
type: string
conditions:
description: Conditions is a list of conditions related to operator
reconciliation +patchMergeKey=type +patchStrategy=merge
items:
properties:
lastHeartbeatTime:
format: date-time
type: string
lastTransitionTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
- lastHeartbeatTime
- lastTransitionTime
type: object
type: array
observedGeneration:
description: ObservedGeneration is the most recent generation observed
for this noobaa system. It corresponds to the CR generation, which
is updated on mutation by the API Server.
format: int64
type: integer
phase:
description: Phase is a simple, high-level summary of where the System
is in its lifecycle
type: string
readme:
description: Readme is a user readable string with explanations on the
system
type: string
relatedObjects:
description: RelatedObjects is a list of objects related to this operator.
items:
type: object
type: array
services:
properties:
serviceMgmt:
properties:
externalDNS:
description: ExternalDNS are external public addresses for the
service
items:
type: string
type: array
externalIP:
description: ExternalIP are external public addresses for the
service LoadBalancerPorts such as AWS ELB provide public address
and load balancing for the service IngressPorts are manually
created public addresses for the service https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
https://kubernetes.io/docs/concepts/services-networking/ingress/
items:
type: string
type: array
internalDNS:
description: InternalDNS are internal addresses of the service
inside the cluster
items:
type: string
type: array
internalIP:
description: InternalIP are internal addresses of the service
inside the cluster https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
items:
type: string
type: array
nodePorts:
description: NodePorts are the most basic network available.
NodePorts use the networks available on the hosts of kubernetes
nodes. This generally works from within a pod, and from the
internal network of the nodes, but may fail from public network.
https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
items:
type: string
type: array
podPorts:
description: 'PodPorts are the second most basic network address.
Every pod has an IP in the cluster and the pods network is
a mesh so the operator running inside a pod in the cluster
can use this address. Note: pod IPs are not guaranteed to
persist over restarts, so should be rediscovered. Note2: when
running the operator outside of the cluster, pod IP is not
accessible.'
items:
type: string
type: array
type: object
serviceS3:
properties:
externalDNS:
description: ExternalDNS are external public addresses for the
service
items:
type: string
type: array
externalIP:
description: ExternalIP are external public addresses for the
service LoadBalancerPorts such as AWS ELB provide public address
and load balancing for the service IngressPorts are manually
created public addresses for the service https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
https://kubernetes.io/docs/concepts/services-networking/ingress/
items:
type: string
type: array
internalDNS:
description: InternalDNS are internal addresses of the service
inside the cluster
items:
type: string
type: array
internalIP:
description: InternalIP are internal addresses of the service
inside the cluster https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
items:
type: string
type: array
nodePorts:
description: NodePorts are the most basic network available.
NodePorts use the networks available on the hosts of kubernetes
nodes. This generally works from within a pod, and from the
internal network of the nodes, but may fail from public network.
https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
items:
type: string
type: array
podPorts:
description: 'PodPorts are the second most basic network address.
Every pod has an IP in the cluster and the pods network is
a mesh so the operator running inside a pod in the cluster
can use this address. Note: pod IPs are not guaranteed to
persist over restarts, so should be rediscovered. Note2: when
running the operator outside of the cluster, pod IP is not
accessible.'
items:
type: string
type: array
type: object
required:
- serviceMgmt
- serviceS3
type: object
required:
- observedGeneration
- phase
- actualImage
- accounts
- services
- readme
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
`
View Source
const File_deploy_internal_ceph_objectstore_user_yaml = `` /* 148-byte string literal not displayed */
View Source
const File_deploy_internal_cloud_creds_aws_cr_yaml = `` /* 625-byte string literal not displayed */
View Source
const File_deploy_internal_prometheus_rules_yaml = `` /* 4448-byte string literal not displayed */
View Source
const File_deploy_internal_route_mgmt_yaml = `` /* 262-byte string literal not displayed */
View Source
const File_deploy_internal_route_s3_yaml = `` /* 242-byte string literal not displayed */
View Source
const File_deploy_internal_secret_empty_yaml = `apiVersion: v1
kind: Secret
metadata:
labels:
app: noobaa
type: Opaque
data: {}
`
View Source
const File_deploy_internal_service_mgmt_yaml = `` /* 592-byte string literal not displayed */
View Source
const File_deploy_internal_service_monitor_yaml = `` /* 235-byte string literal not displayed */
View Source
const File_deploy_internal_service_s3_yaml = `` /* 356-byte string literal not displayed */
View Source
const File_deploy_internal_statefulset_core_yaml = `` /* 3991-byte string literal not displayed */
View Source
const File_deploy_internal_text_system_status_readme_progress_tmpl = `` /* 555-byte string literal not displayed */
View Source
const File_deploy_internal_text_system_status_readme_ready_tmpl = `` /* 1199-byte string literal not displayed */
View Source
const File_deploy_internal_text_system_status_readme_rejected_tmpl = `` /* 506-byte string literal not displayed */
View Source
const File_deploy_namespace_yaml = `apiVersion: v1
kind: Namespace
metadata:
name: noobaa
labels:
openshift.io/cluster-monitoring: "true"
`
View Source
const File_deploy_obc_objectbucket_v1alpha1_objectbucket_cr_yaml = `` /* 378-byte string literal not displayed */
View Source
const File_deploy_obc_objectbucket_v1alpha1_objectbucket_crd_yaml = `` /* 4387-byte string literal not displayed */
View Source
const File_deploy_obc_objectbucket_v1alpha1_objectbucketclaim_cr_yaml = `` /* 204-byte string literal not displayed */
View Source
const File_deploy_obc_objectbucket_v1alpha1_objectbucketclaim_crd_yaml = `` /* 3284-byte string literal not displayed */
View Source
const File_deploy_obc_storage_class_yaml = `` /* 140-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_catalog_source_config_yaml = `` /* 204-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_csv_config_yaml = `role-paths:
- deploy/role.yaml
- deploy/cluster_role.yaml
`
View Source
const File_deploy_olm_catalog_description_md = `The noobaa operator creates and reconciles a NooBaa system in a Kubernetes/Openshift cluster.
NooBaa provides an S3 object-store service abstraction and data placement policies to create hybrid and multi cloud data solutions.
For more information on using NooBaa refer to [Github](https://github.com/noobaa/noobaa-core) / [Website](https://www.noobaa.io) / [Articles](https://noobaa.desk.com).
## How does it work?
- The operator deploys the noobaa core pod and two services - Mgmt (UI/API) and S3 (object-store).
- Both services require credentials which you will get from a secret that the operator creates - use describe noobaa to locate it.
- The service addresses will also appear in the describe output - pick the one that is suitable for your client:
- minikube - use the NodePort address.
- remote cluster - probably need one of the External addresses.
- connect an application on the same cluster - use Internal DNS (though any address should work)
- Feel free to email us or open github issues on any question.
## Getting Started
### Notes:
- The following instructions are for **minikube** but it works on any Kubernetes/Openshift clusters.
- This will setup noobaa in the **my-noobaa-operator** namespace.
- You will need **jq**, **curl**, **kubectl** or **oc**, **aws-cli**.
### 1. Install OLM (if you don't have it already):
` + "`" + `` + "`" + `` + "`" + `
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/0.10.0/install.sh | bash -s 0.10.0
` + "`" + `` + "`" + `` + "`" + `
### 2. Install noobaa-operator:
` + "`" + `` + "`" + `` + "`" + `
kubectl create -f https://operatorhub.io/install/noobaa-operator.yaml
` + "`" + `` + "`" + `` + "`" + `
Wait for it to be ready:
` + "`" + `` + "`" + `` + "`" + `
kubectl wait pod -n my-noobaa-operator -l noobaa-operator --for=condition=ready
` + "`" + `` + "`" + `` + "`" + `
### 3. Create noobaa system:
` + "`" + `` + "`" + `` + "`" + `
curl -sL https://operatorhub.io/api/operator?packageName=noobaa-operator |
jq '.operator.customResourceDefinitions[0].yamlExample | .metadata.namespace="my-noobaa-operator"' |
kubectl create -f -
` + "`" + `` + "`" + `` + "`" + `
Wait for it to be ready:
` + "`" + `` + "`" + `` + "`" + `
kubectl wait pod -n my-noobaa-operator -l noobaa-core --for=condition=ready
kubectl get noobaa -n my-noobaa-operator -w
# NAME PHASE MGMT-ENDPOINTS S3-ENDPOINTS IMAGE AGE
# noobaa **Ready** [https://192.168.64.12:31121] [https://192.168.64.12:32557] noobaa/noobaa-core:4.0 19m
` + "`" + `` + "`" + `` + "`" + `
### 4. Get system information to your shell:
` + "`" + `` + "`" + `` + "`" + `
NOOBAA_SECRET=$(kubectl get noobaa noobaa -n my-noobaa-operator -o json | jq -r '.status.accounts.admin.secretRef.name' )
NOOBAA_MGMT=$(kubectl get noobaa noobaa -n my-noobaa-operator -o json | jq -r '.status.services.serviceMgmt.nodePorts[0]' )
NOOBAA_S3=$(kubectl get noobaa noobaa -n my-noobaa-operator -o json | jq -r '.status.services.serviceS3.nodePorts[0]' )
NOOBAA_ACCESS_KEY=$(kubectl get secret $NOOBAA_SECRET -n my-noobaa-operator -o json | jq -r '.data.AWS_ACCESS_KEY_ID|@base64d')
NOOBAA_SECRET_KEY=$(kubectl get secret $NOOBAA_SECRET -n my-noobaa-operator -o json | jq -r '.data.AWS_SECRET_ACCESS_KEY|@base64d')
` + "`" + `` + "`" + `` + "`" + `
### 5. Connect to Mgmt UI:
` + "`" + `` + "`" + `` + "`" + `
# show email/password from the secret:
kubectl get secret $NOOBAA_SECRET -n my-noobaa-operator -o json | jq '.data|map_values(@base64d)'
# open mgmt UI login:
open $NOOBAA_MGMT
` + "`" + `` + "`" + `` + "`" + `
### 6. Connect to S3 with aws-cli:
` + "`" + `` + "`" + `` + "`" + `
alias s3='AWS_ACCESS_KEY_ID=$NOOBAA_ACCESS_KEY AWS_SECRET_ACCESS_KEY=$NOOBAA_SECRET_KEY aws --endpoint $NOOBAA_S3 --no-verify-ssl s3'
s3 ls
s3 sync /var/log/ s3://first.bucket
s3 ls s3://first.bucket
` + "`" + `` + "`" + `` + "`" + `
`
View Source
const File_deploy_olm_catalog_noobaa_icon_base64 = `` /* 24048-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_noobaa_operator_clusterserviceversion_yaml = `` /* 2767-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_operator_group_yaml = `` /* 177-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_operator_source_yaml = `` /* 264-byte string literal not displayed */
View Source
const File_deploy_olm_catalog_operator_subscription_yaml = `` /* 251-byte string literal not displayed */
View Source
const File_deploy_operator_yaml = `` /* 870-byte string literal not displayed */
View Source
const File_deploy_role_binding_yaml = `` /* 211-byte string literal not displayed */
View Source
const File_deploy_role_yaml = `` /* 1477-byte string literal not displayed */
View Source
const File_deploy_service_account_yaml = `apiVersion: v1
kind: ServiceAccount
metadata:
name: noobaa
`
View Source
const Sha256_deploy_cluster_role_binding_yaml = "15c78355aefdceaf577bd96b4ae949ae424a3febdc8853be0917cf89a63941fc"
View Source
const Sha256_deploy_cluster_role_yaml = "f719ff8e0015a73d4e6ff322d2b30efa1cc89fcb3f856c06a5910785cb9e8dd8"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_backingstore_cr_yaml = "776deb11e769c67bf993ec77762b5375e36607bd4026e4ef20642fde2bd5dc80"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_backingstore_crd_yaml = "57e474668ba94f1f0853a04d13f02fff9135caf1428d4963259e8590d8c35c0e"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_bucketclass_cr_yaml = "af1411669ca0b29bdb7836e9e1fc44a0ddb7d4a994266abbae793a7116f6499f"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_bucketclass_crd_yaml = "2362aac8610c170155687a2d11ba08bca30c7040a7e16c1228ccd94e6c3b7bec"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_noobaa_cr_yaml = "0e1f573b02ad8f9f1e4e8bed5fe47e4651040277e0accf1e30b1369745371483"
View Source
const Sha256_deploy_crds_noobaa_v1alpha1_noobaa_crd_yaml = "c81b0849d9ab3e16d61b34d85752907f7f3e3cebb322f28a67eaab0cc6a9d701"
View Source
const Sha256_deploy_internal_ceph_objectstore_user_yaml = "9b60853f585d771e484854e34fc59adf56a6edb6acb1315eb2ea02b59d213755"
View Source
const Sha256_deploy_internal_cloud_creds_aws_cr_yaml = "8e4159bc3470c135b611b6d9f4338612be0e6ea381d5061cc79e84a7eec0ab6a"
View Source
const Sha256_deploy_internal_prometheus_rules_yaml = "31412ea08c2c489c6cccdb28acdc1817f7ed97b9f3672b1abf80ab4f4129c39f"
View Source
const Sha256_deploy_internal_route_mgmt_yaml = "52dacfdd2f8f4ddfe56948573ae69277096d971c9274f9afb1046871ed7f9c28"
View Source
const Sha256_deploy_internal_route_s3_yaml = "e5d832cf3912c648ab4b799ded80a70eaec9fc13d6181726d934af99f71a6686"
View Source
const Sha256_deploy_internal_secret_empty_yaml = "d63aaeaf7f9c7c1421fcc138ee2f31d2461de0dec2f68120bc9cce367d4d4186"
View Source
const Sha256_deploy_internal_service_mgmt_yaml = "528fb9ccd535776579e59dc5ae60602d0679ce9c6c59c7d5d5a22526fe79131d"
View Source
const Sha256_deploy_internal_service_monitor_yaml = "224b1ce993c390fa80898dedfee8380f2d0209d3702eb0b8b514dd380ade453c"
View Source
const Sha256_deploy_internal_service_s3_yaml = "220a8196a5937ca7763bcedf3ea42e9ed6dd99cbfc38dd428a884d2712a7a3bd"
View Source
const Sha256_deploy_internal_statefulset_core_yaml = "97cb70ec5b66a8fec8225a441a84948368513e5db515320f8f3fcf8ed0bd01b1"
View Source
const Sha256_deploy_internal_text_system_status_readme_progress_tmpl = "d26aa1028e4a235018cc46e00392d3209d3e09e8320f3692be6346a9cfdf289a"
View Source
const Sha256_deploy_internal_text_system_status_readme_ready_tmpl = "d2d8a51e85e4d75ee15f70b4e0baaf514149ae1a3678475a057a5ce04c6a0157"
View Source
const Sha256_deploy_internal_text_system_status_readme_rejected_tmpl = "32d46b0a1eadbe10501b2b3a6529503c76c0c77e25464f56f4ee9fd9115100c4"
View Source
const Sha256_deploy_namespace_yaml = "303398323535d7f8229cb1a5378ad019cf4fa7930891688e3eea55c77e7bf69a"
View Source
const Sha256_deploy_obc_objectbucket_v1alpha1_objectbucket_cr_yaml = "0246e12a1337b2f68d408ff688b55fd6116bc7cd8f877e06d36e00d7255a81f9"
View Source
const Sha256_deploy_obc_objectbucket_v1alpha1_objectbucket_crd_yaml = "57432d2fe37757af1fe1e263e2426abd2e9b5afcbaf48eee543f94e2d30626ff"
View Source
const Sha256_deploy_obc_objectbucket_v1alpha1_objectbucketclaim_cr_yaml = "1a4391ac6d7393a2d3fba47f18c1097506a3f1f27bf6309c18897e30de9ec8c8"
View Source
const Sha256_deploy_obc_objectbucket_v1alpha1_objectbucketclaim_crd_yaml = "edc3d10012249f73a226cca91830ae8b2751bcc10b41735db5a4a0f535e3ecb7"
View Source
const Sha256_deploy_obc_storage_class_yaml = "9d03664a6263d8e54a00cdd604cc3cb6b5ce04ff9d73187b7fcb122bcbbdd1d2"
View Source
const Sha256_deploy_olm_catalog_catalog_source_config_yaml = "c90eee41215b6a9810b320ea8dd6dc90a552d8f5f692464de964bf037df7ca78"
View Source
const Sha256_deploy_olm_catalog_csv_config_yaml = "7902c00f83ed852ecb10b9ba2602e5c0271fc4f94afdc81dc757198942c63217"
View Source
const Sha256_deploy_olm_catalog_description_md = "1579500c3a3a89680441e60f9ffec59c51ad1b28f282e1c2e55de3d15a88ff62"
View Source
const Sha256_deploy_olm_catalog_noobaa_icon_base64 = "4684eb3f4be354c728e210364a7e5e6806b68acb945b6e129ebc4d75fd97073c"
View Source
const Sha256_deploy_olm_catalog_noobaa_operator_clusterserviceversion_yaml = "a903bea4780d1cd6a9c02c12dab5e52f6e2ef0b70b787e510ccbf7dd96a675a1"
View Source
const Sha256_deploy_olm_catalog_operator_group_yaml = "94f9961868713e06338bf0a2bbae73ad4983a5a52765b74a72ce0f5a62480af5"
View Source
const Sha256_deploy_olm_catalog_operator_source_yaml = "2f5cc3b1bec5332087fd6f3b80f0769c404a513d061ef822604fb87b6f301f30"
View Source
const Sha256_deploy_olm_catalog_operator_subscription_yaml = "9eb0139d4fa841a97fe33e48ac5586bed89a3fa49ed26e20767108e531fe9ab0"
View Source
const Sha256_deploy_operator_yaml = "f69ccad7b56baceecde898de48bcd7b2fde6a2926c485529142641165ae20317"
View Source
const Sha256_deploy_role_binding_yaml = "59a2627156ed3db9cd1a4d9c47e8c1044279c65e84d79c525e51274329cb16ff"
View Source
const Sha256_deploy_role_yaml = "26c988090a0b9e2b50e2ffc225476534c3916d75ecb4d67e434a514eab52824c"
View Source
const Sha256_deploy_service_account_yaml = "51241cd291100562ccd8bec1625c3779e212a58a0a21d4042937a98c73245d66"
View Source
const Version = "2.0.5"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.