diff --git a/.github/workflows/build-test-dev.yml b/.github/workflows/build-test-dev.yml
index 8294510..272b49b 100644
--- a/.github/workflows/build-test-dev.yml
+++ b/.github/workflows/build-test-dev.yml
@@ -6,7 +6,7 @@ on:
- main
env:
- VERSION: 1.1.0
+ VERSION: 1.1.1
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
@@ -122,7 +122,7 @@ jobs:
secrets: |
secret/data/development/gcp-gcr GCP_SERVICE_ACCOUNT | GCP_DEV_SERVICE_ACCOUNT
env:
- VERSION: 1.1.0
+ VERSION: ${{ env.VERSION }}
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
@@ -144,11 +144,13 @@ jobs:
gcr.io/${{ env.GCLOUD_PROJECT_ID_DEV }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}
push: true
env:
- VERSION: 1.1.0
+ VERSION: ${{ env.VERSION }}
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
+ - name: Build image and push GitHub Container Registry
+ run: make docker-push
- name: Run Vulnerability PreCheck for Prisma
uses: ./maas-build-actions/.github/actions/prisma-vulnerability-checker
@@ -159,8 +161,6 @@ jobs:
project_squad: "launchpad"
prisma_jira_check: "False"
- - name: Build image and push GitHub Container Registry
- run: make docker-push
- name: Run Whitesource Action
uses: SolaceDev/Mend-Scan-GHA@v1.0.0
diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml
index 819c2c6..0f980f9 100644
--- a/.github/workflows/prep-release.yml
+++ b/.github/workflows/prep-release.yml
@@ -4,7 +4,7 @@ on:
release_tag:
description: 'Release tag'
required: true
- default: '1.1.0'
+ default: '1.1.1'
prep_internal_release:
# Need to distinguish between internal and external releases
# Internal release: Will use default internal location for created images (ghcr.io) and will tag and push operator candidate there
diff --git a/.github/workflows/vulncheck_periodic.yml b/.github/workflows/vulncheck_periodic.yml
index 4c41302..31079c9 100644
--- a/.github/workflows/vulncheck_periodic.yml
+++ b/.github/workflows/vulncheck_periodic.yml
@@ -4,7 +4,7 @@ on:
- cron: '0 */ * * *'
env:
- VERSION: 1.1.0
+ VERSION: 1.1.1
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
@@ -65,7 +65,7 @@ jobs:
secrets: |
secret/data/development/gcp-gcr GCP_SERVICE_ACCOUNT | GCP_DEV_SERVICE_ACCOUNT
env:
- VERSION: 1.1.0
+ VERSION: 1.1.1
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
@@ -85,7 +85,7 @@ jobs:
gcr.io/${{ env.GCLOUD_PROJECT_ID_DEV }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}
push: true
env:
- VERSION: 1.1.0
+ VERSION: 1.1.1
IMAGE_NAME: pubsubplus-eventbroker-operator
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
GCLOUD_PROJECT_ID_DEV: ${{ secrets.GCLOUD_PROJECT_ID }}
diff --git a/Dockerfile b/Dockerfile
index ec1cee5..0bd1001 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -19,12 +19,12 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager main.go
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
-FROM registry.access.redhat.com/ubi9/ubi-minimal:9.4-1134
+FROM registry.access.redhat.com/ubi9/ubi-minimal:9.4-1194
LABEL name="solace/pubsubplus-eventbroker-operator"
LABEL vendor="Solace Corporation"
-LABEL version="1.1.0"
-LABEL release="1.1.0"
+LABEL version="1.1.1"
+LABEL release="1.1.1"
LABEL summary="Solace PubSub+ Event Broker Kubernetes Operator"
LABEL description="The Solace PubSub+ Event Broker Kubernetes Operator deploys and manages the lifecycle of PubSub+ Event Brokers"
diff --git a/Makefile b/Makefile
index 3ddfe4a..f0b1af9 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
# To re-generate a bundle for another specific version without changing the standard setup, you can:
# - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2)
# - use environment variables to overwrite this value (e.g export VERSION=0.0.2)
-VERSION ?= 1.1.0
+VERSION ?= 1.1.1
# API_VERSION defines the API version for the PubSubPlusEventBroker CRD
API_VERSION ?= v1beta1
diff --git a/bundle/manifests/pubsubplus-eventbroker-operator.clusterserviceversion.yaml b/bundle/manifests/pubsubplus-eventbroker-operator.clusterserviceversion.yaml
index 521715f..1a6e3c2 100644
--- a/bundle/manifests/pubsubplus-eventbroker-operator.clusterserviceversion.yaml
+++ b/bundle/manifests/pubsubplus-eventbroker-operator.clusterserviceversion.yaml
@@ -20,8 +20,8 @@ metadata:
certified: "true"
com.redhat.delivery.operator.bundle: "true"
com.redhat.openshift.versions: v4.10
- containerImage: docker.io/solace/pubsubplus-eventbroker-operator:1.1.0
- createdAt: "2024-07-01T12:25:04Z"
+ containerImage: docker.io/solace/pubsubplus-eventbroker-operator:v1.1.1
+ createdAt: "2024-07-31T18:47:51Z"
description: The Solace PubSub+ Event Broker Operator deploys and manages the
lifecycle of PubSub+ Event Brokers
operators.openshift.io/valid-subscription: '[]'
@@ -29,7 +29,7 @@ metadata:
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
repository: https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart
support: Solace Products
- name: pubsubplus-eventbroker-operator.v1.1.0
+ name: pubsubplus-eventbroker-operator.v1.1.1
namespace: placeholder
spec:
apiservicedefinitions: {}
@@ -296,7 +296,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.annotations['olm.targetNamespaces']
- image: docker.io/solace/pubsubplus-eventbroker-operator:1.1.0
+ image: docker.io/solace/pubsubplus-eventbroker-operator:1.1.1
imagePullPolicy: Always
livenessProbe:
httpGet:
@@ -411,4 +411,4 @@ spec:
provider:
name: Solace Corporation
url: www.solace.com
- version: 1.1.0
+ version: 1.1.1
diff --git a/bundle/manifests/pubsubplus.solace.com_pubsubpluseventbrokers.yaml b/bundle/manifests/pubsubplus.solace.com_pubsubpluseventbrokers.yaml
index 70b6fe3..30ad301 100644
--- a/bundle/manifests/pubsubplus.solace.com_pubsubpluseventbrokers.yaml
+++ b/bundle/manifests/pubsubplus.solace.com_pubsubpluseventbrokers.yaml
@@ -3,7 +3,8 @@ kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
- creationTimestamp: null
+ labels:
+ app.kubernetes.io/version: v1.1.1
name: pubsubpluseventbrokers.pubsubplus.solace.com
spec:
group: pubsubplus.solace.com
diff --git a/ci/whitesource/whitesource-agent.config b/ci/whitesource/whitesource-agent.config
index 2941dfd..a2d7476 100644
--- a/ci/whitesource/whitesource-agent.config
+++ b/ci/whitesource/whitesource-agent.config
@@ -41,11 +41,11 @@ go.modules.includeTestDependencies=true
#userKey=
projectName=pubsubplus-kubernetes-operator
-projectVersion=v1.1.0
+projectVersion=v1.1.1
projectToken=
productName=pubsubplus-kubernetes-operator
-productVersion=v1.1.0
+productVersion=v1.1.1
productToken=
updateType=OVERRIDE
#requesterEmail=user@provider.com
diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml
index aba9d59..f4307df 100644
--- a/config/manager/kustomization.yaml
+++ b/config/manager/kustomization.yaml
@@ -10,5 +10,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: controller
- newName: ghcr.io/solacedev/pubsubplus-eventbroker-operator
- newTag: 1.1.0
+ newName: docker.io/solace/pubsubplus-eventbroker-operator
+ newTag: 1.1.1
diff --git a/controllers/controller_utils.go b/controllers/controller_utils.go
index fd05712..916904e 100644
--- a/controllers/controller_utils.go
+++ b/controllers/controller_utils.go
@@ -21,6 +21,7 @@ import (
"context"
"embed"
"encoding/gob"
+ "encoding/json"
"fmt"
eventbrokerv1beta1 "github.com/SolaceProducts/pubsubplus-operator/api/v1beta1"
"hash/crc64"
@@ -132,3 +133,10 @@ func hash(s any) string {
crc64Table := crc64.MakeTable(crc64.ECMA)
return strconv.FormatUint(crc64.Checksum(convertToByteArray(s), crc64Table), 16)
}
+
+func parseScalingParameterWithUnKnownFieldsToMap(scalingParameter *eventbrokerv1beta1.SystemScaling) map[string]interface{} {
+ var scalingParamMap map[string]interface{}
+ marshalScalingParameter, _ := json.Marshal(scalingParameter)
+ json.Unmarshal(marshalScalingParameter, &scalingParamMap)
+ return scalingParamMap
+}
diff --git a/controllers/statefulset.go b/controllers/statefulset.go
index f76259f..ddbd3fd 100644
--- a/controllers/statefulset.go
+++ b/controllers/statefulset.go
@@ -137,24 +137,29 @@ func (r *PubSubPlusEventBrokerReconciler) updateStatefulsetForEventBroker(sts *a
maxConnections = (map[bool]int{true: DefaultDeveloperModeMaxConnections, false: DefaultMessagingNodeMaxConnections})[m.Spec.Developer]
maxQueueMessages = (map[bool]int{true: DefaultDeveloperModeMaxQueueMessages, false: DefaultMessagingNodeMaxQueueMessages})[m.Spec.Developer]
maxSpoolUsage = (map[bool]int{true: DefaultDeveloperModeMaxSpoolUsage, false: DefaultMessagingNodeMaxSpoolUsage})[m.Spec.Developer]
+
+ scalingParamMap := parseScalingParameterWithUnKnownFieldsToMap(m.Spec.SystemScaling)
// Overwrite for any values defined in spec.systemScaling
if m.Spec.SystemScaling != nil && !m.Spec.Developer {
- if m.Spec.SystemScaling.MessagingNodeCpu != "" {
- cpuRequests = m.Spec.SystemScaling.MessagingNodeCpu
+ if messagingNodeCpu, ok := scalingParamMap["messagingNodeCpu"]; ok && messagingNodeCpu != "" {
+ cpuRequests = messagingNodeCpu.(string)
cpuLimits = cpuRequests
}
- if m.Spec.SystemScaling.MessagingNodeMemory != "" {
- memRequests = m.Spec.SystemScaling.MessagingNodeMemory
+ if messagingNodeMemory, ok := scalingParamMap["messagingNodeMemory"]; ok && messagingNodeMemory != "" {
+ memRequests = messagingNodeMemory.(string)
memLimits = memRequests
}
- if m.Spec.SystemScaling.MaxConnections > 0 {
- maxConnections = m.Spec.SystemScaling.MaxConnections
+ if maxConnectionsValue, ok := scalingParamMap["maxConnections"]; ok && maxConnectionsValue != "" {
+ maxConnectionsFloat := maxConnectionsValue.(float64)
+ maxConnections = int(maxConnectionsFloat)
}
- if m.Spec.SystemScaling.MaxQueueMessages > 0 {
- maxQueueMessages = m.Spec.SystemScaling.MaxQueueMessages
+ if maxQueueMessagesValue, ok := scalingParamMap["maxQueueMessages"]; ok && maxQueueMessagesValue != "" {
+ maxQueueMessagesValueFloat := maxQueueMessagesValue.(float64)
+ maxQueueMessages = int(maxQueueMessagesValueFloat)
}
- if m.Spec.SystemScaling.MaxSpoolUsage > 0 {
- maxSpoolUsage = m.Spec.SystemScaling.MaxSpoolUsage
+ if maxSpoolUsageValue, ok := scalingParamMap["maxSpoolUsage"]; ok && maxSpoolUsageValue != "" {
+ maxSpoolUsageValueFloat := maxSpoolUsageValue.(float64)
+ maxSpoolUsage = int(maxSpoolUsageValueFloat)
}
}
}
@@ -639,9 +644,7 @@ func (r *PubSubPlusEventBrokerReconciler) updateStatefulsetForEventBroker(sts *a
//Set unknown scaling parameter values
if m.Spec.SystemScaling != nil {
var err error
- var scalingParamMap map[string]interface{}
- inrec, _ := json.Marshal(m.Spec.SystemScaling)
- json.Unmarshal(inrec, &scalingParamMap)
+ scalingParamMap := parseScalingParameterWithUnKnownFieldsToMap(m.Spec.SystemScaling)
allEnv := sts.Spec.Template.Spec.Containers[0].Env
for key, val := range scalingParamMap {
if strings.HasPrefix(strings.ToLower(key), scalingParameterPrefix) || strings.HasPrefix(strings.ToLower(key), scalingParameterSpoolPrefix) {
diff --git a/deploy/deploy.yaml b/deploy/deploy.yaml
index 6fe71fb..88e6549 100644
--- a/deploy/deploy.yaml
+++ b/deploy/deploy.yaml
@@ -1931,7 +1931,7 @@ spec:
env:
- name: WATCH_NAMESPACE
value: ""
- image: docker.io/solace/pubsubplus-eventbroker-operator:1.1.0
+ image: docker.io/solace/pubsubplus-eventbroker-operator:1.1.1
imagePullPolicy: Always
livenessProbe:
httpGet:
diff --git a/docs/EventBrokerOperatorParametersReference.md b/docs/EventBrokerOperatorParametersReference.md
index bca81a6..731e787 100644
--- a/docs/EventBrokerOperatorParametersReference.md
+++ b/docs/EventBrokerOperatorParametersReference.md
@@ -459,6 +459,13 @@ Monitoring specifies a Prometheus monitoring endpoint for the event broker
Default: false
Name | +Type | +Description | +Required | +
---|---|---|---|
name | +string | +
+ Specifies the Name of an environment variable to be added to the Prometheus Exporter container for Monitoring + |
+ true | +
value | +string | +
+ Specifies the Value of an environment variable to be added to the Prometheus Exporter container for Monitoring + |
+ true | +