From 6d66a79a5e7fb4a24f4eb96210750d0a5f8c648c Mon Sep 17 00:00:00 2001 From: Caroline McNamara Date: Thu, 1 Feb 2024 14:35:56 +0000 Subject: [PATCH 1/4] add info and diagrams --- src/data/nav.yaml | 2 +- .../docs/ecosystem/ecosystem-architecture.md | 2 +- .../ecosystem/ecosystem-installing-k8s.md | 248 ++++++++++++++++-- .../docs/ecosystem/ecosystem-overview-lbo.svg | 80 ++++++ .../docs/ecosystem/ecosystem-overview-new.svg | 80 ++++++ .../docs/ecosystem/ecosystem-overview-o.svg | 55 ++++ .../docs/ecosystem/ecosystem-overview.svg | 135 ++++++---- .../galasa-ecosystem-architecture-new.svg | 166 ++++++++++++ .../galasa-ecosystem-architecture-o.svg | 83 ++++++ .../galasa-ecosystem-architecture.svg | 247 +++++++++++------ 10 files changed, 933 insertions(+), 165 deletions(-) create mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg create mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg create mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg create mode 100644 src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg create mode 100644 src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg diff --git a/src/data/nav.yaml b/src/data/nav.yaml index c7d7baaa..49456786 100644 --- a/src/data/nav.yaml +++ b/src/data/nav.yaml @@ -103,7 +103,7 @@ items: - title: Ecosystem architecture path: /docs/ecosystem/architecture - - title: Installing the Ecosystem on Kubernetes + - title: Installing the Ecosystem using Helm path: /docs/ecosystem/installing/k8s - title: Test streams path: /docs/writing-own-tests/test-streams diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md index 000b484a..af32025c 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md @@ -5,7 +5,7 @@ title: "Ecosystem Architecture" The following diagram provides a high-level representation of the Galasa Ecosystem architecture:

