Skip to content

Commit

Permalink
Merge branch 'next' into enablepublishpr
Browse files Browse the repository at this point in the history
  • Loading branch information
CaroMac authored Mar 26, 2024
2 parents a0e697f + 86abec7 commit a58a628
Show file tree
Hide file tree
Showing 36 changed files with 512 additions and 132 deletions.
2 changes: 2 additions & 0 deletions src/data/nav.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@
path: /docs/cli-command-reference/cli-runs-get
- title: Downloading test artifacts
path: /docs/cli-command-reference/ecosystem-cli-runs-download
- title: Updating credentials in an Ecosystem
path: /docs/ecosystem/ecosystem-update-creds
- title: Upgrading
path: /docs/upgrading
- title: Managers
Expand Down
151 changes: 151 additions & 0 deletions src/markdown-pages/docs/ecosystem/ecosystem-update-creds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
path: "/docs/ecosystem/ecosystem-update-creds"
title: "Updating credentials in an Ecosystem"
---

It is likely that a test will need to pass credentials to the application being tested. For example, as HTTP credentials or as username and password values entered onto a 3270 screen. In a Galasa Ecosystem the credentials store (CREDS), which is hosted in the etcd server, securely provides the credentials (for example, password, username, and personal access token) that are required for a test to run in automation.

You can set a username, password, or token in the CREDS by using a Visual Studio Code (VS Code) Kubernetes extension or by using the command line. The ability to set these properties means that you can supply test cases with the credentials and tokens that they need to run. To set these credentials you must have permission to access the CREDS pod on a Galasa Ecosystem. You can then use the etcdctl tool to manipulate the etcd server values in a [namespace](../ecosystem/ecosystem-manage-cps).

The following examples show how you can update the CREDS. In these examples, the CREDS pod is called `creds` and the namespace is `galasa-ecosystem`.


## Logging into the CREDS pod by using the VSCode Kubernetes extension

Complete the following steps to log into the CREDS pod using the VS Code Kubernetes extension.

1. In the VSCode Kubernetes extension, confirm that the tool is pointing at the Kubernetes cluster that hosts your Galasa Ecosystem. If it is not, you can select the cluster by navigating to `Clusters`, right-clicking the cluster you need, and selecting `Set as Current Cluster`.
2. Set your namespace to `galasa-ecosystem` by navigating to `Namespaces`, right-clicking the namespace and selecting `Use Namespace`.
3. Go to your Pods by navigating to `Workloads`>`Pods`.
4. Exec on to the `creds` pod by right-clicking the pod and selecting `Terminal`, or by selecting the `Terminal` icon. A shell of the `creds` pod opens in VSCode.


## Logging into the CREDS pod by using the command line

1. Open a terminal and on the command line, exec into your `creds` pod:
```
kubectl exec -it creds -n galasa-ecosystem -- /bin/sh
```


## Configuring credentials in the CREDS pod

Once you are shelled into your `creds` pod you can configure credentials by using the `etcdctl` command line tool to interact with the etcd server.

First, set the `etcd` version by running the following command:
```
export ETCDCTL_API=3
```

You can then use the following `etcdctl` commands in your CREDS pod to help you to configure your credentials.


### Retrieve all credentials

To retrieve all credentials, run the following command:
```
etcdctl get --prefix ""
```

### Retrieve all credentials with a specified prefix

To retrieve all credentials with a specified prefix, use the following example command:
```
etcdctl get --prefix "{myprefix}"
```
where `{myprefix}` is the value that you want the returned credentials to start with.

For example, to view all credentials that start with `secure.credentials.SIMBANK`, run the following command:
```
etcdctl get --prefix "secure.credentials.SIMBANK"
```
The following example shows the returned credentials:
```
/ # etcdctl get --prefix "secure.credentials.SIMBANK"
secure.credentials.SIMBANK.password
SYS1
secure.credentials.SIMBANK.username
IBMUSER
```

### Retrieve a specific credential

To retrieve a specific credential, use the following example command:
```
etcdctl get {key}
```
where `{key}` is the name of the credential that you want returned

For example, to retrieve the credential `secure.credentials.SIMBANK.username`, run the following command:

```
etcdctl get --prefix "secure.credentials.SIMBANK.username"
```

The following example shows the returned credential:

```
/ # etcdctl get secure.credentials.SIMBANK.username
secure.credentials.SIMBANK.username
IBMUSER
```

### Create or update a credential

To retrieve a specific credential, use the following example command:

```
etcdctl put {key} {value}
```

where:<br>
`{key}` is the name of the credential that you want to update and<br>
`{value}` is the value that you want to give to that credential

For example, to update the credential `secure.credentials.SIMBANK.username` with a value of `NEWUSER`, run the following command:

