Skip to content

Commit

Permalink
New release v1.0.0-rc.1 (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Jul 10, 2024
1 parent 65b43a9 commit ac7e8f4
Show file tree
Hide file tree
Showing 38 changed files with 2,257 additions and 395 deletions.
27 changes: 22 additions & 5 deletions .github/workflows/module-test-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ jobs:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Terraform latest
uses: hashicorp/setup-terraform@v2
- name: Set up Terraform latest - with token
uses: hashicorp/setup-terraform@v3
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
terraform_wrapper: true

- name: Setup test broker
run: |
Expand All @@ -20,6 +23,15 @@ jobs:
--env system_scaling_maxconnectioncount="1000" --mount type=bind,source=$HOME/solace,destination=/var/lib/solace,ro=false solace/solace-pubsub-standard:latest
while ! curl -s localhost:8080 | grep aurelia ; do sleep 1 ; done
- name: Setup if private provider is required
run: |
export PRIVATE_PROVIDER_VERSION="1.0.0-rc.3"
if [ -n "$PRIVATE_PROVIDER_VERSION" ]; then
echo "Using private provider version $PRIVATE_PROVIDER_VERSION"
grep -rl 'source = "' . | xargs sed -i 's@source = ".*$@source = "app.terraform.io/SolaceDev/solacebrokerappliance"@g'
grep -rl 'version = "' . | xargs sed -i "s@ version = \".*\$@ version = \"${PRIVATE_PROVIDER_VERSION}\"@g"
fi
- name: Test module from template on test broker
run: |
ci/scripts/test-module.sh ci/template-test
Expand All @@ -30,8 +42,13 @@ jobs:
- name: Test examples
run: |
for dir in examples/*; do (ci/scripts/test-module.sh "$dir"); done
# ci/scripts/test-module.sh examples/non-exclusive-queue
shopt -s extglob
for d in examples/!(basic-client-username)/; do (ci/scripts/test-module.sh "$d"); done
# ci/scripts/test-module.sh examples/basic-client-username/ -var-file=secret.tfvars
- name: Discard any changes in checked out code
run: |
git checkout -- .
- name: Set up Go
uses: actions/setup-go@v3
Expand Down Expand Up @@ -104,4 +121,4 @@ jobs:
CURRENT_BRANCH=${GITHUB_REF_NAME}
gh pr create -B ${CURRENT_BRANCH} -H "GeneratedSourceUpdates-${CURRENT_BRANCH}" --title "Merge updates into ${CURRENT_BRANCH}" --body 'Created by Github action'
echo Review and approve PR before push can continue
exit 1 // force actions stop here
exit 1 // force actions stop here
8 changes: 4 additions & 4 deletions .github/workflows/prep-internal-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ jobs:
--env system_scaling_maxconnectioncount="1000" --mount type=bind,source=$HOME/solace,destination=/var/lib/solace,ro=false solace/solace-pubsub-standard:latest
while ! curl -s localhost:8080 | grep aurelia ; do sleep 1 ; done
- name: Check code builds and pass acceptance test
run: |
ci/scripts/test-module.sh ci/module-test
for dir in examples/*; do (ci/scripts/test-module.sh "$dir"); done
# - name: Check code builds and pass acceptance test
# run: |
# ci/scripts/test-module.sh ci/module-test
# for dir in examples/*; do (ci/scripts/test-module.sh "$dir"); done

- name: Ensure version reflects release candidate version
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/verify-registry-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ jobs:
run: |
if [ "${{ github.event.inputs.public_release }}" == "false" ] ; then
echo Internal release
MODULE_REF="app.terraform.io/SolaceDev/queue-endpoint/solacebroker"
MODULE_REF="app.terraform.io/SolaceDev/queue-endpoint/solacebrokerappliance"
else
echo Public release
MODULE_REF="SolaceProducts/queue-endpoint/solacebroker"
MODULE_REF="SolaceProducts/queue-endpoint/solacebrokerappliance"
fi
ci/scripts/test-module.sh ci/module-test/ $MODULE_REF "${{ github.event.inputs.release_version }}"
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
# Solace PubSub+ Appliance Queues & Endpoints Terraform Module

Terraform module to configure a "guaranteed messaging endpoint" or an "endpoint template" on the [Solace PubSub+ Event Broker](https://solace.com/products/event-broker/).
This Terraform module configures a "guaranteed messaging endpoint" or an "endpoint template" on the [Solace PubSub+ Appliance](https://solace.com/products/event-broker/).

This module supports the configuration of one of the followings:
This module supports the configuration of one of the following:

- a "_queue_" or a "_topic endpoint_": applications that make use of [Guaranteed Messaging](https://docs.solace.com/Messaging/Guaranteed-Msg/Guaranteed-Messages.htm), need [endpoints](https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm) configured on the event broker to persist messages. A queue may also have a list of [topic subscriptions](https://docs.solace.com/API/API-Developer-Guide/Adding-Topic-Subscriptio.htm).

- a "_queue template_" or a "_topic endpoint template_": [Endpoint templates](https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoint-Templates.htm?Highlight=Endpoint%20templates) may be used for new client created endpoints.

The module also supports exposing a created queue or topic endpoint via JNDI for JMS applications.

Full details are provided in the [Examples](#examples).
Use case details are provided in the [Examples](#examples) section.

## Module input variables

### Required

* `msg_vpn_name` - Endpoints and endpoint templates are specific to a Message VPN on the broker
* `msg_vpn_name` - Endpoints and endpoint templates are specific to a Message VPN on the broker.
* `endpoint_type` - The type of the endpoint or template to be created. Only one type is allowed at a time.
* `endpoint_name` - The name of the endpoint or template to be created
* `permission` - Queues or topic endpoints must have proper `owner` or `permission` for non-owners configured to enable clients to connect and consume messages. The user shall consider the security implications when choosing a value. For additional details, refer to the [PubSub+ documentation](https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm#Configuring_Permissions_for_Non-Owner_Clients_..57)
* `endpoint_name` - The name of the endpoint or template to be created.
* `permission` - Queues or topic endpoints must have a valid `owner` or `permission` for non-owners configured to enable clients to connect and consume messages. Consider the security implications when choosing a value. For more information, see the [PubSub+ documentation](https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm#Configuring_Permissions_for_Non-Owner_Clients_..57).


### Optional

Optional module variables are either shared by multiple types, or conditional to the type where incompatible variables will be ignored. For example, the `permission` variable is shared by all endpoint and template types but `queue_name_filter` is specific to the `queue_template` type and ignored for other types. The recommended approach to determine variable name mappings is to look up the endpoint or template resource's documentation for matching attribute names:
Optional module variables are either shared by multiple types, or conditional to the type where incompatible variables will be ignored. For example, the `permission` variable is shared by all endpoint and template types but `queue_name_filter` is specific to the `queue_template` type and ignored for other types. To determine the variable name mappings, we recommend that you look for matching attribute names in the documentation for the endpoint or template resource:

| Resource name |
|---------------|
|[solacebroker_msg_vpn_queue](https://registry.terraform.io/providers/solaceproducts/solacebrokerappliance/latest/docs/resources/msg_vpn_queue#optional)|
|[solacebroker_msg_vpn_topic_endpoint](https://registry.terraform.io/providers/solaceproducts/solacebrokerappliance/latest/docs/resources/msg_vpn_topic_endpoint#optional)|
|[solacebroker_msg_vpn_queue_template](https://registry.terraform.io/providers/solaceproducts/solacebrokerappliance/latest/docs/resources/msg_vpn_queue_template#optional)|
|[solacebroker_msg_vpn_topic_endpoint_template](https://registry.terraform.io/providers/solaceproducts/solacebrokerappliance/latest/docs/resources/msg_vpn_topic_endpoint_template#optional)|
|[solacebroker_msg_vpn_queue](https://registry.terraform.io/providers/SolaceProducts/solacebrokerappliance/latest/docs/resources/msg_vpn_queue#optional)|
|[solacebroker_msg_vpn_topic_endpoint](https://registry.terraform.io/providers/SolaceProducts/solacebrokerappliance/latest/docs/resources/msg_vpn_topic_endpoint#optional)|
|[solacebroker_msg_vpn_queue_template](https://registry.terraform.io/providers/SolaceProducts/solacebrokerappliance/latest/docs/resources/msg_vpn_queue_template#optional)|
|[solacebroker_msg_vpn_topic_endpoint_template](https://registry.terraform.io/providers/SolaceProducts/solacebrokerappliance/latest/docs/resources/msg_vpn_topic_endpoint_template#optional)|

Most optional variables' default value is `null`, meaning that if not provided then the resource default value will be provisioned on the broker.
The default value for most of the optional variables is `null`, meaning that if you don’t provide a value then the default value of the resource is provisioned on the event broker.

-> The module defaults for `ingress_enabled` and `egress_enabled` optional variables are `true`, which differ from the resource attribute defaults.

Expand All @@ -45,11 +45,11 @@ Most optional variables' default value is `null`, meaning that if not provided t

| Name | Version |
|------|---------|
| <a name="provider_solacebroker"></a> [solacebroker](https://registry.terraform.io/providers/solaceproducts/solacebrokerappliance/latest) | ~> 0.9 |
| <a name="provider_solacebrokerappliance"></a> [solacebrokerappliance](https://registry.terraform.io/providers/SolaceProducts/solacebrokerappliance/latest) | >= 1.0 |

## Resources

The following table shows the resources created for each `endpoint-type` value. "X" denotes a resource always created, "O" is a resource that may be created optionally
The following table shows the resources created for each `endpoint-type` value. "X" denotes a resource that is always created, "O" denotes a resource that you have the option to create.

| Name | queue | topic_endpoint | queue_template | topic_endpoint_template |
|------|------|------|------|------|
Expand All @@ -63,7 +63,7 @@ The following table shows the resources created for each `endpoint-type` value.

## Examples

Refer to the following configuration examples:
The following examples demonstrate several specific use cases for this module:

- Queue
- [Exclusive queue](examples/exclusive-queue)
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0-rc.3
1.0.0-rc.1
2 changes: 1 addition & 1 deletion ci/module-test/providers.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ terraform {
required_providers {
solacebroker = {
source = "registry.terraform.io/solaceproducts/solacebrokerappliance"
version = "~> 0.9"
version = "~> 1.0"
}
}
required_version = "~> 1.2"
Expand Down
1 change: 1 addition & 0 deletions ci/scripts/test-module.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ cat main.tf
terraform init
terraform validate
# Create
export SOLACEBROKER_SKIP_API_CHECK=true
terraform plan
terraform apply -auto-approve
terraform plan | grep "No changes"
Expand Down
Loading

0 comments on commit ac7e8f4

Please sign in to comment.