![Galasa ecosystem architecture:](ecosystem-overview.svg) -
The ecosystem is made up of a collection of microservices for orchestrating runtimes, monitoring tests and resources, and providing clean-up of those resources if required. The ecosystem provides a centralized store for run configurations, a single location for storing all test results and test artifacts, and utilizes a REST endpoint that can be called from any IDE or pipeline. +
The Ecosystem is made up of a collection of microservices for orchestrating runtimes, monitoring tests and resources, and providing clean-up of those resources if required. The Ecosystem provides a centralized store for run configurations, a single location for storing all test results and test artifacts, and utilizes a REST endpoint that can be called from any IDE or pipeline. ### Key components: diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md index 15f222e5..dd0aec65 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md @@ -1,64 +1,209 @@ --- path: "/docs/ecosystem/installing/k8s" -title: "Installing the Ecosystem on Kubernetes" +title: "Installing the Ecosystem using Helm" --- -The following sections explain how to install a Galasa Ecosystem on a Kubernetes cluster by using Helm and to validate that the ecosystem is installed correctly. +If you want to run scalable, highly available testing for enterprise level workloads, you need to install your Galasa Ecosystem in a Kubernetes cluster. Running Galasa in a Kubernetes cluster means that you can run many tests in parallel on a resilient and scalable platform, where the clean-up of test resources can be managed, and test results can be centralised and gathered easily. -If you want to run scalable, highly available testing for enterprise level workloads, use Helm to install your Galasa Ecosystem in a Kubernetes cluster. Running Galasa in a Kubernetes cluster, rather than in a local JVM, means that you can run many tests in parallel on a resilient and scalable platform, where the clean-up of test resources can be managed, and test results can be centralised and gathered easily. If you want to create a local proof of concept, you might want to first run your Galasa tests within a JVM on your local machine. +Galasa provides a Galasa Ecosystem Helm chart to install a Galasa Ecosystem. You can install the chart into a Kubernetes cluster or minikube. However, note that minikube is not suitable for production purposes because it provides a single Kubernetes node and therefore does not scale well. Only use minikube for development and testing purposes. -To find out more about Kubernetes, see the Kubernetes Documentation. +The following sections explain how to install a Galasa Ecosystem on a Kubernetes cluster and on minikube by using Helm and how to validate that the Ecosystem is installed correctly. The Galasa Helm repository contains the Galasa Ecosystem Helm chart that is referenced in the following sections. +_Note:_ The Galasa Ecosystem Helm chart currently supports only x86-64 systems. It cannot be installed on ARM64-based systems. + +To find out more about Kubernetes, see the Kubernetes Documentation. + ## Prerequisites -- The Kubernetes command-line tool **kubectl** must be installed on the machine that is used to run the commands and must be configured to point at your Kubernetes cluster. -- You must have a Kubernetes cluster at version 1.16 or higher. You can check the version number by running the ```kubectl version``` command. - Helm must be installed to use the chart. See the Helm documentation for installation instructions. +- The Kubernetes command-line tool *kubectl* must be installed on the machine that is used to run the commands and must be configured to point at your Kubernetes cluster. +- You must have a Kubernetes cluster at version 1.16 or higher. You can check the version number by running the ```kubectl version``` command. +- If you would like to install the chart into minikube, ensure you have minikube installed and that it is running with `minikube status`. If minikube is not running, start it by running `minikube start`. Once minikube is running, follow the instructions in the sections below to install the Galasa Ecosystem chart. + -_Note:_ The Galasa Ecosystem chart currently supports only x86-64 systems. It cannot be installed on ARM64-based systems. ## Role-based access control -If role-based access control (RBAC) is active on your Kubernetes cluster, a user with the `galasa-admin` role (or a role with equivalent permissions) is needed to run Helm commands on the cluster. This role allows assigned users to run the Helm install, upgrade, and delete commands to interact with the Helm chart. +If role-based access control (RBAC) is active on your Kubernetes cluster, a user with the `galasa-admin` role (or a role with equivalent permissions) is needed to run Helm commands on the cluster. The `galasa-admin` role allows assigned users to run the Helm install, upgrade, and delete commands to interact with the Helm chart. + +You can assign the `galasa-admin` role to a user by replacing the placeholder username in the rbac-admin.yaml file with a username that corresponds to a user with access to your cluster. If multiple users require admin privileges, you can assign the `galasa-admin` role to multiple groups, users, or ServiceAccounts by extending the subjects list. See the Using RBAC Authorization documentation for more information. -You can assign the `galasa-admin` role to a user by replacing the placeholder username in the rbac-admin.yaml file with the appropriate username. If multiple users require admin privileges, you can assign the `galasa-admin` role to multiple groups, users, or ServiceAccounts by extending the subjects list. See the Using RBAC Authorization documentation for more information. +You also need a Galasa service account. The Galasa service account allows the API, Engine Controller, Metrics, and Resource Monitor to co-ordinate between themselves, and also allows the Engine Controller to create and manage engine pods. -You also need to create a Galasa service account. The Galasa service account allows the API, Engine Controller, Metrics, and Resource Monitor to co-ordinate between themselves, and also allows the Engine Controller to create and manage engine pods. You can create the service account by applying the rbac.yaml file. +For chart versions later than `0.23.0`, the Galasa service account is automatically created when installing the ecosystem chart. A Galasa service account is created if one does not already exist, so the API, Engine Controller, Metrics, and Resource Monitor can coordinate, while allowing the Engine Controller to create and manage engine pods. For chart versions `0.23.0` and earlier, you must create the Galasa service account manually by running the following command in the repository's ecosystem directory: + ``` kubectl apply -f \ https://raw.githubusercontent.com/galasa-dev/helm/ecosystem-0.23.0/charts/ecosystem/rbac.yaml ``` -For chart versions later than `0.23.0`, the Galasa service account is automatically created when installing the ecosystem chart. ## Installing the Galasa Ecosystem -Complete the following steps to install the Galasa Ecosystem in a Kubernetes cluster by using Helm: +Complete the following steps to install the Galasa Ecosystem by using Helm: + +### Adding the Galasa repository 1. Add the Galasa repository by running the following command: ``` helm repo add galasa https://galasa-dev.github.io/helm ``` If the repository exists, run the ```helm repo update``` command to get the latest versions of the packages and then run ```helm search repo galasa``` to see the available charts.
- _Note:_ The Galasa Ecosystem Helm chart deploys three persistent volumes (PVs). If you need to provide a Kubernetes storage class for these PVs, download the `values.yaml` file and update the `storageClass` value in the file with the name of a valid StorageClass on your cluster. + _Note:_ The Galasa Ecosystem Helm chart deploys three persistent volumes (PVs). If you need to provide a Kubernetes storage class for these PVs, download the `values.yaml` file and update the `storageClass` value in the file with the name of a valid StorageClass on your cluster. If you are deploying to minikube, you can use the standard storage class created for you by minikube, but this is not required. 1. Download the values.yaml file and edit the values of the following properties: - - Set `galasaVersion` to a version of Galasa that you want to run. - - Set `externalHostname` to the DNS hostname or IP address of the Kubernetes node that is used to access the Galasa `NodePort` services. -1. Run the following command to install the Galasa Ecosystem chart: + - Set `galasaVersion` to a version of Galasa that you want to run. (See the [Releases](../../highlights) documentation for released versions). To ensure that each pod in the Ecosystem is running at the same level, do not use `latest` as the Galasa version. + - Set `externalHostname` to the DNS hostname or IP address of the Kubernetes node that is used to access the Galasa `NodePort` services. If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. + +After updating the `galasaVersion` and `externalHostname` values, complete the following instructions to set up Ingress for your Ecosystem. + +### Configuring Ingress + +By default, the Galasa Ecosystem Helm chart enables Ingress to reach services that are running within a Kubernetes cluster. To learn more about Ingress, see the Kubernetes Documentation. + +*Note:* If you are deploying to minikube and are using Ingress to expose services, ensure the NGINX Ingress controller is enabled by running the `minikube addons enable ingress` command. + +Assuming that your Ingress controller is set up on your Kubernetes cluster, configure the use of Ingress in your Ecosystem by completing the following updates to the values that are listed under the `ingress` section within your `values.yaml` file: + +1. Replace the `ingressClassName` value with the name of the IngressClass that is configured in your cluster. By default, `nginx` is used. +1. If you are using HTTPS, add a `tls` configuration within the `ingress` section, specifying the `hosts` list and a `secretName` value corresponding to the name of the Kubernetes Secret that contains your TLS private key and certificate. See the Kubernetes Documentation for information on how to set up TLS. + +After updating the values under the `ingress` section of your `values.yaml` file, complete the following instructions to configure Dex in your Ecosystem. + +### Configuring Dex + +**Note: The ecosystem chart's use of Dex is still under development and is subject to change.** + +In a future release, [Dex](https://dexidp.io) will be used to authenticate users attempting to interact with a Galasa Ecosystem. + +To configure Dex in your Ecosystem, complete the following steps to update your `values.yaml` file: + +1. Replace the hostname in your `issuer` value with the same hostname given in `externalHostname` and set the URI scheme to either `http` or `https`. For example: + + ```yaml + issuer: http:///dex + ``` + +2. Under the `staticClients` value, replace the example hostname given in the `redirectURIs` list with the value you provided in the `externalHostname`, and set the URI scheme to either `http` or `https`. For example: + + ```yaml + staticClients: + - id: galasa-webui + redirectURIs: + - 'http:///api/auth/callback' + name: 'Galasa Ecosystem Web UI' + secret: example-webui-client-secret + ``` +3. If you want to supply a client secret for the Galasa webui by using a Kubernetes Secret, replace the `secret` key in the `staticClients` section with `secretEnv` and supply the name of your Secret as a value within the `envFrom` section. For example, if you have a Secret called `my-webui-client-credentials` with a key called `WEBUI_CLIENT_SECRET` and a value representing a client secret, provide the following values: + + ```yaml + dex: + envFrom: + - secretRef: + name: my-webui-client-credentials + + # Other Dex-related values... + + config: + # Other Dex configuration values... + + staticClients: + - id: galasa-webui + redirectURIs: + - 'http:///auth/callback' + name: 'Galasa Ecosystem Web UI' + secretEnv: WEBUI_CLIENT_SECRET + ``` + +4. Optional. Update the `expiry` section to configure the expiry of JSON Web Tokens (JWTs) and refresh tokens issued by Dex. By default, JWTs expire 24 hours after being issued and refresh tokens remain valid unless they have not been used for one year. See the Dex documentation on [ID tokens](https://dexidp.io/docs/id-tokens) for information and available expiry settings. + +Next, you need to configure Dex to authenticate via a connector to authenticate with an upstream identity provider, for example, GitHub, Microsoft, or an LDAP server. For a full list of supported connectors, refer to the [Dex documentation](https://dexidp.io/docs/connectors). The following instructions explain how to configure Dex to authenticate through GitHub. + + +### Configuring authentication + +Complete the following steps to configure Dex to authenticate through GitHub: + + +1. Register an OAuth application in [GitHub](https://github.com/settings/applications/new), ensuring the callback URL of the application is set to your Dex `issuer` value, followed by `/callback`. For example, if your `issuer` value is `https://prod-ecosystem.galasa.dev/dex`, then your callback URL is `https://prod-ecosystem.galasa.dev/dex/callback`. + +2. Add a GitHub connector to your Dex configuration, providing the name of your GitHub organisation and any teams that you require users to be part of to be able to use your Ecosystem as follows: + + ```yaml + dex: + config: + # Other Dex configuration values... + + connectors: + - type: github + id: github + name: GitHub + config: + clientID: $GITHUB_CLIENT_ID + clientSecret: $GITHUB_CLIENT_SECRET + redirectURI: /callback + orgs: + - name: my-org + teams: + - my-team ``` + where `$GITHUB_CLIENT_ID` and `$GITHUB_CLIENT_SECRET` correspond to the registered OAuth application's client ID and secret. Also ensure that the `redirectURI` value is the same value that you provided when setting up your GitHub OAuth application in step 1. + + If you want to pull the client ID and secret values of your OAuth application from a Kubernetes Secret, create a Secret by running the following `kubectl` command, ensuring the Secret's keys match those given in the GitHub connector's `clientID` and `clientSecret` values without the leading `$` (i.e. `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` as shown in the following example): + + ```bash + kubectl create secret generic my-github-oauth-app-credentials \ + --from-literal=GITHUB_CLIENT_ID="myclientid" \ + --from-literal=GITHUB_CLIENT_SECRET="myclientsecret" + ``` + + When your Kubernetes Secret is created, you can supply the name of the Secret by using the `envFrom` value in your `values.yaml` file to mount the Secret as shown in the following example: + + ```yaml + dex: + envFrom: + - secretRef: + name: my-github-oauth-app-credentials + + config: + # Other Dex configuration values... + + connectors: + - type: github + id: github + name: GitHub + config: + clientID: $GITHUB_CLIENT_ID + clientSecret: $GITHUB_CLIENT_SECRET + redirectURI: /callback + orgs: + - name: my-org + teams: + - my-team + ``` + +By default, the Galasa Ecosystem Helm chart creates a Kubernetes Secret containing configuration details for Dex. If you want to apply your own Dex configuration as a Secret, your Dex configuration must be provided in a `config.yaml` key within the Secret, and the value of the `config.yaml` key must be a valid Dex configuration. + +For more information on configuring Dex, see the [Dex documentation](https://dexidp.io/docs). + +## Installing the chart + +After configuring your [values.yaml](charts/ecosystem/values.yaml) file, use the following command to install the Galasa Ecosystem Helm chart: + +1. Run the following command to install the Galasa Ecosystem chart: + ```console helm install -f /path/to/values.yaml galasa/ecosystem --wait ``` where:
- `/path/to/values.yaml` is the path to where the `values.yaml` file is downloaded and
- - `` is the name that you want to give the ecosystem.