```
etcdctl put secure.credentials.SIMBANK.username NEWUSER
```

The following example shows a successful response:
```
/ # etcdctl put secure.credentials.SIMBANK.username NEWUSER
OK
```


### Delete a credential

To delete a specific credential, use the following example command:

```
etcdctl del {key}
```

where:
`{key}` is the name of the credential that you want to delete


For example, to delete the credential `secure.credentials.SIMBANK.username`, run the following command:

```
etcdctl del secure.credentials.SIMBANK.username
```

The following example shows a successful response:
```
/ # etcdctl del secure.credentials.SIMBANK.username
1
```

If the credential does not exist, a value of `0` rather than `1` is returned in the response.

### Exit the shell

To exit the shell, simply run:
```
exit
```

Updated credentials are now available for a test to run in automation on a Galasa Ecosystem.
13 changes: 9 additions & 4 deletions src/markdown-pages/docs/managers/artifact-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@ path: "/docs/managers/artifact-manager"
title: "Artifact Manager"
---

**Release**
This Manager is at Release level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/artifact/package-summary.html" target="_blank" rel="noopener noreferrer">Javadoc documentation for the Manager here</a>.<br>

## Overview
This Manager allows a test to access files that are stored within the same bundle as the test code itself. Helper methods are provided to stream and substitute symbolics within the loaded file. <br><br> You can view the <a href="https://javadoc.galasa.dev/dev/galasa/artifact/package-summary.html">Javadoc documentation for this Manager here</a>. <br><br>

