diff --git a/PROJECT b/PROJECT index 254d43e6c..4b6fa12d6 100644 --- a/PROJECT +++ b/PROJECT @@ -53,11 +53,6 @@ resources: path: github.com/artemiscloud/activemq-artemis-operator/api/v2alpha5 plural: activemqartemises version: v2alpha5 - webhooks: - conversion: true - defaulting: true - validation: true - webhookVersion: v1 - api: crdVersion: v1 namespaced: true diff --git a/api/v2alpha5/activemq_artemis_conversion.go b/api/v2alpha5/activemq_artemis_conversion.go index 5875828fa..b9ba576dc 100644 --- a/api/v2alpha5/activemq_artemis_conversion.go +++ b/api/v2alpha5/activemq_artemis_conversion.go @@ -1,17 +1,367 @@ package v2alpha5 import ( + "github.com/RHsyseng/operator-utils/pkg/olm" + v1beta1 "github.com/artemiscloud/activemq-artemis-operator/api/v1beta1" + corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/conversion" logf "sigs.k8s.io/controller-runtime/pkg/log" ) var log = logf.Log.WithName("v2alpha5Conversion") -func (r *ActiveMQArtemis) ConvertTo(dst conversion.Hub) error { +// ConvertTo converts this v2alpha5 to v1beta1. (upgrade) +func (src *ActiveMQArtemis) ConvertTo(dstRaw conversion.Hub) error { + log.Info("converting v2alpha5 to v1beta1") + dst := dstRaw.(*v1beta1.ActiveMQArtemis) + + // Meta + dst.ObjectMeta = src.ObjectMeta + + // Status + dst.Status.PodStatus = olm.DeploymentStatus{ + Ready: src.Status.PodStatus.Ready, + Starting: src.Status.PodStatus.Starting, + Stopped: src.Status.PodStatus.Stopped, + } + + // Spec + dst.Spec.AdminUser = src.Spec.AdminUser + dst.Spec.AdminPassword = src.Spec.AdminPassword + + dst.Spec.DeploymentPlan.Image = src.Spec.DeploymentPlan.Image + dst.Spec.DeploymentPlan.InitImage = src.Spec.DeploymentPlan.InitImage + dst.Spec.DeploymentPlan.Size = src.Spec.DeploymentPlan.Size + dst.Spec.DeploymentPlan.RequireLogin = src.Spec.DeploymentPlan.RequireLogin + dst.Spec.DeploymentPlan.PersistenceEnabled = src.Spec.DeploymentPlan.PersistenceEnabled + dst.Spec.DeploymentPlan.JournalType = src.Spec.DeploymentPlan.JournalType + dst.Spec.DeploymentPlan.MessageMigration = src.Spec.DeploymentPlan.MessageMigration + dst.Spec.DeploymentPlan.Resources = *src.Spec.DeploymentPlan.Resources.DeepCopy() + dst.Spec.DeploymentPlan.Storage.Size = src.Spec.DeploymentPlan.Storage.Size + dst.Spec.DeploymentPlan.JolokiaAgentEnabled = src.Spec.DeploymentPlan.JolokiaAgentEnabled + dst.Spec.DeploymentPlan.ManagementRBACEnabled = src.Spec.DeploymentPlan.ManagementRBACEnabled + dst.Spec.DeploymentPlan.ExtraMounts.ConfigMaps = src.Spec.DeploymentPlan.ExtraMounts.ConfigMaps + dst.Spec.DeploymentPlan.ExtraMounts.Secrets = src.Spec.DeploymentPlan.ExtraMounts.Secrets + dst.Spec.DeploymentPlan.Clustered = src.Spec.DeploymentPlan.Clustered + dst.Spec.DeploymentPlan.PodSecurity.RunAsUser = src.Spec.DeploymentPlan.PodSecurity.RunAsUser + dst.Spec.DeploymentPlan.PodSecurity.ServiceAccountName = src.Spec.DeploymentPlan.PodSecurity.ServiceAccountName + if src.Spec.DeploymentPlan.LivenessProbe.TimeoutSeconds != nil { + dst.Spec.DeploymentPlan.LivenessProbe = &corev1.Probe{ + TimeoutSeconds: *src.Spec.DeploymentPlan.LivenessProbe.TimeoutSeconds, + } + } + if src.Spec.DeploymentPlan.ReadinessProbe.TimeoutSeconds != nil { + dst.Spec.DeploymentPlan.ReadinessProbe = &corev1.Probe{ + TimeoutSeconds: *src.Spec.DeploymentPlan.ReadinessProbe.TimeoutSeconds, + } + } + src.Spec.DeploymentPlan.EnableMetricsPlugin = dst.Spec.DeploymentPlan.EnableMetricsPlugin + + dst.Spec.Acceptors = make([]v1beta1.AcceptorType, len(src.Spec.Acceptors)) + for i, acc := range src.Spec.Acceptors { + dst.Spec.Acceptors[i] = v1beta1.AcceptorType{ + Name: acc.Name, + Port: acc.Port, + Protocols: acc.Protocols, + SSLEnabled: acc.SSLEnabled, + SSLSecret: acc.SSLSecret, + EnabledCipherSuites: acc.EnabledCipherSuites, + EnabledProtocols: acc.EnabledProtocols, + NeedClientAuth: acc.NeedClientAuth, + WantClientAuth: acc.WantClientAuth, + VerifyHost: acc.VerifyHost, + SSLProvider: acc.SSLProvider, + SNIHost: acc.SNIHost, + Expose: acc.Expose, + AnycastPrefix: acc.AnycastPrefix, + MulticastPrefix: acc.MulticastPrefix, + ConnectionsAllowed: acc.ConnectionsAllowed, + AMQPMinLargeMessageSize: acc.AMQPMinLargeMessageSize, + SupportAdvisory: acc.SupportAdvisory, + SuppressInternalManagementObjects: acc.SuppressInternalManagementObjects, + } + } + + dst.Spec.Connectors = make([]v1beta1.ConnectorType, len(src.Spec.Connectors)) + for i, conn := range src.Spec.Connectors { + dst.Spec.Connectors[i] = v1beta1.ConnectorType{ + Name: conn.Name, + Type: conn.Type, + Host: conn.Host, + Port: conn.Port, + SSLEnabled: conn.SSLEnabled, + SSLSecret: conn.SSLSecret, + EnabledCipherSuites: conn.EnabledCipherSuites, + EnabledProtocols: conn.EnabledProtocols, + NeedClientAuth: conn.NeedClientAuth, + WantClientAuth: conn.WantClientAuth, + VerifyHost: conn.VerifyHost, + SSLProvider: conn.SSLProvider, + SNIHost: conn.SNIHost, + Expose: conn.Expose, + } + } + + dst.Spec.Console = v1beta1.ConsoleType{ + Expose: src.Spec.Console.Expose, + SSLEnabled: src.Spec.Console.SSLEnabled, + SSLSecret: src.Spec.Console.SSLSecret, + UseClientAuth: src.Spec.Console.UseClientAuth, + } + + dst.Spec.Version = src.Spec.Version + + dst.Spec.Upgrades.Enabled = src.Spec.Upgrades.Enabled + dst.Spec.Upgrades.Minor = src.Spec.Upgrades.Minor + + dst.Spec.AddressSettings.ApplyRule = src.Spec.AddressSettings.ApplyRule + dst.Spec.AddressSettings.AddressSetting = make([]v1beta1.AddressSettingType, len(src.Spec.AddressSettings.AddressSetting)) + for i, add := range src.Spec.AddressSettings.AddressSetting { + dst.Spec.AddressSettings.AddressSetting[i] = v1beta1.AddressSettingType{ + DeadLetterAddress: add.DeadLetterAddress, + AutoCreateDeadLetterResources: add.AutoCreateDeadLetterResources, + DeadLetterQueuePrefix: add.DeadLetterQueuePrefix, + DeadLetterQueueSuffix: add.DeadLetterQueueSuffix, + ExpiryAddress: add.ExpiryAddress, + AutoCreateExpiryResources: add.AutoCreateDeadLetterResources, + ExpiryQueuePrefix: add.ExpiryQueuePrefix, + ExpiryQueueSuffix: add.ExpiryQueueSuffix, + ExpiryDelay: add.ExpiryDelay, + MinExpiryDelay: add.MinExpiryDelay, + MaxExpiryDelay: add.MaxExpiryDelay, + RedeliveryDelay: add.RedeliveryDelay, + MaxRedeliveryDelay: add.MaxRedeliveryDelay, + MaxDeliveryAttempts: add.MaxDeliveryAttempts, + MaxSizeBytes: add.MaxSizeBytes, + MaxSizeBytesRejectThreshold: add.MaxSizeBytesRejectThreshold, + PageSizeBytes: add.PageSizeBytes, + PageMaxCacheSize: add.PageMaxCacheSize, + AddressFullPolicy: add.AddressFullPolicy, + MessageCounterHistoryDayLimit: add.MessageCounterHistoryDayLimit, + LastValueQueue: add.LastValueQueue, + DefaultLastValueQueue: add.DefaultLastValueQueue, + DefaultLastValueKey: add.DefaultLastValueKey, + DefaultNonDestructive: add.DefaultNonDestructive, + DefaultExclusiveQueue: add.DefaultExclusiveQueue, + DefaultGroupRebalance: add.DefaultGroupRebalance, + DefaultGroupRebalancePauseDispatch: add.DefaultGroupRebalancePauseDispatch, + DefaultGroupBuckets: add.DefaultGroupBuckets, + DefaultGroupFirstKey: add.DefaultGroupFirstKey, + DefaultConsumersBeforeDispatch: add.DefaultConsumersBeforeDispatch, + DefaultDelayBeforeDispatch: add.DefaultDelayBeforeDispatch, + RedistributionDelay: add.RedistributionDelay, + SendToDlaOnNoRoute: add.SendToDlaOnNoRoute, + SlowConsumerThreshold: add.SlowConsumerThreshold, + SlowConsumerPolicy: add.SlowConsumerPolicy, + SlowConsumerCheckPeriod: add.SlowConsumerCheckPeriod, + AutoCreateJmsQueues: add.AutoCreateJmsQueues, + AutoDeleteJmsQueues: add.AutoDeleteJmsQueues, + AutoCreateJmsTopics: add.AutoCreateJmsTopics, + AutoDeleteJmsTopics: add.AutoDeleteJmsTopics, + AutoCreateQueues: add.AutoCreateQueues, + AutoDeleteQueues: add.AutoDeleteQueues, + AutoDeleteCreatedQueues: add.AutoDeleteCreatedQueues, + AutoDeleteQueuesDelay: add.AutoDeleteQueuesDelay, + AutoDeleteQueuesMessageCount: add.AutoDeleteQueuesMessageCount, + ConfigDeleteQueues: add.ConfigDeleteQueues, + AutoCreateAddresses: add.AutoCreateAddresses, + AutoDeleteAddresses: add.AutoDeleteAddresses, + AutoDeleteAddressesDelay: add.AutoDeleteAddressesDelay, + ConfigDeleteAddresses: add.ConfigDeleteAddresses, + ManagementBrowsePageSize: add.ManagementBrowsePageSize, + DefaultPurgeOnNoConsumers: add.DefaultPurgeOnNoConsumers, + DefaultMaxConsumers: add.DefaultMaxConsumers, + DefaultQueueRoutingType: add.DefaultQueueRoutingType, + DefaultAddressRoutingType: add.DefaultAddressRoutingType, + DefaultConsumerWindowSize: add.DefaultConsumerWindowSize, + DefaultRingSize: add.DefaultRingSize, + RetroactiveMessageCount: add.RetroactiveMessageCount, + EnableMetrics: add.EnableMetrics, + Match: add.Match, + ManagementMessageAttributeSizeLimit: add.ManagementMessageAttributeSizeLimit, + SlowConsumerThresholdMeasurementUnit: add.SlowConsumerThresholdMeasurementUnit, + EnableIngressTimestamp: add.EnableIngressTimestamp, + } + } + + log.Info("converted v2alpha5 to v1beta1") return nil } -//may not need it if the Hub (storage version) is the latest -func (r *ActiveMQArtemis) ConvertFrom(src conversion.Hub) error { +// ConvertFrom converts from the Hub version (v1beta1) to v2alpha5. (downgrade) +func (dst *ActiveMQArtemis) ConvertFrom(srcRaw conversion.Hub) error { + log.Info("converting from v1beta1 to v2alpha5") + src := srcRaw.(*v1beta1.ActiveMQArtemis) + + // Meta + dst.ObjectMeta = src.ObjectMeta + + // Status + dst.Status.PodStatus = olm.DeploymentStatus{ + Ready: src.Status.PodStatus.Ready, + Starting: src.Status.PodStatus.Starting, + Stopped: src.Status.PodStatus.Stopped, + } + + // Spec + dst.Spec.AdminUser = src.Spec.AdminUser + dst.Spec.AdminPassword = src.Spec.AdminPassword + + dst.Spec.DeploymentPlan.Image = src.Spec.DeploymentPlan.Image + dst.Spec.DeploymentPlan.InitImage = src.Spec.DeploymentPlan.InitImage + dst.Spec.DeploymentPlan.Size = src.Spec.DeploymentPlan.Size + dst.Spec.DeploymentPlan.RequireLogin = src.Spec.DeploymentPlan.RequireLogin + dst.Spec.DeploymentPlan.PersistenceEnabled = src.Spec.DeploymentPlan.PersistenceEnabled + dst.Spec.DeploymentPlan.JournalType = src.Spec.DeploymentPlan.JournalType + dst.Spec.DeploymentPlan.MessageMigration = src.Spec.DeploymentPlan.MessageMigration + dst.Spec.DeploymentPlan.Resources = *src.Spec.DeploymentPlan.Resources.DeepCopy() + dst.Spec.DeploymentPlan.Storage.Size = src.Spec.DeploymentPlan.Storage.Size + dst.Spec.DeploymentPlan.JolokiaAgentEnabled = src.Spec.DeploymentPlan.JolokiaAgentEnabled + dst.Spec.DeploymentPlan.ManagementRBACEnabled = src.Spec.DeploymentPlan.ManagementRBACEnabled + dst.Spec.DeploymentPlan.ExtraMounts.ConfigMaps = src.Spec.DeploymentPlan.ExtraMounts.ConfigMaps + dst.Spec.DeploymentPlan.ExtraMounts.Secrets = src.Spec.DeploymentPlan.ExtraMounts.Secrets + dst.Spec.DeploymentPlan.Clustered = src.Spec.DeploymentPlan.Clustered + dst.Spec.DeploymentPlan.PodSecurity.RunAsUser = src.Spec.DeploymentPlan.PodSecurity.RunAsUser + dst.Spec.DeploymentPlan.PodSecurity.ServiceAccountName = src.Spec.DeploymentPlan.PodSecurity.ServiceAccountName + if src.Spec.DeploymentPlan.LivenessProbe != nil { + dst.Spec.DeploymentPlan.LivenessProbe = LivenessProbeType{ + TimeoutSeconds: &src.Spec.DeploymentPlan.LivenessProbe.TimeoutSeconds, + } + } + if src.Spec.DeploymentPlan.ReadinessProbe != nil { + dst.Spec.DeploymentPlan.ReadinessProbe = ReadinessProbeType{ + TimeoutSeconds: &src.Spec.DeploymentPlan.ReadinessProbe.TimeoutSeconds, + } + } + src.Spec.DeploymentPlan.EnableMetricsPlugin = dst.Spec.DeploymentPlan.EnableMetricsPlugin + + dst.Spec.Acceptors = make([]AcceptorType, len(src.Spec.Acceptors)) + for i, acc := range src.Spec.Acceptors { + dst.Spec.Acceptors[i] = AcceptorType{ + Name: acc.Name, + Port: acc.Port, + Protocols: acc.Protocols, + SSLEnabled: acc.SSLEnabled, + SSLSecret: acc.SSLSecret, + EnabledCipherSuites: acc.EnabledCipherSuites, + EnabledProtocols: acc.EnabledProtocols, + NeedClientAuth: acc.NeedClientAuth, + WantClientAuth: acc.WantClientAuth, + VerifyHost: acc.VerifyHost, + SSLProvider: acc.SSLProvider, + SNIHost: acc.SNIHost, + Expose: acc.Expose, + AnycastPrefix: acc.AnycastPrefix, + MulticastPrefix: acc.MulticastPrefix, + ConnectionsAllowed: acc.ConnectionsAllowed, + AMQPMinLargeMessageSize: acc.AMQPMinLargeMessageSize, + SupportAdvisory: acc.SupportAdvisory, + SuppressInternalManagementObjects: acc.SuppressInternalManagementObjects, + } + } + + dst.Spec.Connectors = make([]ConnectorType, len(src.Spec.Connectors)) + for i, conn := range src.Spec.Connectors { + dst.Spec.Connectors[i] = ConnectorType{ + Name: conn.Name, + Type: conn.Type, + Host: conn.Host, + Port: conn.Port, + SSLEnabled: conn.SSLEnabled, + SSLSecret: conn.SSLSecret, + EnabledCipherSuites: conn.EnabledCipherSuites, + EnabledProtocols: conn.EnabledProtocols, + NeedClientAuth: conn.NeedClientAuth, + WantClientAuth: conn.WantClientAuth, + VerifyHost: conn.VerifyHost, + SSLProvider: conn.SSLProvider, + SNIHost: conn.SNIHost, + Expose: conn.Expose, + } + } + + dst.Spec.Console = ConsoleType{ + Expose: src.Spec.Console.Expose, + SSLEnabled: src.Spec.Console.SSLEnabled, + SSLSecret: src.Spec.Console.SSLSecret, + UseClientAuth: src.Spec.Console.UseClientAuth, + } + + dst.Spec.Version = src.Spec.Version + + dst.Spec.Upgrades.Enabled = src.Spec.Upgrades.Enabled + dst.Spec.Upgrades.Minor = src.Spec.Upgrades.Minor + + dst.Spec.AddressSettings.ApplyRule = src.Spec.AddressSettings.ApplyRule + dst.Spec.AddressSettings.AddressSetting = make([]AddressSettingType, len(src.Spec.AddressSettings.AddressSetting)) + for i, add := range src.Spec.AddressSettings.AddressSetting { + dst.Spec.AddressSettings.AddressSetting[i] = AddressSettingType{ + DeadLetterAddress: add.DeadLetterAddress, + AutoCreateDeadLetterResources: add.AutoCreateDeadLetterResources, + DeadLetterQueuePrefix: add.DeadLetterQueuePrefix, + DeadLetterQueueSuffix: add.DeadLetterQueueSuffix, + ExpiryAddress: add.ExpiryAddress, + AutoCreateExpiryResources: add.AutoCreateDeadLetterResources, + ExpiryQueuePrefix: add.ExpiryQueuePrefix, + ExpiryQueueSuffix: add.ExpiryQueueSuffix, + ExpiryDelay: add.ExpiryDelay, + MinExpiryDelay: add.MinExpiryDelay, + MaxExpiryDelay: add.MaxExpiryDelay, + RedeliveryDelay: add.RedeliveryDelay, + MaxRedeliveryDelay: add.MaxRedeliveryDelay, + MaxDeliveryAttempts: add.MaxDeliveryAttempts, + MaxSizeBytes: add.MaxSizeBytes, + MaxSizeBytesRejectThreshold: add.MaxSizeBytesRejectThreshold, + PageSizeBytes: add.PageSizeBytes, + PageMaxCacheSize: add.PageMaxCacheSize, + AddressFullPolicy: add.AddressFullPolicy, + MessageCounterHistoryDayLimit: add.MessageCounterHistoryDayLimit, + LastValueQueue: add.LastValueQueue, + DefaultLastValueQueue: add.DefaultLastValueQueue, + DefaultLastValueKey: add.DefaultLastValueKey, + DefaultNonDestructive: add.DefaultNonDestructive, + DefaultExclusiveQueue: add.DefaultExclusiveQueue, + DefaultGroupRebalance: add.DefaultGroupRebalance, + DefaultGroupRebalancePauseDispatch: add.DefaultGroupRebalancePauseDispatch, + DefaultGroupBuckets: add.DefaultGroupBuckets, + DefaultGroupFirstKey: add.DefaultGroupFirstKey, + DefaultConsumersBeforeDispatch: add.DefaultConsumersBeforeDispatch, + DefaultDelayBeforeDispatch: add.DefaultDelayBeforeDispatch, + RedistributionDelay: add.RedistributionDelay, + SendToDlaOnNoRoute: add.SendToDlaOnNoRoute, + SlowConsumerThreshold: add.SlowConsumerThreshold, + SlowConsumerPolicy: add.SlowConsumerPolicy, + SlowConsumerCheckPeriod: add.SlowConsumerCheckPeriod, + AutoCreateJmsQueues: add.AutoCreateJmsQueues, + AutoDeleteJmsQueues: add.AutoDeleteJmsQueues, + AutoCreateJmsTopics: add.AutoCreateJmsTopics, + AutoDeleteJmsTopics: add.AutoDeleteJmsTopics, + AutoCreateQueues: add.AutoCreateQueues, + AutoDeleteQueues: add.AutoDeleteQueues, + AutoDeleteCreatedQueues: add.AutoDeleteCreatedQueues, + AutoDeleteQueuesDelay: add.AutoDeleteQueuesDelay, + AutoDeleteQueuesMessageCount: add.AutoDeleteQueuesMessageCount, + ConfigDeleteQueues: add.ConfigDeleteQueues, + AutoCreateAddresses: add.AutoCreateAddresses, + AutoDeleteAddresses: add.AutoDeleteAddresses, + AutoDeleteAddressesDelay: add.AutoDeleteAddressesDelay, + ConfigDeleteAddresses: add.ConfigDeleteAddresses, + ManagementBrowsePageSize: add.ManagementBrowsePageSize, + DefaultPurgeOnNoConsumers: add.DefaultPurgeOnNoConsumers, + DefaultMaxConsumers: add.DefaultMaxConsumers, + DefaultQueueRoutingType: add.DefaultQueueRoutingType, + DefaultAddressRoutingType: add.DefaultAddressRoutingType, + DefaultConsumerWindowSize: add.DefaultConsumerWindowSize, + DefaultRingSize: add.DefaultRingSize, + RetroactiveMessageCount: add.RetroactiveMessageCount, + EnableMetrics: add.EnableMetrics, + Match: add.Match, + ManagementMessageAttributeSizeLimit: add.ManagementMessageAttributeSizeLimit, + SlowConsumerThresholdMeasurementUnit: add.SlowConsumerThresholdMeasurementUnit, + EnableIngressTimestamp: add.EnableIngressTimestamp, + } + } + + log.Info("converted v1beta1 to v2alpha5") return nil } diff --git a/api/v2alpha5/activemq_artemis_conversion_test.go b/api/v2alpha5/activemq_artemis_conversion_test.go new file mode 100644 index 000000000..2220ddee3 --- /dev/null +++ b/api/v2alpha5/activemq_artemis_conversion_test.go @@ -0,0 +1,41 @@ +package v2alpha5 + +import ( + "github.com/artemiscloud/activemq-artemis-operator/api/v1beta1" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +var _ = Describe("ActiveMQArtemis Conversion", func() { + Context("v2alpha5 Redelivery conversion to v1alpha1", func() { + It("converts a default object", func() { + objectKey := client.ObjectKey{Name: "example-v2alpha5", Namespace: "foo-ns"} + spoke := ActiveMQArtemis{ + ObjectMeta: v1.ObjectMeta{ + Name: objectKey.Name, + Namespace: objectKey.Namespace, + }, + } + + hub := &v1beta1.ActiveMQArtemis{} + Expect(spoke.ConvertTo(hub)).To(Succeed()) + }) + }) + + Context("v1alpha1 Redelivery conversion to v2alpha5", func() { + It("converts a default object", func() { + objectKey := client.ObjectKey{Name: "example-v1beta1", Namespace: "foo-ns"} + hub := &v1beta1.ActiveMQArtemis{ + ObjectMeta: v1.ObjectMeta{ + Name: objectKey.Name, + Namespace: objectKey.Namespace, + }, + } + + spoke := &ActiveMQArtemis{} + Expect(spoke.ConvertFrom(hub)).To(Succeed()) + }) + }) +}) diff --git a/api/v2alpha5/v2alpha5_suite_test.go b/api/v2alpha5/v2alpha5_suite_test.go new file mode 100644 index 000000000..7b5306414 --- /dev/null +++ b/api/v2alpha5/v2alpha5_suite_test.go @@ -0,0 +1,13 @@ +package v2alpha5_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestV2alpha5(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "V2alpha5 Suite") +} diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index 726dd353e..279217e33 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -8,32 +8,30 @@ resources: - bases/broker.amq.io_activemqartemissecurities.yaml #+kubebuilder:scaffold:crdkustomizeresource -#patchesStrategicMerge: +patchesStrategicMerge: # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. # patches here are for enabling the conversion webhook for each CRD -#- patches/webhook_in_activemqartemises.yaml -#- patches/webhook_in_activemqartemisaddresses.yaml -#- patches/webhook_in_activemqartemisscaledowns.yaml -#- patches/webhook_in_activemqartemissecurities.yaml -#- patches/webhook_in_activemqartemissecurities.yaml -#- patches/webhook_in_activemqartemisaddresses.yaml +- patches/webhook_in_activemqartemises.yaml +# - patches/webhook_in_activemqartemisscaledowns.yaml +# - patches/webhook_in_activemqartemissecurities.yaml +# - patches/webhook_in_activemqartemisaddresses.yaml #+kubebuilder:scaffold:crdkustomizewebhookpatch # [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix. # patches here are for enabling the CA injection for each CRD -#- patches/cainjection_in_activemqartemises.yaml -#- patches/cainjection_in_activemqartemisaddresses.yaml -#- patches/cainjection_in_activemqartemisscaledowns.yaml -#- patches/cainjection_in_activemqartemissecurities.yaml +# - patches/cainjection_in_activemqartemises.yaml +# - patches/cainjection_in_activemqartemisaddresses.yaml +# - patches/cainjection_in_activemqartemisscaledowns.yaml +# - patches/cainjection_in_activemqartemissecurities.yaml #+kubebuilder:scaffold:crdkustomizecainjectionpatch -#patchesJson6902: -#- target: -# group: "apiextensions.k8s.io" -# version: v1 # apiVersion -# kind: CustomResourceDefinition -# name: activemqartemises.broker.amq.io -# path: patches/patch_conversion_webhook_client_ca_bundles.yaml +patchesJson6902: +- target: + group: "apiextensions.k8s.io" + version: v1 # apiVersion + kind: CustomResourceDefinition + name: activemqartemises.broker.amq.io + path: patches/patch_conversion_webhook_client_ca_bundles.yaml #- target: # group: "apiextensions.k8s.io" # version: v1 # apiVersion diff --git a/config/crd/patches/webhook_in_activemqartemises.yaml b/config/crd/patches/webhook_in_activemqartemises.yaml index 2fa9103b2..5ee506ee2 100644 --- a/config/crd/patches/webhook_in_activemqartemises.yaml +++ b/config/crd/patches/webhook_in_activemqartemises.yaml @@ -12,5 +12,5 @@ spec: namespace: system name: webhook-service path: /convert - conversionReviewVersions: ["v1beta1", "v2alpha5", "v2alpha4", "v2alpha3"] + conversionReviewVersions: ["v2alpha5", "v1beta1"] #- v1 diff --git a/config/default/kustomization.yaml b/config/default/kustomization.yaml index 0d433c7a6..174457afd 100644 --- a/config/default/kustomization.yaml +++ b/config/default/kustomization.yaml @@ -18,13 +18,13 @@ bases: - ../manager # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in # crd/kustomization.yaml -#- ../webhook +- ../webhook # [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. 'WEBHOOK' components are required. -#- ../certmanager +# - ../certmanager # [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'. #- ../prometheus -#patchesStrategicMerge: +patchesStrategicMerge: # Protect the /metrics endpoint by putting it behind auth. # If you want your controller-manager to expose the /metrics # endpoint w/o any authn/z, please comment the following line. @@ -36,39 +36,39 @@ bases: # [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in # crd/kustomization.yaml -#- manager_webhook_patch.yaml +- manager_webhook_patch.yaml # [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. # Uncomment 'CERTMANAGER' sections in crd/kustomization.yaml to enable the CA injection in the admission webhooks. # 'CERTMANAGER' needs to be enabled to use ca injection -#- webhookcainjection_patch.yaml +# - webhookcainjection_patch.yaml # the following config is for teaching kustomize how to do var substitution -#vars: +# vars: # [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix. -#- name: CERTIFICATE_NAMESPACE # namespace of the certificate CR -# objref: -# kind: Certificate -# group: cert-manager.io -# version: v1 -# name: serving-cert # this name should match the one in certificate.yaml -# fieldref: -# fieldpath: metadata.namespace -#- name: CERTIFICATE_NAME -# objref: -# kind: Certificate -# group: cert-manager.io -# version: v1 -# name: serving-cert # this name should match the one in certificate.yaml -#- name: SERVICE_NAMESPACE # namespace of the service -# objref: -# kind: Service -# version: v1 -# name: webhook-service -# fieldref: -# fieldpath: metadata.namespace -#- name: SERVICE_NAME -# objref: -# kind: Service -# version: v1 -# name: webhook-service +# - name: CERTIFICATE_NAMESPACE # namespace of the certificate CR +# objref: +# kind: Certificate +# group: cert-manager.io +# version: v1 +# name: serving-cert # this name should match the one in certificate.yaml +# fieldref: +# fieldpath: metadata.namespace +# - name: CERTIFICATE_NAME +# objref: +# kind: Certificate +# group: cert-manager.io +# version: v1 +# name: serving-cert # this name should match the one in certificate.yaml +# - name: SERVICE_NAMESPACE # namespace of the service +# objref: +# kind: Service +# version: v1 +# name: webhook-service +# fieldref: +# fieldpath: metadata.namespace +# - name: SERVICE_NAME +# objref: +# kind: Service +# version: v1 +# name: webhook-service diff --git a/config/manifests/kustomization.yaml b/config/manifests/kustomization.yaml index 43d653fec..8639c37f0 100644 --- a/config/manifests/kustomization.yaml +++ b/config/manifests/kustomization.yaml @@ -10,7 +10,7 @@ resources: # Do NOT uncomment sections with prefix [CERTMANAGER], as OLM does not support cert-manager. # These patches remove the unnecessary "cert" volume and its manager container volumeMount. # patchesJson6902: -#- target: +# - target: # group: apps # version: v1 # kind: Deployment diff --git a/deploy/MutatingWebhookConfiguration_activemq-artemis-mutating-webhook-configuration.yaml b/deploy/MutatingWebhookConfiguration_activemq-artemis-mutating-webhook-configuration.yaml new file mode 100644 index 000000000..b291b7e9f --- /dev/null +++ b/deploy/MutatingWebhookConfiguration_activemq-artemis-mutating-webhook-configuration.yaml @@ -0,0 +1,69 @@ +apiVersion: admissionregistration.k8s.io/v1 +kind: MutatingWebhookConfiguration +metadata: + creationTimestamp: null + name: activemq-artemis-mutating-webhook-configuration +webhooks: +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /mutate-broker-amq-io-v1beta1-activemqartemis + failurePolicy: Fail + name: mactivemqartemis.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemises + sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /mutate-broker-amq-io-v1beta1-activemqartemisaddress + failurePolicy: Fail + name: mactivemqartemisaddress.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemisaddresses + sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /mutate-broker-amq-io-v1beta1-activemqartemissecurity + failurePolicy: Fail + name: mactivemqartemissecurity.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemissecurities + sideEffects: None diff --git a/deploy/Secret_activemq-artemis-webhook-server-cert.yaml b/deploy/Secret_activemq-artemis-webhook-server-cert.yaml new file mode 100644 index 000000000..7a48f6661 --- /dev/null +++ b/deploy/Secret_activemq-artemis-webhook-server-cert.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRQ3JrRGhlSWNDdmkwTTkKb0EzOElRajdOTXRsRk04Q1hNaUYxWEZBc1NGdVBDOHBlZWNLSHhXbVl1ZExheGZ0VXQrUFQvK0ttOGVqd0dINQp6Y0lCLzM1U2VWb1ZZUzV3aTFKRWVseXJMV0h4MWVnS3B3Q1VsbW56aG9oYUd4bUVmUDFaTVBpZnNBWGNoWTNVCkxMQXVNTi93YnBPa3NDdkZBL0VCSkR5ZEk2MThEdWk2SDdhcW1JV1lNKzQ0U3c5YXN0aTlueTFNekY3WlNrTWEKK1lHak4rTklCb2pvZWY4eDJ1V1hKZWJDeXZVTms1aVRmOVZSUWR6UG5iUEFQc1pvU2lUU0VsNGJOeFNXcEdsOQp6WFFuY1NGbHhQdlNsRWo1c3FpZG1tVXhIajcrcXN3YWtUU1Q4emRXbUF6SC9oQ3BkSURtdktERXQxQUZ1NU9LCjRJekZHOHJrQ3dOYUNZVXhqNnZHM210R2doZmxHVC9nMTArV2tjRUcvRi9ycm9JeDFNVjR2bGNJa2E3cHFoT1cKM29HTnZoNzRFQUhUTnlrWXRGR2s3MEtmSTlrejU0dFV3ZmdGNzVYdXVxZEdjT0RScW8yUU8xSFlFbjBnQXZkVApqOHA2dURnLzd0RzhvWGtCRGVmMVpDRnRmRUZNelF0ZFR4R1lSUGNWZ2dhTDZ2eXZnOXVESzJBNkxQZ2FQSjBFClhNUFVkOFhxUDI0c00rcnNsSTIwVHgvc3ZyRlVWc3NaYmdvQmJpN1ZKOUdLM3Rld2tEMzg4SXJUSXZtR2ZBS0wKMThiMkNWeENaaHpvS080L0dSR0dFbDl3ZWZ4Zldkcy8yaVVack1FajdwRGc1b0F3M1FRbUEyT2pLNUQxMU9vYQp2L201RDZYeUpyZXpaUjZjT3c1L0JkeHR3citBRndJREFRQUJBb0lDQUhGci9FZ0hLbnNqcDRXVFRndVV6M284Ck1nZVdsVERycEVvT2pUd0ducUpoT1pEREhjSnNRSVRxdUJ6OUpTbHA4NUNzZzdYZ1BVRCtEQWY1UnJ6SmEzc2MKN1RoYk1qZUhkQkQva0VvK3k1VDFKTjMrQUgwN1g3cDNBNmdHYUgxVm9LeVptcFQvNnpBYVAyUzVVcFNIRFZYSAoxT1k0N2dibkR5c0JDTzJlUzdCTHJ3SjF1dTdYdk9LZDJtenUrcXlzdG12T1UwV0ZpMk0rSEZVMkJNV2lTaWt3CjRNeEk4elREa2F1MmkvUFY5K0pNNUw4RzhVRXlPTWd0YTB1NmRMTTM2VlhVZk5DalBvSkZHZFRvd2xUZER3WlkKRDEvdFZyMTFwdEhpNCtsd0pKZDYxVXJ2R29LQmRlRlN6b2hkYUNpUGREU1hHZlpUZHAwRG9JeGMzZFBtQnVCYworYmlMci9nTWY2UjJjcUp6Q1d6SDhJR0FDYkdhYWNMUjdmVkhJY2x5MU9ySWhaS2xoVng0b0djSWUvNEFERnh3Cjc4S1c2N2wrK0lEYncvQkE0a0lCdHVTWmlHMEtFZUt3czdhYTh0RWZ4MVE0dmJEZU1SUURFc1ovNUlwaHpZN3UKV0RvMnJOVTBkbXJFczc3Nm1reStxcUFwRURJMFVpZnV0SXU4UDR5V0RPbG5vY3hzTFNJVm1ybUdsTk9CaGxNRgp4V1BvRzMybUtpSG8xdTFIcDBQMDJ0V0F0Q3ovbllpNU93WDJYME92aDQ5cEN4amt4dVB2clRWQnVFbXJFWURnCmhNUHFoSWJCTXlXNSt5Y21XbVpEQWdmbmR5TUVOQXhucVhlRHRSRFdySmVpM2k2alVhMzE2TW9WbWRia3BHTEUKbm9iaWlMa1haTXNNdzFJc1RzU2hBb0lCQVFEZHFCNUhjODhVcHJPc1lWLzVsTGNHVUFVMENIdUFlZzhjQktHVQpHT0ZKa0RIMGthWDg5VHV3Q0hkdnZGWXR6a0MzcEw1ZVg2T3Fjcm9tMnZnODNYTU4zUDVYR0lJRFFFKzdOaXZmCmQraDBrUG9KamRwa3V2RW9WbzdrQzdmS2dMWkw2YTI3WGhCcVJFY2pQRHpTNHpJdlVGT2N2c2psWjVReGIvTmQKbm40RjY5UTg0N3ZXSXMyRmRVWGVMY0lUcVZiSGJTc25HMzFnUHBFUkUyajdyYWdERFlxbGVFd3IzcFR0Q0puUwpUY3RsNWRLOUVXSWZpRXh6SEZuM21JR0g1bEJlUVZHc0pXc1BuT2lKWEhoOFZ3dU10cVUvWnNudWNVeEZlTFU0ClNobk1kRjNOSCtVVlhrNlE3ZXlpbnBTMGExUzd4enhiVk9Gd2o3emk4d0dueEkyUkFvSUJBUURHSlMzTE14SW8KS1BuQXNEaVgzUlJwTk1GSjBLN0RWZGEycDhNKzZmL2g1dlg4YjA3cEs1dkJPOElVQThxc3VqZHEwaHZ0V2s4UwpiU1lkYmlJdmN1Wm1PL3pJTytwMUU1eXpxd2tORjFOQkRuN2E3WlZrdDUrTUNKMFhaNXZPVmtMQWdlVmVRV1RDCklUZnBDemdzMnQzeWdSK01XbDJTU2c5MUx0dFdmTk1DdGR3SXh6WjVQRVcrc2hrY3VJR2lvWXova3NPZ3JtNCsKUnpVNzdiNEN3N0tXNTMwWWtxcS91ek1kTU1KN04yVEhsTmlZTFVOSUx3ZG9LdnVOaVFmdGtBbTJTVTZodnV5RwpDejRjZStSM1NERnNSc0dDWm1DbFVYekEwV29sRFhRbjBLK01CRDJEZVlmZ052VmZYR2ROcVVrZ1VZUVZmc09jCm5hdFdmMG1LNDM4bkFvSUJBUUMrd0NJbW5Xd1ZPb3lmQ1VGOTJGUlZrMkdXOE1IUHc3cmpBcjFHWk03ajdycCsKM1NTNmR4U0JuaGVpeWJKa1F2NEF6RDZqbXF5UFQ2SVJOQm15ejJSbkJzcStpekcvdUlXazk2NXo1bzNlV3JGQwpyWmZIWGZXUklFUmh6Zy9CcmxpekpZdEVGbVFMLzJ3MHoyOE1rVWFyM3ZYRmk0MzVsZFM3WXJ0TjBzcGpNQnI2CnQ0VDdlQUhrR3hNZ2E4SjhCeHZPRFkyNFh2amJiWnlMMUdkaFI0V3g4dUpoR2hCN0pGYUhVZ0tHTURxZEcxWHIKTFYyREExbS9LaVBtWnBENk1lTHg2a1p0M2Rtdm12bW0xRFEvMU96MGtHM1BEUmMwSXI1ZmZzeDlmNCtLR281cQpxMHNLdzVqYk1sV1ZjT0ZLRHAvaDVVaDAxS3dab1NrTktkRS8zbTl4QW9JQkFRQ1ZBTEplSXVxZGZxckpwdnIzCjRJMlB5OWNxYmg1dHorZ2w5U1JTOUY2eS94NnVGUG9QUi9iWnFkbDVlWng0cFpRMDVRbVJSSjgvcVFySGlPRjIKTXY1bGxPaXpuckxpRmJ4Nk03MGJ0aFdxVDM4L25QZ0NCRCtiYTRMT2JlQnhtdGFaczFUTHUzdE1yUFJCY0dsdQorYXQ3eUhQejlLUjI5UENJMjVLZmlFQ1p3aTVULzVMTU9uSHNSRHUwS0Y5NzcrWjY3bC9rUGlleTk1TmxuSk9OCnVxSmE3bnRZOWpvbThsd3VzRk1mbTNsU3lIRFVodjBZbEIwS3pYL2JZRmV3NHVjYXlDZTBaRUd6VDFNRzBuZnMKNTBJYlBWNFpkR2xyQ0VzN0tIK2NtM0JrM0g2V1dUMzAxM2hCT0xMdVlpdGc4Rk9JVlNSeGthRUI3bU5CS1hraApVNUJ6QW9JQkFFc1BYMno3OWlvOHJnV1lSek1zV2l0NFdvRjNzN214MDkxakJWTTRtazFvYWg1ZktPbjRPblJEClVkWmtOT0RlRnNjSkFrRElWRnA0ZkU4Mk0rNGNxUWx4aEJnQ0RBQjFQd0pFSDJ4UjZsY2ttQWwzVWt5eU5KY1kKeDJVLythWjAxL3lCbTZYdWZNT1VDU3A4QWw4WTkrVGNEeWYxZDdsYXU2emdsKzlyUXVtZ1oxZFp6MVlGTkJVSAp1dHhxVzFNbkV0bVljQ3lGcU1ReFI3UEhyTFR3YU1OWlJ3VExXUjNnZUFNRUJFZVhYT3lHVVc1VElIU0VlMGVwCmpTbVRNU2ZLOFRXemNFNmdXVkJDT1JuZ2RGTUNKU1d3c2FIaFV3SGM2Z3RjbnpWYWtBMURjb0hXSEk3eXZBalYKbUFEUXZmdTFJcVJFQ1lpNnJlMTg4TnQ0clUrbFNNZz0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo= +kind: Secret +metadata: + creationTimestamp: "2021-12-05T16:59:29Z" + name: activemq-artemis-webhook-server-cert +type: kubernetes.io/tls diff --git a/deploy/Service_activemq-artemis-webhook-service.yaml b/deploy/Service_activemq-artemis-webhook-service.yaml new file mode 100644 index 000000000..0f9dda4d9 --- /dev/null +++ b/deploy/Service_activemq-artemis-webhook-service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: activemq-artemis-webhook-service +spec: + ports: + - port: 443 + protocol: TCP + targetPort: 9443 + selector: + control-plane: controller-manager diff --git a/deploy/ValidatingWebhookConfiguration_activemq-artemis-validating-webhook-configuration.yaml b/deploy/ValidatingWebhookConfiguration_activemq-artemis-validating-webhook-configuration.yaml new file mode 100644 index 000000000..08da7c82b --- /dev/null +++ b/deploy/ValidatingWebhookConfiguration_activemq-artemis-validating-webhook-configuration.yaml @@ -0,0 +1,69 @@ +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + creationTimestamp: null + name: activemq-artemis-validating-webhook-configuration +webhooks: +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /validate-broker-amq-io-v1beta1-activemqartemis + failurePolicy: Fail + name: vactivemqartemis.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemises + sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /validate-broker-amq-io-v1beta1-activemqartemisaddress + failurePolicy: Fail + name: vactivemqartemisaddress.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemisaddresses + sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /validate-broker-amq-io-v1beta1-activemqartemissecurity + failurePolicy: Fail + name: vactivemqartemissecurity.kb.io + rules: + - apiGroups: + - broker.amq.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - activemqartemissecurities + sideEffects: None diff --git a/deploy/crds/broker_activemqartemis_crd.yaml b/deploy/crds/broker_activemqartemis_crd.yaml index aefc42c55..c0ece12ba 100644 --- a/deploy/crds/broker_activemqartemis_crd.yaml +++ b/deploy/crds/broker_activemqartemis_crd.yaml @@ -5,6 +5,18 @@ metadata: controller-gen.kubebuilder.io/version: v0.7.0 name: activemqartemises.broker.amq.io spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdpekNDQkhPZ0F3SUJBZ0lVWXh6UkpyemJuUnFBUDhqQ1pETnA5QlRFMW5Zd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dhc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SUXdFZ1lEVlFRSApEQXRNYjNNZ1FXNW5aV3hsY3pFVk1CTUdBMVVFQ2d3TVFYSjBaVzFwYzBOc2IzVmtNUkV3RHdZRFZRUUxEQWhQCmNHVnlZWFJ2Y2pGSE1FVUdBMVVFQXd3K1lXTjBhWFpsYlhFdFlYSjBaVzFwY3kxM1pXSm9iMjlyTFhObGNuWnAKWTJVdVlXTjBhWFpsYlhFdFlYSjBaVzFwY3kxdmNHVnlZWFJ2Y2k1emRtTXdIaGNOTWpFeE1qSTBNVE0xTXpBegpXaGNOTXpFeE1qSXlNVE0xTXpBeldqQ0JxekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnTUNrTmhiR2xtCmIzSnVhV0V4RkRBU0JnTlZCQWNNQzB4dmN5QkJibWRsYkdWek1SVXdFd1lEVlFRS0RBeEJjblJsYldselEyeHYKZFdReEVUQVBCZ05WQkFzTUNFOXdaWEpoZEc5eU1VY3dSUVlEVlFRRERENWhZM1JwZG1WdGNTMWhjblJsYldsegpMWGRsWW1odmIyc3RjMlZ5ZG1salpTNWhZM1JwZG1WdGNTMWhjblJsYldsekxXOXdaWEpoZEc5eUxuTjJZekNDCkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3VRT0Y0aHdLK0xRejJnRGZ3aENQczAKeTJVVXp3SmN5SVhWY1VDeElXNDhMeWw1NXdvZkZhWmk1MHRyRisxUzM0OVAvNHFieDZQQVlmbk53Z0gvZmxKNQpXaFZoTG5DTFVrUjZYS3N0WWZIVjZBcW5BSlNXYWZPR2lGb2JHWVI4L1ZrdytKK3dCZHlGamRRc3NDNHczL0J1Cms2U3dLOFVEOFFFa1BKMGpyWHdPNkxvZnRxcVloWmd6N2poTEQxcXkyTDJmTFV6TVh0bEtReHI1Z2FNMzQwZ0cKaU9oNS96SGE1WmNsNXNMSzlRMlRtSk4vMVZGQjNNK2RzOEEreG1oS0pOSVNYaHMzRkpha2FYM05kQ2R4SVdYRQorOUtVU1BteXFKMmFaVEVlUHY2cXpCcVJOSlB6TjFhWURNZitFS2wwZ09hOG9NUzNVQVc3azRyZ2pNVWJ5dVFMCkExb0poVEdQcThiZWEwYUNGK1VaUCtEWFQ1YVJ3UWI4WCt1dWdqSFV4WGkrVndpUnJ1bXFFNWJlZ1kyK0h2Z1EKQWRNM0tSaTBVYVR2UXA4ajJUUG5pMVRCK0FYdmxlNjZwMFp3NE5HcWpaQTdVZGdTZlNBQzkxT1B5bnE0T0QvdQowYnloZVFFTjUvVmtJVzE4UVV6TkMxMVBFWmhFOXhXQ0JvdnEvSytEMjRNcllEb3MrQm84blFSY3c5UjN4ZW8vCmJpd3o2dXlVamJSUEgreStzVlJXeXhsdUNnRnVMdFVuMFlyZTE3Q1FQZnp3aXRNaStZWjhBb3ZYeHZZSlhFSm0KSE9nbzdqOFpFWVlTWDNCNS9GOVoyei9hSlJtc3dTUHVrT0RtZ0REZEJDWURZNk1ya1BYVTZocS8rYmtQcGZJbQp0N05sSHB3N0RuOEYzRzNDdjRBWEFnTUJBQUdqZ2FRd2dhRXdDd1lEVlIwUEJBUURBZ1F3TUJNR0ExVWRKUVFNCk1Bb0dDQ3NHQVFVRkJ3TUJNSDBHQTFVZEVRUjJNSFNDUG1GamRHbDJaVzF4TFdGeWRHVnRhWE10ZDJWaWFHOXYKYXkxelpYSjJhV05sTG1GamRHbDJaVzF4TFdGeWRHVnRhWE10YjNCbGNtRjBiM0l1YzNaamdqSmhiWEV0WW5KdgphMlZ5TFhkbFltaHZiMnN0YzJWeWRtbGpaUzVoYlhFdFluSnZhMlZ5TFc5d1pYSmhkRzl5TG5OMll6QU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBZ0VBU0ZqT1NyMWVaVzh5dlpXTkx0L0hXaU1TK0E3MlNTODkySnhlTlZCTTNEVWUKMEVrSllnaXk1QzJqaWN6WFdLWXl4ZUo2TDdIVWwzNmZRbFptOC9Ea1NETUlrOTByd1dFWE45RUdIRUpIdEN0WAo0L0l4elJsTVJYK1Ric3FJZFF3SjlpNkFtVjBqaUdlcFpEOStpTi9nL2pYT2NSSFAza3dFVWkxcG9Uc3E5ZkZ0ClRtYU9HYjRZeXN5dWx4S1VtcTlDU1NpbkpNeW01S2o0cUFJSEVDS2RaaTg4b2JUeHl6b1VvY1RNeWw5ZXdTU0UKZDQrakRiWTBQWEc5OXpCZ0FKbjVSSEs3Qm0yL1N0MnNZMy9xUWhsbVZSTWg4eU9sZk9OVDc0WlRJSlFvZDljVwpZOHdqMGY4dmx5VVFreGd6OHZyTVpSV3kvNHhhazViTWw0NkE2SEk4SWJ6eldXaEUwTVdPWkprR1MxMHo1dVdHCkNMYyswdHJVcHprNWFoNXU5QVZZQXhYNUlKeDIxdVBYUnUydmZ6VDBYOE9kNkF1SXd3djFLUUxpSFBNWG9sTysKdjhKejNlZEhVMDBlajFPeGN3OGkzbVNyUDVKNVlONkQrdUFhVWtWNTZzMlk0SlNiME41a0kyT2tRNjMwbGRZUApROGNxQVBRczFwODRuK2xveVVrWnZsSUdkNVVYSTZuWXFNTFQ4dGZoVGFzQVNuOW4zREtGRGJ3VE85eG01bldWCjlrZk1HVWdHNWVoLzFVZmxQWlA4UmhkVTlVbjZob1dla3doMkMzTnZTUFhZL1l0ZHVKK295ZjJ2QTdQMXdHSzMKdjJVRDIwL09YUnZxd2dTUlBVOHVtK3NxU0Rab0NKeWxFZXZ4aHFmZXFzUk5vdDAwNGJPY2ZjQlUydnpnR0wwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + service: + name: activemq-artemis-webhook-service + namespace: activemq-artemis-operator + path: /convert + conversionReviewVersions: + - v2alpha5 + - v1beta1 group: broker.amq.io names: kind: ActiveMQArtemis diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 725e5e717..0eab57326 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -86,6 +86,10 @@ spec: initialDelaySeconds: 15 periodSeconds: 20 name: manager + ports: + - containerPort: 9443 + name: webhook-server + protocol: TCP readinessProbe: httpGet: path: /readyz @@ -94,7 +98,16 @@ spec: periodSeconds: 10 securityContext: allowPrivilegeEscalation: false + volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: cert + readOnly: true securityContext: runAsNonRoot: true serviceAccountName: activemq-artemis-controller-manager terminationGracePeriodSeconds: 10 + volumes: + - name: cert + secret: + defaultMode: 420 + secretName: activemq-artemis-webhook-server-cert