Skip to content
Snippets Groups Projects
README.md 6.87 KiB
Newer Older
# Provisioning with custom versions of images or helm charts

**NOTE**: Check that you're in **release branch** (example release/0.22). Master branch can be unstable due to development.

This example illustrates how to install OSDU instance with specific versions of release images or helm charts on Baremetal Environment.

Some possible use-cases:

* You installed OSDU instance with release version `0.18`, and you need to deploy specific OSDU Service(s) with a new (or a previous) **image** version (with some fixes, for example)
* You installed OSDU instance with release version `0.18`, and you need to deploy specific OSDU Service(s) with a new (or a previous) **helm chart** version (with some fixes, for example)

## Installation with custom versions of images

Download the following files:

* `custom-values.yaml`
* `custom-images.yaml`

Create a separate directory

```sh
mkdir osdu-baremetal-custom-versions && cd osdu-baremetal-custom-versions
```

To determine the latest release version, run the following command:

```sh
tag=$(git ls-remote --tags https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-gcp-provisioning.git | awk '{print $2}' | cut -d '/' -f 3 | cut -d 'v' -f2 | cut -d . -f1-2 | sort -V | tail -n 1)
```

For custom version of release, you need to redefine the tag you need, example: `tag=0.22`

```sh
tag=<put your version here>
```

After we have written the required value in the variable, execute the following command:

```sh
echo "tag: "$tag &&
curl -LO https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-gcp-provisioning/-/raw/release/$tag/examples/osdu-baremetal-custom-versions/custom-values.yaml &&
curl -LO https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-gcp-provisioning/-/raw/release/$tag/examples/osdu-baremetal-custom-versions/custom-images.yaml
To override versions of images that is set in Services helm charts' with [custom-images.yaml](./custom-images.yaml) fill in the required values as described in the example:

```yaml
# Example how to override a current version of image for Legal Service and set it to `v0.19.0`
gc_legal_deploy:
  data:
    image: "community.opengroup.org:5555/osdu/platform/security-and-compliance/legal/gc-legal:v0.19.0"
    bootstrapImage: "community.opengroup.org:5555/osdu/platform/security-and-compliance/legal/gc-bootstrap-legal:v0.19.0"

# Example how to override a current version of image for File Service and set it to `v0.19.0`
gc_file_deploy:
  data:
    image: "community.opengroup.org:5555/osdu/platform/system/file/gc-file:v0.19.0"
```

> `custom-images.yaml` is an extendible file. If you need to change images for a set of Services, you should add required values for the set of Services there.

The command for deploying with `custom-images.yaml`:

```bash
helm install -f custom-images.yaml osdu-baremetal osdu-baremetal oci://community.opengroup.org:5555/osdu/platform/deployment-and-operations/infra-gcp-provisioning/gc-helm/osdu-gc-baremetal
## Installation with custom values and custom versions of images
It is possible to override main [values.yaml](../../helm/osdu-gc-baremetal/values.yaml) [^2] with [custom-values.yaml](./custom-values.yaml) and [custom-images.yaml](./custom-images.yaml).
Prepare **custom-values.yaml** file by example. It is needed to use **only alphanumerical characters and at least 8 symbols for passwords**.
| Name                                                   | Description                         | Type   | Default | Required |
| ------------------------------------------------------ | ----------------------------------- | ------ | ------- | -------- |
| **global.domain** [^1]                                 | DNS name for OSDU installation      | string | none    | yes      |
| **keycloak.auth.adminPassword**                        | Password for keycloak admin user    | string | none    | yes      |
| **minio.auth.rootPassword**                            | Password for minio root user        | string | none    | yes      |
| **postgresql.global.postgresql.auth.postgresPassword** | Password for postgres database      | string | none    | yes      |
| **airflow-database-password**                          | Password for airflow database       | string | none    | yes      |
| **airflow.auth.password**                              | Password for airflow admin user     | string | none    | yes      |
| **rabbitmq.auth.password**                             | Password for rabbitmq admin user    | string | none    | yes      |
| **elasticsearch.security.elasticPassword**             | Password for ElasticSearch instance | string | none    | yes      |
[^1]: If you do not have a domain name you can use "\<loadBalancerIP\>.nip.io" as your domain name. LoadBalancerIP could be found with the command: `kubectl -n istio-gateway get svc istio-ingressgateway -o jsonpath={.status.loadBalancer.ingress[].ip}` You can find more information about using nip.io as a domain [here](https://nip.io/)
**NOTE**:

* Starting from version 0.24.x, **we've stopped using the Policy service** to validate requests from other services **by default**. To change this behavior you need to set **policy_enabled** variable to **true**.

* Parameter that enables upload of the sample storage data `data_bootstrap_enabled`  **No longer supported in with basic installation**, use a separate helm to load the date [Data Bootstrap Helm Chart](https://community.opengroup.org/osdu/platform/deployment-and-operations/base-containers-gcp/bootstrap-data/-/blob/main/devops/gc/deploy/README.md?ref_type=heads)

* gc_storage_deploy.data.opaEnabled
* gc_search_deploy.data.servicePolicyEnabled

To install helm chart use the command:
helm install -f custom-values.yaml -f custom-images.yaml osdu-baremetal oci://community.opengroup.org:5555/osdu/platform/deployment-and-operations/infra-gcp-provisioning/gc-helm/osdu-gc-baremetal
```

## Installation with custom version of Helm chart

To install the Helm chart of a specific version(for example 0.19.3) use the `--version` flag:

```shell
helm install osdu-baremetal oci://community.opengroup.org:5555/osdu/platform/deployment-and-operations/infra-gcp-provisioning/gc-helm/osdu-gc-baremetal --version 0.19.3
```

To install the Helm chart with the latest patch of a specific version(for example 0.19) use the following command:

```shell
helm install osdu-baremetal oci://community.opengroup.org:5555/osdu/platform/deployment-and-operations/infra-gcp-provisioning/gc-helm/osdu-gc-baremetal --version 0.19.x
All available versions can be found [here](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-gcp-provisioning/container_registry/16622).
[^2]: Minio, by default, uses the Single-Node Single-Drive ("Standalone") mode without Persistent Volumes. To use the Multi-Node Multi-Drive ("Distributed") mode, change the `mode` variable to "distributed" in the [values.yaml](../../helm/osdu-gc-baremetal/values.yaml) file.