[Overview](#overview)<br>
[Code snippets and examples](#codesnippets)<br>


# <a name="overview"></a>Overview

## Code snippets
This Manager allows a test to access files that are stored within the same bundle as the test code itself. Helper methods are provided to stream and substitute symbolics within the loaded file. <br><br>



## <a name="codesnippets"></a>Code snippets

Use the following code snippets to help you get started with the Artifact Manager.

Expand Down
15 changes: 10 additions & 5 deletions src/markdown-pages/docs/managers/cics-ts-ceci-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@ path: "/docs/managers/cics-ts-ceci-manager"
title: "CICS TS CECI Manager"
---

**Release**
This Manager is at Release level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/cicsts/package-summary.html" target="_blank" rel="noopener noreferrer">Javadoc documentation for the Manager here</a>.<br>

## Overview
This Manager allows Galasa tests to issue CICS/TS CECI commands.<br><br> Use the command-level interpreter (CECI) Manager to request a CECI instance in a Galasa test, issue basic CECI commands which can be processed interactively on a 3270 screen and retrieve results. Examples of using this Manager can include writing data to a temporary storage queue, linking to a CICS program or retrieving the signed on user id. <br><br> You can view the <a href="https://javadoc.galasa.dev/dev/galasa/cicsts/package-summary.html" target="_blank" rel="noopener noreferrer"> Javadoc documentation here</a>. <br><br>
[Overview](#overview)<br>
[Provided annotation](#annotations)<br>
[Code snippets and examples](#codesnippets)<br>


## Annotations
# <a name="overview"></a>Overview
This Manager allows Galasa tests to issue CICS/TS CECI commands.<br><br> Use the command-level interpreter (CECI) Manager to request a CECI instance in a Galasa test, issue basic CECI commands which can be processed interactively on a 3270 screen and retrieve results. Examples of using this Manager can include writing data to a temporary storage queue, linking to a CICS program or retrieving the signed on user id. <br><br>


## <a name="annotations"></a>Provided annotation

The following annotations are available with the CICS TS CECI Manager
<details>
Expand All @@ -26,7 +31,7 @@ The following annotations are available with the CICS TS CECI Manager



## Code snippets
## <a name="codesnippets"></a>Code snippets

Use the following code snippets to help you get started with the CICS TS CECI Manager.

Expand Down
58 changes: 48 additions & 10 deletions src/markdown-pages/docs/managers/cics-ts-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,68 @@ path: "/docs/managers/cics-ts-manager"
title: "CICS TS Manager"
---

**Alpha - This Manager is being actively developed. It is subject to change and has not been extensively tested.**
This Manager is at Alpha level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/cicsts/package-summary.html" target="_blank" rel="noopener noreferrer">Javadoc documentation for the Manager here</a>.<br>

## Overview
This manager provides Galasa tests to CICS/TS functions.<br><br>

[Overview](#overview)<br>
[Configuring](#configuring)<br>
[Provided annotation](#annotations)<br>
[Code snippets and examples](#codesnippets)<br>


# <a name="overview"></a>Overview

This Manager provides Galasa tests to CICS/TS functions.

## Configuration Properties
## Testing CICS Regions on z/OS

The following are properties used to configure the CICS TS Manager.
To connect your Galasa test to a developer supplied environment with a provisioned CICS region as a minimum you need to configure the following properties for the CICS TS Manager:


```
cicsts.provision.type=dse
cicsts.dse.tag.[TAG].applid=[APPLID]
```

You also need to configure the following properties for the [z/OS Manager](zos-manager) as a minimum to connect to a CICS region, even if you do not reference a `@ZosImage` in your Galasa test. This is because CICS regions sit on a z/OS LPAR, and so to provision and connect to a CICS region in a test, you also need access to the z/OS image that it sits within to make requests on the CICS region. You might need to configure additional z/OS-related CPS properties, depending on your test.

```
zos.dse.tag.PRIMARY.imageid=[IMAGEID] OR zos.cluster.[clusterId].images=[IMAGEID]
zos.image.[IMAGEID].ipv4.hostname=[IP ADDRESS]
zos.image.[IMAGEID].credentials=[CREDENTIALID]
```


## <a name="configuring"></a>Configuration Properties

The following are properties that are used to configure the CICS TS Manager in the CPS.


<details>
<summary>Developer Supplied Environment - CICS TS Region - Type</summary>

| Property: | Developer Supplied Environment - CICS TS Region - Type |
| --------------------------------------- | :------------------------------------- |
| Name: | cicsts.provision.type |
| Description: | Provides the type of the CICS TS region for the DSE provisioner. The type setting is mandatory for a DSE region. |
| Required: | Yes if you want a DSE region, otherwise not required. You must set this property if you are using the <code>cicsts.dse.tag.[TAG].applid</code> property. |
| Default value: | None |
| Valid values: | dse|
| Examples: | <<code>cicsts.provision.type=dse</code><br> |

</details>

<details>
<summary>Developer Supplied Environment - CICS TS Region - Applid</summary>

| Property: | Developer Supplied Environment - CICS TS Region - Applid |
| --------------------------------------- | :------------------------------------- |
| Name: | cicsts.dse.tag.[TAG].applid |
| Description: | Provides the applid of the CICS TS region for the DSE provisioner. The applid setting is mandatory for a DSE region. |
| Required: | Yes if you want a DSE region, otherwide not required |
| Description: | Provides the applid of the CICS TS region for the DSE provisioner. The applid setting is mandatory for a DSE region. If you are using this property, you must also set the <code>cicsts.provision.type</code> property to specify the CICS TS region type to be `dse`. For example, <code>cicsts.provision.type=dse</code>.|
| Required: | Yes if you want a DSE region, otherwise not required. |
| Default value: | None |
| Valid values: | A value VTAM applid |
| Examples: | <code>cicsts.dse.tag.PRIMARY.applid=CICS1A</code><br> |
| Examples: | <code>cicsts.dse.tag.PRIMARY.applid=CICS1A</code><br> |

</details>

Expand All @@ -50,9 +88,9 @@ The following are properties used to configure the CICS TS Manager.
| Property: | Extra bundles required to implement the CICS TS Manager |
| --------------------------------------- | :------------------------------------- |
| Name: | cicsts.extra.bundles |
| Description: | The symbolic names of any bundles that need to be loaded with the CICS TS Manager |
| Description: | The symbolic names of any bundles that need to be loaded<br> with the CICS TS Manager. |
| Required: | No |
| Default value: | dev.galasa.cicsts.ceci.manager,dev.galasa.cicsts.ceda.manager,dev.galasa.cicsts.cemt.manager |
| Default value: | dev.galasa.cicsts.ceci.manager,dev.galasa.cicsts.ceda.manager,<br>dev.galasa.cicsts.cemt.manager |
| Valid values: | bundle symbolic names comma separated |
| Examples: | <code>cicsts.extra.bundles=org.example.cicsts.provisioning</code><br> |

Expand Down
3 changes: 2 additions & 1 deletion src/markdown-pages/docs/managers/core-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ path: "/docs/managers/core-manager"
title: "Core Manager"
---

This Manager is at Release level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/github/package-summary.html">Javadoc documentation for the Manager here</a>.<br>
This Manager is at Release level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/core/manager/package-summary.html" target="_blank" rel="noopener noreferrer">Javadoc documentation for the Manager here</a>.<br>



[Overview](#overview)<br>
Expand Down
21 changes: 15 additions & 6 deletions src/markdown-pages/docs/managers/docker-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,25 @@ path: "/docs/managers/docker-manager"
title: "Docker Manager"
---

**Release**
This Manager is at Release level. You can view the <a href="https://javadoc.galasa.dev/dev/galasa/docker/package-summary.html" target="_blank" rel="noopener noreferrer">Javadoc documentation for the Manager here</a>.<br>



[Overview](#overview)<br>
[Provided annotation](#annotations)<br>
[Code snippets and examples](#codesnippets)<br>
[Configuring](#configuring)<br>


# <a name="overview"></a>Overview

## Overview
This Manager enables tests to run Docker Containers on a Docker Engine provided by the Galasa infrastructure, making it easy to write tests that consume container-based services. The test does not need to worry about where the Docker infrastructure is, its credentials, or its capacity as this is all handled by the Manager. <br><br> The Docker Manager can be used by other Managers as a base for their own services. For example, the JMeter Manager can run a JMeter service inside a Docker Container. Using the Docker Manager in this way means that the test or administration team do not need to create dedicated JMeter resources. <br><br> Containers that are provided by the Docker Manager can be used to either drive workload for the application under test, or to receive workload from the application. The Docker Manager can also be used to monitor the test or to provide a security context like OpenLDAP. Docker Containers provide a powerful tool in helping test applications in an integrated environment. <br><br> The Docker Manager supports Galasa Shared Environments. Shared Environments provide the ability to create a test environment that can be shared across multiple test runs so you don't have to provision a test environment for each test.

## Limitations
The Docker Manager supports only AMD64 platforms. It is planned to expand the capability to S390x. <br><br> The Docker Manager currently supports only a single Docker Engine. It is planned to allow multiple Docker Engines to be configured.<br><br> You can view the <a href="https://javadoc.galasa.dev/dev/galasa/docker/package-summary.html">Javadoc documentation for the Manager here</a>. <br><br>
The Docker Manager supports only AMD64 platforms. It is planned to expand the capability to S390x. <br><br> The Docker Manager currently supports only a single Docker Engine. It is planned to allow multiple Docker Engines to be configured.<br><br>


## Annotations
## <a name="annotations"></a>Annotations

The following annotations are available with the Docker Manager
<details>
Expand Down Expand Up @@ -61,7 +70,7 @@ The following annotations are available with the Docker Manager



## Code snippets
## <a name="codesnippets"></a>Code snippets

Use the following code snippets to help you get started with the Docker Manager.

Expand Down Expand Up @@ -134,7 +143,7 @@ String log = httpContainer.getStdOut();
</details>


## Configuration Properties
## <a name="configuring"></a>Configuration Properties

The following are properties used to configure the Docker Manager.

Expand Down
13 changes: 9 additions & 4 deletions src/markdown-pages/docs/managers/elasticlog-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@ path: "/docs/managers/elasticlog-manager"
title: "ElasticLog Manager"
---

**ALPHA - This Manager is being actively developed. It is subject to change and has not been extensively tested. It is available for Galasa administrators to utilise to experiment with Elasticsearch and Kibana dashboards**
This Manager is at Alpha level. <br>

## Overview

[Overview](#overview)<br>
[Configuring](#configuring)<br>


# <a name="overview"></a>Overview
This Manager exports test results to an elastic search endpoint, where the data can be visualized on a Kibana dashboard. Other Managers can contribute to the information that is exported to Elastic. <br><br> As an absolute minimum, the CPS properties <br> <code>elasticlog.endpoint.address</code><br>and<br><code>elasticlog.endpoint.index</code><br> must be provided. By default, this Manager only logs automated tests. To enable logging from locally run tests, <br> <code>elasticlog.local.run.log</code> must be set to true.<br> The bundle must also be loaded by the framework by using<br> <code>framework.extra.bundles=dev.galasa.elasticlog.manager</code><br> in bootstrap.properties. <br><br> This Manager provides two ElasticSearch indexes; one of all test data, and one of the latest run for each test case and each test environment.

## Limitations
The Manager logs the following test information:<br> <br> - testCase<br> - runId<br> - startTimestamp<br> - endTimestamp<br> - requestor<br> - result<br> - testTooling<br> - testType<br> - testingEnvironment<br> - productRelease<br> - buildLevel<br> - customBuild<br> - testingAreas<br> - tags<br> <br> If additional testing information is required, please raise a GitHub issue.<br><br> You can view the <a href="https://javadoc.galasa.dev/dev/galasa/elasticlog/manager/ivt/package-summary.html">Javadoc documentation for the Manager here</a>. <br><br>
The Manager logs the following test information:<br> <br> - testCase<br> - runId<br> - startTimestamp<br> - endTimestamp<br> - requestor<br> - result<br> - testTooling<br> - testType<br> - testingEnvironment<br> - productRelease<br> - buildLevel<br> - customBuild<br> - testingAreas<br> - tags<br> <br> If additional testing information is required, please raise a GitHub issue.<br><br>





## Configuration Properties
## <a name="configuring"></a>Configuration Properties

The following are properties used to configure the ElasticLog Manager.

Expand Down
Loading

0 comments on commit a58a628

Please sign in to comment.