# Oobeya Installation Tutorial (Helm)

To install using the Helm Artifact Repository, you can follow the steps on [ArtifactoryHub](https://artifacthub.io/packages/helm/oobeya/oobeya).

### Contents

* [Install Oobeya Helm Chart](#install-oobeya-helm-chart)
* [Configure Persistent Volumes](#configure-persistent-volumes)
* [Configure custom MongoDB without PVC](#configure-custom-mongodb-without-pvc)
* [Configuration](#configuration)
* [Installing Oobeya with Helm](#installing-oobeya-with-helm)

**Warning**: If you are not using Custom MongoDB, a StorageClass and a PVC are required.

### Install Oobeya Helm Chart

Please create a namespace for Oobeya.

```
kubectl create namespace oobeya
```

Please request a token from the Oobeya team for registry access.

```
kubectl create secret docker-registry oobeya-secret \
     --docker-server=https://oobeya.azurecr.io \
     --docker-username=(Credentials-Name) \
     --docker-password=(Your-Credentials) \
     --namespace=oobeya
```

To install using the Helm Artifact Repository, you can follow the steps on [ArtifactoryHub](https://artifacthub.io/packages/helm/oobeya/oobeya).

You can download the chart package.

```
wget https://oobeya-app.s3.us-east-1.amazonaws.com/oobeya-helm-lts.tar

tar -xvf oobeya-helm-lts.tar && cd oobeya
```

You can push the Oobeya directory to the ArgoCD or Kustomize Git Repository.

### Configure Persistent Volumes

Persistent Volume Claim (PVCs) are defined in the following files:

```
vi (pwd)/values.yaml
```

```
storage:
    mongoStorage:
      pvcName: oobeya-mongo-pvc
      storageClassName: local-path                      # StorageClass Name
      size: 100Gi                                       # Storage Size

    gitwiserStorage:
      enabled: true
      pvcName: oobeya-gitwiser-pvc
      storageClassName: local-path                      # StorageClass Name
      size: 20Gi                                        # Storage Size
```

Edit file to set the correct StorageClass name for your environment.

### Configure custom MongoDB without PVC

If you enable External MongoDB, you will no longer need a Storage Class or a PVC.

Steps required to create a user and database for Oobeya:

```
> use admin
```

```
db.createUser({
  user: "mongodb",                        # Your USERNAME
  pwd: "mongodb",                         # Your PASSWORD
  roles: [
    { role: 'readWrite', db: 'addonsDB' },
    { role: 'readWrite', db: 'admin' },
    { role: 'readWrite', db: 'gatewayDB' },
    { role: 'readWrite', db: 'agilespaceDB' },
    { role: 'readWrite', db: 'config' },
    { role: 'readWrite', db: 'dashboardDB' },
    { role: 'readWrite', db: 'devteamDB' },
    { role: 'readWrite', db: 'gitwiserDB' },
    { role: 'readWrite', db: 'uaaDB' }
  ]
});
```

If you're connecting to your external MongoDB, you'll need to fill in the blanks here:

```
oobeyaExternalMongo:
  isExternal: false                                       # Set true
  host: "oobeya-mongo.oobeya.svc.cluster.local"           # Set your MongoDB domain or IP
  port: "27017"                                           # Set MongoDB Port
  user: ""
  pass: ""
  authSource: "admin"
  databases:
    dashboard: "dashboardDB"
    devteam: "devteamDB"
    gitwiser: "gitwiserDB"
    uaa: "uaaDB"
    agilespace: "agilespaceDB"
    addons: "addonsDB"
    gateway: "gatewayDB"
```

### Configuration

To access Oobeya from the browser, you need to add the domain name or machine IP to the configuration.

```
vi (pwd)/values.yaml
```

* Please edit this:

1. values.yaml.oobeyaDashboard

```
 - corsAllowedOrigin: "http://your-IP-or-Domain"
```

2. values.yaml.oobeyaGateway

```
 - corsAllowedOrigin: "http://your-IP-or-Domain"
 - gatewayBaseOrigin: "http://your-IP-or-Domain"
```

If you're using `Nginx Ingress` for access:

```
ingressNginx:
  enabled: false
  className: "nginx"
  host: "oobeya.local"
```

If you're using `Traefik Ingress`, similar definitions are included in the values.yaml file.

### Installing Oobeya with Helm

```
helm lint .
```

```
helm upgrade --install oobeya . \
  --namespace oobeya
```

If you want to deploy a specific version:

```
helm upgrade --install oobeya . \
  --namespace oobeya \
  --set beVersion=2.0.xxx \
  --set feVersion=2.0.xxx
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.oobeya.io/installations/oobeya-installation-tutorial-helm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