+ - `` is the name that you want to give the Ecosystem.

The ```--wait``` flag ensures that the chart installation completes before marking it as `Deployed`. During the installation, the API pod waits for the etcd and RAS pods to initialise while the Engine-Controller, Metrics, and Resource-Monitor pods wait for the API pod to initialise. 1. View the status of the deployed pods by running `kubectl get pods` in another terminal. The returned results should look similar to the following example: - ``` + ```console NAME READY STATUS RESTARTS AGE test-api-7945f959dd-v8tbs 1/1 Running 0 65s test-engine-controller-56fb476f45-msj4x 1/1 Running 0 65s @@ -69,17 +214,48 @@ Complete the following steps to install the Galasa Ecosystem in a Kubernetes clu ``` -## Verifying the installation +## Verifying the installation -After the Helm install command completes with a successful deployment message, run the following command to check that the Ecosystem can be accessed externally to Kubernetes so that a simple test engine can be run: -``` +After the `helm install` command completes with a successful deployment message, run the following command to check that the Ecosystem can be accessed externally to Kubernetes so that a simple test engine can be run: +```console helm test ``` When the `helm test` command ends and displays a success message, the Ecosystem is set up correctly and is ready to be used. + +## Accessing services + +### Using Ingress + +When using Ingress, the URL of the Ecosystem bootstrap will be your external hostname, followed by `/api/bootstrap`. + +For example, if the external hostname that you provided was `example.com` and you provided values for using TLS, the bootstrap URL would be `https://example.com/api/bootstrap`. This is the URL that you would enter into a galasactl command's `--bootstrap` option to interact with your Ecosystem. + +If you have enabled Ingress and are deploying to minikube, add an entry to your `/etc/hosts` file, ensuring the IP address matches the output of `minikube ip`. For example: + +```console +192.168.49.2 example.com +``` + +### Using NodePorts + +To find the URL of the Ecosystem bootstrap, issue the command: + +```console +kubectl get svc +``` + +Look for the `api-external` service and the NodePort associated with the 8080 port. Combine that information with the external hostname that you provided to form the bootstrap URL. For example, the following snippet shows `30960` to be associated with port 8080: + +```console +test-api-external NodePort 10.107.160.208 9010:31359/TCP,9011:31422/TCP,8080:30960/TCP 18s +``` + +If the external hostname you provided was `example.com`, the bootstrap URL will be `http://example.com:30960/bootstrap`. You will enter this in a galasactl command's `--bootstrap` option. + ## Running Galasa tests -To reconfigure Galasa to point to the Galasa Ecosystem that you created, you need to edit the bootstrap. The bootstrap contains the information that Galasa needs to bring up a framework to connect to an ecosystem. To find the URL of the ecosystem bootstrap, run the following command: +To reconfigure Galasa to point to the Galasa Ecosystem that you created, you need to edit the bootstrap. The bootstrap contains the information that Galasa needs to bring up a framework to connect to an Ecosystem. To find the URL of the Ecosystem bootstrap, run the following command: ``` kubectl get svc ``` @@ -90,8 +266,6 @@ test-api-external NodePort 10.107.160.208 \ ``` Combine the information with the external hostname that you provided to form the bootstrap URL. For example, if the external hostname you provided was `example.com`, the bootstrap URL is `http://example.com:30960/boostrap`. -In Eclipse, you can edit the bootstrap by selecting *Eclipse > Preferences > Galasa* from the Eclipse menu. Alternatively, you can enter the bootstrap URL in the ```--bootstrap``` option of a `galasctl` command. - You can then deploy your Galasa tests to a Maven repository and set up a test stream. For more information on writing tests, see the Writing your own independent Galasa tests documentation. ## Upgrading the Galasa Ecosystem @@ -101,14 +275,14 @@ To upgrade the Galasa Ecosystem to use a newer version of Galasa, for example ve On Mac or Unix: -``` +```console helm upgrade galasa/ecosystem --reuse-values \ --set galasaVersion=0.31.0 --wait ``` On Windows (Powershell): -``` +```console helm upgrade galasa/ecosystem --reuse-values ` --set galasaVersion=0.31.0 --wait ``` @@ -117,9 +291,29 @@ where:
- `galasaVersion` is set to the version that you want to use and
- `` is the name that you gave the ecosystem during installation + +### Development + +To install the latest development version of the Galasa Ecosystem chart, clone the Galasa Helm repositoryand update the following values in your [values.yaml](charts/ecosystem/values.yaml) file: + +1. Set the `galasaVersion` value to `main` +2. Set the `galasaRegistry` value to `harbor.galasa.dev/galasadev` +3. Set the `externalHostname` value to the DNS hostname or IP address of the Kubernetes node that will be used to access the Galasa NodePort services. + * If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. + +Follow the installation instructions in the [Configuring Ingress](#configuring-ingress) section to update the rest of your `values.yaml` file, including values to configure Ingress and Dex. + +After updating your `values.yaml` file, run the following command, providing the path to the [`ecosystem`](./charts/ecosystem) directory in the helm repository, for example, `~/helm/charts/ecosystem`. + +```console +helm install /path/to/helm/charts/ecosystem --wait +``` + +When the `helm install` command ends with a successful deployment message, complete the installation instructions provided in the [Verifying the installation](#verifying-your-galasa-ecosystem-installation) section to test the deployed Ecosystem using `helm test` and determine the bootstrap URL. + ### Troubleshooting - Check the logs by running the ```kubectl logs``` command. -- Check the Galasa version number in the sample is correct by running the ```kubectl describe pod ``` command. If the version number is not the latest one, update the version number in the sample and apply the update. +- Check that the Galasa version number in the sample is correct by running the ```kubectl describe pod ``` command. If the version number is not the latest one, update the version number in the sample and apply the update. - If an 'unknown fields' error message is displayed, you can turn off validation by using the ```--validate=false``` command. diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg new file mode 100644 index 00000000..cbcffbe5 --- /dev/null +++ b/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg new file mode 100644 index 00000000..1fbf21e3 --- /dev/null +++ b/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg new file mode 100644 index 00000000..694c6fbb --- /dev/null +++ b/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg index 694c6fbb..e1a2d9f8 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg +++ b/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg @@ -1,55 +1,82 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg new file mode 100644 index 00000000..70ac3d83 --- /dev/null +++ b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg new file mode 100644 index 00000000..459056ed --- /dev/null +++ b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg index 459056ed..a24f6adb 100644 --- a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg +++ b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg @@ -1,83 +1,166 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From a759736b3569621d452300f7d3088d8172692712 Mon Sep 17 00:00:00 2001 From: Caroline McNamara Date: Mon, 5 Feb 2024 15:17:47 +0000 Subject: [PATCH 2/4] update helm and ecosystem installing and architecture --- src/data/nav.yaml | 8 +- .../cli-command-reference/runs-prepare.md | 2 +- .../docs/cli-command-reference/runs-submit.md | 2 +- .../docs/ecosystem/ecosystem-architecture.md | 4 +- .../ecosystem/ecosystem-installing-k8s.md | 88 ++++++++----------- .../docs/ecosystem/ecosystem-installing.md | 2 +- .../ecosystem/ecosystem-manage-cps-yaml.md | 2 +- 7 files changed, 49 insertions(+), 59 deletions(-) diff --git a/src/data/nav.yaml b/src/data/nav.yaml index 49456786..e8503ce2 100644 --- a/src/data/nav.yaml +++ b/src/data/nav.yaml @@ -103,17 +103,17 @@ items: - title: Ecosystem architecture path: /docs/ecosystem/architecture - - title: Installing the Ecosystem using Helm + - title: Installing an Ecosystem using Helm path: /docs/ecosystem/installing/k8s - title: Test streams path: /docs/writing-own-tests/test-streams - title: Managing integrated test runs path: /docs/ecosystem/ecosystem-manage-cps - - title: Configuring the Ecosystem using resource files + - title: Configuring an Ecosystem using resource files path: /docs/ecosystem/cps-yaml - - title: Selecting tests to run in the Ecosystem + - title: Selecting tests to run in an Ecosystem path: /docs/cli-command-reference/ecosystem-cli-runs-prepare - - title: Running tests in the Ecosystem + - title: Running tests in an Ecosystem path: /docs/cli-command-reference/ecosystem-cli-runs-submit - title: Viewing test run results path: /docs/cli-command-reference/cli-runs-get diff --git a/src/markdown-pages/docs/cli-command-reference/runs-prepare.md b/src/markdown-pages/docs/cli-command-reference/runs-prepare.md index 1c8b422b..3585f1a1 100644 --- a/src/markdown-pages/docs/cli-command-reference/runs-prepare.md +++ b/src/markdown-pages/docs/cli-command-reference/runs-prepare.md @@ -1,6 +1,6 @@ --- path: "/docs/cli-command-reference/ecosystem-cli-runs-prepare" -title: "Selecting tests to run in the Ecosystem" +title: "Selecting tests to run in an Ecosystem" --- If you have a group of tests that you want to run in batch, the simplest way to do this is by defining these tests inside a portfolio. You can create a portfolio of tests by using the `runs prepare` command. You can build the portfolio from single or multiple [test streams](https://galasa.dev/docs/writing-own-tests/test-streams). diff --git a/src/markdown-pages/docs/cli-command-reference/runs-submit.md b/src/markdown-pages/docs/cli-command-reference/runs-submit.md index 9175559e..801a3613 100644 --- a/src/markdown-pages/docs/cli-command-reference/runs-submit.md +++ b/src/markdown-pages/docs/cli-command-reference/runs-submit.md @@ -1,6 +1,6 @@ --- path: "/docs/cli-command-reference/ecosystem-cli-runs-submit" -title: "Running tests in the Ecosystem" +title: "Running tests in an Ecosystem" --- The `runs submit` command submits and monitors tests in the Galasa Ecosystem. Tests can be input either from a portfolio or directly from a test package. diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md index af32025c..287e6d2b 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md @@ -40,8 +40,8 @@ The following diagram highlights a some of the key components that make up the G | **Metrics Server** | The metrics server indicates the health of the ecosystem, for example, providing metrics on the number of successful test runs. | | **API Server** | The API server acts as a central point from which to control the Galasa Ecosystem and is used by Galasa as an endpoint with which IDEs and pipelines interact for submitting tests and retrieving results. The API server hosts the bootstrap server. | | **Bootstrap Server** | The bootstrap server is part of the API server. The bootstrap is an endpoint that is provided by the API server to store the initial configuration required to instantiate a Galasa framework. When setting up the Galasa Ecosystem, the Eclipse IDE must be updated to point to the bootstrap that is configured to use the ecosystem. | -| **Web UI** | The WebUI is currently under construction and planned for a future release. Use the WebUI to see a dashboard overview of the current and historical health of the Galasa framework. The UI can also run, schedule or reschedule tests, be used to analyse output from failed test runs, and manage the configuration needed to customise the framework and tests for maximum throughput, resilience and flexibility. | -| **LDAP authentication server (Optional)** | This server is planned for a future release to provide the ability to authenticate through an LDAP server. | +| **Galasa Web UI** | The Galasa Web UI is currently under construction and planned for a future release. Use the WebUI to see a dashboard overview of the current and historical health of the Galasa framework. The UI can also run, schedule or reschedule tests, be used to analyse output from failed test runs, and manage the configuration needed to customise the framework and tests for maximum throughput, resilience and flexibility. | +| **Dex** | The Galasa Ecosystem Helm chart's use of Dex is under development and is subject to change. In a future release, Dex will be used to authenticate users interacting with a Galasa Ecosystem. | diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md index dd0aec65..b78d9a4f 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md @@ -1,27 +1,25 @@ --- path: "/docs/ecosystem/installing/k8s" -title: "Installing the Ecosystem using Helm" +title: "Installing an Ecosystem using Helm" --- If you want to run scalable, highly available testing for enterprise level workloads, you need to install your Galasa Ecosystem in a Kubernetes cluster. Running Galasa in a Kubernetes cluster means that you can run many tests in parallel on a resilient and scalable platform, where the clean-up of test resources can be managed, and test results can be centralised and gathered easily. -Galasa provides a Galasa Ecosystem Helm chart to install a Galasa Ecosystem. You can install the chart into a Kubernetes cluster or minikube. However, note that minikube is not suitable for production purposes because it provides a single Kubernetes node and therefore does not scale well. Only use minikube for development and testing purposes. +Galasa provides a Galasa Ecosystem Helm chart to install a Galasa Ecosystem. You can install the chart into a Kubernetes cluster or minikube. However, note that minikube is not suitable for production purposes because it provides a single Kubernetes node and therefore does not scale well. Use minikube only for development and testing purposes. -The following sections explain how to install a Galasa Ecosystem on a Kubernetes cluster and on minikube by using Helm and how to validate that the Ecosystem is installed correctly. +The following sections explain how to install a Galasa Ecosystem on a Kubernetes cluster (and on minikube) by using Helm and validate that the Ecosystem is installed correctly. The Galasa Helm repository contains the Galasa Ecosystem Helm chart that is referenced in the following sections. _Note:_ The Galasa Ecosystem Helm chart currently supports only x86-64 systems. It cannot be installed on ARM64-based systems. -To find out more about Kubernetes, see the Kubernetes Documentation. - ## Prerequisites - Helm must be installed to use the chart. See the Helm documentation for installation instructions. -- The Kubernetes command-line tool *kubectl* must be installed on the machine that is used to run the commands and must be configured to point at your Kubernetes cluster. +- The Kubernetes command-line tool *kubectl* must be installed on the machine that is used to run the commands and must be configured to point at your Kubernetes cluster. To find out more about Kubernetes, see the Kubernetes Documentation. - You must have a Kubernetes cluster at version 1.16 or higher. You can check the version number by running the ```kubectl version``` command. -- If you would like to install the chart into minikube, ensure you have minikube installed and that it is running with `minikube status`. If minikube is not running, start it by running `minikube start`. Once minikube is running, follow the instructions in the sections below to install the Galasa Ecosystem chart. +- If you want to install the chart into minikube, ensure you have minikube installed and that it is running with `minikube status`. If minikube is not running, start it by running `minikube start`. Once minikube is running, follow the instructions in the following sections to install the Galasa Ecosystem Helm chart. @@ -29,11 +27,11 @@ To find out more about Kubernetes, see the rbac-admin.yaml file with a username that corresponds to a user with access to your cluster. If multiple users require admin privileges, you can assign the `galasa-admin` role to multiple groups, users, or ServiceAccounts by extending the subjects list. See the Using RBAC Authorization documentation for more information. +You can assign the `galasa-admin` role to a user by replacing the placeholder username in the rbac-admin.yaml file with a username that corresponds to a user with access to your cluster. If multiple users require admin privileges, you can assign the `galasa-admin` role to multiple groups, users, or service accounts by extending the subjects list. See the Using RBAC Authorization Kubernetes documentation for more information. -You also need a Galasa service account. The Galasa service account allows the API, Engine Controller, Metrics, and Resource Monitor to co-ordinate between themselves, and also allows the Engine Controller to create and manage engine pods. +You also need a Galasa service account. The Galasa service account allows the API, Engine Controller, Metrics, and Resource Monitor to co-ordinate between themselves, and allows the Engine Controller to create and manage engine pods. -For chart versions later than `0.23.0`, the Galasa service account is automatically created when installing the ecosystem chart. A Galasa service account is created if one does not already exist, so the API, Engine Controller, Metrics, and Resource Monitor can coordinate, while allowing the Engine Controller to create and manage engine pods. +For chart versions later than `0.23.0`, the Galasa service account is automatically created, if one does not already exist, when installing the Galasa Ecosystem Helm chart. The Galasa service account enables the API, Engine Controller, Metrics, and Resource Monitor to co-ordinate, while allowing the Engine Controller to create and manage engine pods. For chart versions `0.23.0` and earlier, you must create the Galasa service account manually by running the following command in the repository's ecosystem directory: @@ -43,21 +41,22 @@ https://raw.githubusercontent.com/galasa-dev/helm/ecosystem-0.23.0/charts/ecosys ``` -## Installing the Galasa Ecosystem +## Installing a Galasa Ecosystem -Complete the following steps to install the Galasa Ecosystem by using Helm: +Complete the following steps to install a Galasa Ecosystem by using Helm: ### Adding the Galasa repository -1. Add the Galasa repository by running the following command: - ``` - helm repo add galasa https://galasa-dev.github.io/helm - ``` - If the repository exists, run the ```helm repo update``` command to get the latest versions of the packages and then run ```helm search repo galasa``` to see the available charts.
- _Note:_ The Galasa Ecosystem Helm chart deploys three persistent volumes (PVs). If you need to provide a Kubernetes storage class for these PVs, download the `values.yaml` file and update the `storageClass` value in the file with the name of a valid StorageClass on your cluster. If you are deploying to minikube, you can use the standard storage class created for you by minikube, but this is not required. -1. Download the values.yaml file and edit the values of the following properties: - - Set `galasaVersion` to a version of Galasa that you want to run. (See the [Releases](../../highlights) documentation for released versions). To ensure that each pod in the Ecosystem is running at the same level, do not use `latest` as the Galasa version. - - Set `externalHostname` to the DNS hostname or IP address of the Kubernetes node that is used to access the Galasa `NodePort` services. If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. +1. Add or update the Galasa repository.
+ - If the repository does not exist, add the repository by running the following command: + ``` + helm repo add galasa https://galasa-dev.github.io/helm + ``` + - If the repository exists, run the ```helm repo update``` command to get the latest versions of the packages and then run ```helm search repo galasa``` to see the available charts.
+ _Note:_ The Galasa Ecosystem Helm chart deploys three persistent volumes (PVs). If you need to provide a Kubernetes storage class for these PVs, download the values.yaml file and update the `storageClass` value in the file with the name of a valid storage class on your cluster. If you are deploying to minikube, you can optionally use the standard storage class that is created for you by minikube, but this is not required. +1. Download the values.yaml file if you have not done so already, and edit the values of the following properties: + - Set `galasaVersion` to the version of Galasa that you want to run. (See the [Releases](../../highlights) documentation for released versions). To ensure that each pod in the Ecosystem is running at the same level, do not use `latest` as the Galasa version. + - Set `externalHostname` to the DNS hostname or IP address of the Kubernetes node that is used to access the Galasa NodePort services. If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. After updating the `galasaVersion` and `externalHostname` values, complete the following instructions to set up Ingress for your Ecosystem. @@ -98,7 +97,7 @@ To configure Dex in your Ecosystem, complete the following steps to update your name: 'Galasa Ecosystem Web UI' secret: example-webui-client-secret ``` -3. If you want to supply a client secret for the Galasa webui by using a Kubernetes Secret, replace the `secret` key in the `staticClients` section with `secretEnv` and supply the name of your Secret as a value within the `envFrom` section. For example, if you have a Secret called `my-webui-client-credentials` with a key called `WEBUI_CLIENT_SECRET` and a value representing a client secret, provide the following values: +3. If you want to supply a client secret for the Galasa Web UI by using a Kubernetes Secret, replace the `secret` key in the `staticClients` section with `secretEnv` and supply the name of your Secret as a value within the `envFrom` section. For example, if you have a Secret called `my-webui-client-credentials` with a key called `WEBUI_CLIENT_SECRET` and a value representing a client secret, provide the following values: ```yaml dex: @@ -121,7 +120,7 @@ To configure Dex in your Ecosystem, complete the following steps to update your 4. Optional. Update the `expiry` section to configure the expiry of JSON Web Tokens (JWTs) and refresh tokens issued by Dex. By default, JWTs expire 24 hours after being issued and refresh tokens remain valid unless they have not been used for one year. See the Dex documentation on [ID tokens](https://dexidp.io/docs/id-tokens) for information and available expiry settings. -Next, you need to configure Dex to authenticate via a connector to authenticate with an upstream identity provider, for example, GitHub, Microsoft, or an LDAP server. For a full list of supported connectors, refer to the [Dex documentation](https://dexidp.io/docs/connectors). The following instructions explain how to configure Dex to authenticate through GitHub. +You can now configure Dex to authenticate via a connector to authenticate with an upstream identity provider, for example, GitHub, Microsoft, or an LDAP server. For a full list of supported connectors, refer to the [Dex documentation](https://dexidp.io/docs/connectors). The following instructions explain how to configure Dex to authenticate through GitHub. ### Configuring authentication @@ -151,9 +150,9 @@ Complete the following steps to configure Dex to authenticate through GitHub: teams: - my-team ``` - where `$GITHUB_CLIENT_ID` and `$GITHUB_CLIENT_SECRET` correspond to the registered OAuth application's client ID and secret. Also ensure that the `redirectURI` value is the same value that you provided when setting up your GitHub OAuth application in step 1. + where `$GITHUB_CLIENT_ID` and `$GITHUB_CLIENT_SECRET` correspond to the registered OAuth application's client ID and secret. Ensure that the `redirectURI` value is the same value that you provided when setting up your GitHub OAuth application in step 1. - If you want to pull the client ID and secret values of your OAuth application from a Kubernetes Secret, create a Secret by running the following `kubectl` command, ensuring the Secret's keys match those given in the GitHub connector's `clientID` and `clientSecret` values without the leading `$` (i.e. `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` as shown in the following example): + If you want to pull the client ID and secret values of your OAuth application from a Kubernetes Secret, create a Secret by running the following `kubectl` command, ensuring that the Secret's keys match those given in the GitHub connector's `clientID` and `clientSecret` values without the leading `$` (i.e. `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` as shown in the following example): ```bash kubectl create secret generic my-github-oauth-app-credentials \ @@ -161,7 +160,7 @@ Complete the following steps to configure Dex to authenticate through GitHub: --from-literal=GITHUB_CLIENT_SECRET="myclientsecret" ``` - When your Kubernetes Secret is created, you can supply the name of the Secret by using the `envFrom` value in your `values.yaml` file to mount the Secret as shown in the following example: + When your Kubernetes Secret is created, supply the name of the Secret by using the `envFrom` value in your `values.yaml` file to mount the Secret as shown in the following example: ```yaml dex: @@ -192,16 +191,16 @@ For more information on configuring Dex, see the [Dex documentation](https://dex ## Installing the chart -After configuring your [values.yaml](charts/ecosystem/values.yaml) file, use the following command to install the Galasa Ecosystem Helm chart: +After configuring your `values.yaml` file, complete the following steps to install the Galasa Ecosystem Helm chart: -1. Run the following command to install the Galasa Ecosystem chart: +1. Install the Galasa Ecosystem chart by running the following command: ```console helm install -f /path/to/values.yaml galasa/ecosystem --wait ``` where:
- `/path/to/values.yaml` is the path to where the `values.yaml` file is downloaded and
- `` is the name that you want to give the Ecosystem.

- The ```--wait``` flag ensures that the chart installation completes before marking it as `Deployed`. During the installation, the API pod waits for the etcd and RAS pods to initialise while the Engine-Controller, Metrics, and Resource-Monitor pods wait for the API pod to initialise. + The ```--wait``` flag ensures that the chart installation completes before marking it as `Deployed`. During the installation, the API pod waits for the etcd and RAS pods to initialise while the Engine Controller, Metrics, and Resource Monitor pods wait for the API pod to initialise. 1. View the status of the deployed pods by running `kubectl get pods` in another terminal. The returned results should look similar to the following example: ```console NAME READY STATUS RESTARTS AGE @@ -220,6 +219,11 @@ After the `helm install` command completes with a successful deployment message, ```console helm test ``` + +where: + + is the name that you gave the Ecosystem during installation + When the `helm test` command ends and displays a success message, the Ecosystem is set up correctly and is ready to be used. @@ -237,21 +241,6 @@ If you have enabled Ingress and are deploying to minikube, add an entry to your 192.168.49.2 example.com ``` -### Using NodePorts - -To find the URL of the Ecosystem bootstrap, issue the command: - -```console -kubectl get svc -``` - -Look for the `api-external` service and the NodePort associated with the 8080 port. Combine that information with the external hostname that you provided to form the bootstrap URL. For example, the following snippet shows `30960` to be associated with port 8080: - -```console -test-api-external NodePort 10.107.160.208 9010:31359/TCP,9011:31422/TCP,8080:30960/TCP 18s -``` - -If the external hostname you provided was `example.com`, the bootstrap URL will be `http://example.com:30960/bootstrap`. You will enter this in a galasactl command's `--bootstrap` option. ## Running Galasa tests @@ -289,27 +278,28 @@ helm upgrade galasa/ecosystem --reuse-values ` where:
- `galasaVersion` is set to the version that you want to use and
-- `` is the name that you gave the ecosystem during installation +- `` is the name that you gave to the Ecosystem during installation ### Development -To install the latest development version of the Galasa Ecosystem chart, clone the Galasa Helm repositoryand update the following values in your [values.yaml](charts/ecosystem/values.yaml) file: +To install the latest development version of the Galasa Ecosystem Helm chart, clone the Galasa Helm repository and update the following values in your [values.yaml](charts/ecosystem/values.yaml) file: 1. Set the `galasaVersion` value to `main` 2. Set the `galasaRegistry` value to `harbor.galasa.dev/galasadev` 3. Set the `externalHostname` value to the DNS hostname or IP address of the Kubernetes node that will be used to access the Galasa NodePort services. - * If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. + +If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. Follow the installation instructions in the [Configuring Ingress](#configuring-ingress) section to update the rest of your `values.yaml` file, including values to configure Ingress and Dex. -After updating your `values.yaml` file, run the following command, providing the path to the [`ecosystem`](./charts/ecosystem) directory in the helm repository, for example, `~/helm/charts/ecosystem`. +After updating your `values.yaml` file, run the following command, providing the path to the ecosystem directory in the helm repository, for example, `~/helm/charts/ecosystem`. ```console helm install /path/to/helm/charts/ecosystem --wait ``` -When the `helm install` command ends with a successful deployment message, complete the installation instructions provided in the [Verifying the installation](#verifying-your-galasa-ecosystem-installation) section to test the deployed Ecosystem using `helm test` and determine the bootstrap URL. +When the `helm install` command completes with a successful deployment message, follow the installation instructions that are provided in the [Verifying the installation](#verifying-your-galasa-ecosystem-installation) section to test the deployed Ecosystem using `helm test` and determine the bootstrap URL. ### Troubleshooting diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-installing.md b/src/markdown-pages/docs/ecosystem/ecosystem-installing.md index 76964e5c..d6cfd564 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-installing.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-installing.md @@ -1,6 +1,6 @@ --- path: "/docs/ecosystem/installing" -title: "Installing the Galasa Ecosystem on Docker" +title: "Installing a Galasa Ecosystem on Docker" --- diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-manage-cps-yaml.md b/src/markdown-pages/docs/ecosystem/ecosystem-manage-cps-yaml.md index 02915ade..cdafee9d 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-manage-cps-yaml.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-manage-cps-yaml.md @@ -1,6 +1,6 @@ --- path: "/docs/ecosystem/cps-yaml" -title: "Configuring the Ecosystem using resource files" +title: "Configuring an Ecosystem using resource files" --- You might want to create or update a number of different Galasa properties and associated values at the same time, for example to configure a different Galasa Ecosystem. A good way to do this is by using a yaml file containing property resources and associated values to set the configuration of your Ecosystem. From 9e59ecb4fcd812b5644d56dad0ff6a3e3885837e Mon Sep 17 00:00:00 2001 From: Caroline McNamara Date: Mon, 5 Feb 2024 16:15:45 +0000 Subject: [PATCH 3/4] fix links --- .../docs/ecosystem/ecosystem-installing-k8s.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md index b78d9a4f..793b604c 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md @@ -55,7 +55,7 @@ Complete the following steps to install a Galasa Ecosystem by using Helm: - If the repository exists, run the ```helm repo update``` command to get the latest versions of the packages and then run ```helm search repo galasa``` to see the available charts.
_Note:_ The Galasa Ecosystem Helm chart deploys three persistent volumes (PVs). If you need to provide a Kubernetes storage class for these PVs, download the values.yaml file and update the `storageClass` value in the file with the name of a valid storage class on your cluster. If you are deploying to minikube, you can optionally use the standard storage class that is created for you by minikube, but this is not required. 1. Download the values.yaml file if you have not done so already, and edit the values of the following properties: - - Set `galasaVersion` to the version of Galasa that you want to run. (See the [Releases](../../highlights) documentation for released versions). To ensure that each pod in the Ecosystem is running at the same level, do not use `latest` as the Galasa version. + - Set `galasaVersion` to the version of Galasa that you want to run. (See the [Releases](/releases) documentation for released versions). To ensure that each pod in the Ecosystem is running at the same level, do not use `latest` as the Galasa version. - Set `externalHostname` to the DNS hostname or IP address of the Kubernetes node that is used to access the Galasa NodePort services. If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. After updating the `galasaVersion` and `externalHostname` values, complete the following instructions to set up Ingress for your Ecosystem. @@ -77,7 +77,7 @@ After updating the values under the `ingress` section of your `values.yaml` file **Note: The ecosystem chart's use of Dex is still under development and is subject to change.** -In a future release, [Dex](https://dexidp.io) will be used to authenticate users attempting to interact with a Galasa Ecosystem. +In a future release, Dex will be used to authenticate users attempting to interact with a Galasa Ecosystem. To configure Dex in your Ecosystem, complete the following steps to update your `values.yaml` file: @@ -118,9 +118,9 @@ To configure Dex in your Ecosystem, complete the following steps to update your secretEnv: WEBUI_CLIENT_SECRET ``` -4. Optional. Update the `expiry` section to configure the expiry of JSON Web Tokens (JWTs) and refresh tokens issued by Dex. By default, JWTs expire 24 hours after being issued and refresh tokens remain valid unless they have not been used for one year. See the Dex documentation on [ID tokens](https://dexidp.io/docs/id-tokens) for information and available expiry settings. +4. Optional. Update the `expiry` section to configure the expiry of JSON Web Tokens (JWTs) and refresh tokens issued by Dex. By default, JWTs expire 24 hours after being issued and refresh tokens remain valid unless they have not been used for one year. See the Dex documentation on ID tokens for information and available expiry settings. -You can now configure Dex to authenticate via a connector to authenticate with an upstream identity provider, for example, GitHub, Microsoft, or an LDAP server. For a full list of supported connectors, refer to the [Dex documentation](https://dexidp.io/docs/connectors). The following instructions explain how to configure Dex to authenticate through GitHub. +You can now configure Dex to authenticate via a connector to authenticate with an upstream identity provider, for example, GitHub, Microsoft, or an LDAP server. For a full list of supported connectors, refer to the Dex documentation. The following instructions explain how to configure Dex to authenticate through GitHub. ### Configuring authentication @@ -187,7 +187,7 @@ Complete the following steps to configure Dex to authenticate through GitHub: By default, the Galasa Ecosystem Helm chart creates a Kubernetes Secret containing configuration details for Dex. If you want to apply your own Dex configuration as a Secret, your Dex configuration must be provided in a `config.yaml` key within the Secret, and the value of the `config.yaml` key must be a valid Dex configuration. -For more information on configuring Dex, see the [Dex documentation](https://dexidp.io/docs). +For more information on configuring Dex, see the Dex documentation. ## Installing the chart @@ -283,7 +283,7 @@ where:
### Development -To install the latest development version of the Galasa Ecosystem Helm chart, clone the Galasa Helm repository and update the following values in your [values.yaml](charts/ecosystem/values.yaml) file: +To install the latest development version of the Galasa Ecosystem Helm chart, clone the Galasa Helm repository and update the following values in your `values.yaml`file: 1. Set the `galasaVersion` value to `main` 2. Set the `galasaRegistry` value to `harbor.galasa.dev/galasadev` From 0894b179a2e0da02621167f9fb5389e75b52c1c3 Mon Sep 17 00:00:00 2001 From: Caroline McNamara Date: Tue, 6 Feb 2024 15:21:56 +0000 Subject: [PATCH 4/4] review updates --- .../docs/ecosystem/ecosystem-architecture.md | 4 +- .../ecosystem/ecosystem-installing-k8s.md | 22 +- .../docs/ecosystem/ecosystem-overview-lbo.svg | 80 ----- .../docs/ecosystem/ecosystem-overview-new.svg | 63 ++-- .../docs/ecosystem/ecosystem-overview-o.svg | 55 ---- .../docs/ecosystem/ecosystem-overview.svg | 82 ----- .../galasa-ecosystem-architecture-new.svg | 300 +++++++++--------- .../galasa-ecosystem-architecture-o.svg | 83 ----- .../galasa-ecosystem-architecture.svg | 166 ---------- 9 files changed, 187 insertions(+), 668 deletions(-) delete mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg delete mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg delete mode 100644 src/markdown-pages/docs/ecosystem/ecosystem-overview.svg delete mode 100644 src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg delete mode 100644 src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md index 287e6d2b..ed6f33a7 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-architecture.md @@ -3,14 +3,14 @@ path: "/docs/ecosystem/architecture" title: "Ecosystem Architecture" --- -The following diagram provides a high-level representation of the Galasa Ecosystem architecture:

![Galasa ecosystem architecture:](ecosystem-overview.svg) +The following diagram provides a high-level representation of the Galasa Ecosystem architecture:

![Galasa ecosystem architecture:](ecosystem-overview-new.svg)
The Ecosystem is made up of a collection of microservices for orchestrating runtimes, monitoring tests and resources, and providing clean-up of those resources if required. The Ecosystem provides a centralized store for run configurations, a single location for storing all test results and test artifacts, and utilizes a REST endpoint that can be called from any IDE or pipeline. ### Key components: -The following diagram highlights a some of the key components that make up the Galasa Ecosystem and examples of external resources with which Galasa can interact: ![Galasa ecosystem:](galasa-ecosystem-architecture.svg) +The following diagram highlights a some of the key components that make up the Galasa Ecosystem and examples of external resources with which Galasa can interact: ![Galasa ecosystem:](galasa-ecosystem-architecture-new.svg)
Expand the following sections to find out more about the key components of the Galasa Ecosystem: diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md index 793b604c..ccb18a70 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md +++ b/src/markdown-pages/docs/ecosystem/ecosystem-installing-k8s.md @@ -75,7 +75,7 @@ After updating the values under the `ingress` section of your `values.yaml` file ### Configuring Dex -**Note: The ecosystem chart's use of Dex is still under development and is subject to change.** +**Note: The Ecosystem chart's use of Dex is still under development and is subject to change.** In a future release, Dex will be used to authenticate users attempting to interact with a Galasa Ecosystem. @@ -281,26 +281,6 @@ where:
- `` is the name that you gave to the Ecosystem during installation -### Development - -To install the latest development version of the Galasa Ecosystem Helm chart, clone the Galasa Helm repository and update the following values in your `values.yaml`file: - -1. Set the `galasaVersion` value to `main` -2. Set the `galasaRegistry` value to `harbor.galasa.dev/galasadev` -3. Set the `externalHostname` value to the DNS hostname or IP address of the Kubernetes node that will be used to access the Galasa NodePort services. - -If you are deploying to minikube, the cluster's IP address can be retrieved by running `minikube ip`. - -Follow the installation instructions in the [Configuring Ingress](#configuring-ingress) section to update the rest of your `values.yaml` file, including values to configure Ingress and Dex. - -After updating your `values.yaml` file, run the following command, providing the path to the ecosystem directory in the helm repository, for example, `~/helm/charts/ecosystem`. - -```console -helm install /path/to/helm/charts/ecosystem --wait -``` - -When the `helm install` command completes with a successful deployment message, follow the installation instructions that are provided in the [Verifying the installation](#verifying-your-galasa-ecosystem-installation) section to test the deployed Ecosystem using `helm test` and determine the bootstrap URL. - ### Troubleshooting - Check the logs by running the ```kubectl logs``` command. diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg deleted file mode 100644 index cbcffbe5..00000000 --- a/src/markdown-pages/docs/ecosystem/ecosystem-overview-lbo.svg +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg index 1fbf21e3..fda4f00d 100644 --- a/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg +++ b/src/markdown-pages/docs/ecosystem/ecosystem-overview-new.svg @@ -1,30 +1,35 @@ - - + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - + + + @@ -38,12 +43,12 @@ - - - - + + + + - + @@ -53,7 +58,7 @@ - + diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg deleted file mode 100644 index 694c6fbb..00000000 --- a/src/markdown-pages/docs/ecosystem/ecosystem-overview-o.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg b/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg deleted file mode 100644 index e1a2d9f8..00000000 --- a/src/markdown-pages/docs/ecosystem/ecosystem-overview.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg index 70ac3d83..0ea010ff 100644 --- a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg +++ b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-new.svg @@ -1,166 +1,166 @@ - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg deleted file mode 100644 index 459056ed..00000000 --- a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture-o.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg b/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg deleted file mode 100644 index a24f6adb..00000000 --- a/src/markdown-pages/docs/ecosystem/galasa-ecosystem-architecture.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -