Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ ARCH ?= $(shell go env GOARCH)
OS ?= $(shell uname -s | tr A-Z a-z)
K8S_LATEST_VER ?= $(shell curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
export CONTROLLER_IMG ?= $(REGISTRY)/$(IMAGE_NAME)
TAG ?= v1.0.0
TAG ?= main

## Tool Binaries
CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen
Expand Down
6 changes: 6 additions & 0 deletions api/v1beta1/eventtrigger_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,18 +239,21 @@ type EventTriggerSpec struct {
// that need to be deployed in the matching clusters based on EventSource.
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
PolicyRefs []configv1beta1.PolicyRef `json:"policyRefs,omitempty"`

// Helm charts to be deployed in the matching clusters based on EventSource.
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
HelmCharts []configv1beta1.HelmChart `json:"helmCharts,omitempty"`

// Kustomization refs
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
KustomizationRefs []configv1beta1.KustomizationRef `json:"kustomizationRefs,omitempty"`

Expand All @@ -259,13 +262,15 @@ type EventTriggerSpec struct {
// is healthy
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
ValidateHealths []libsveltosv1beta1.ValidateHealth `json:"validateHealths,omitempty"`

// Define additional Kustomize inline Patches applied for all resources on this profile
// Within the Patch Spec you can use templating
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
Patches []libsveltosv1beta1.Patch `json:"patches,omitempty"`

Expand All @@ -274,6 +279,7 @@ type EventTriggerSpec struct {
// when evaluating drift, optionally targeting specific resources and features.
// This field will be directly transferred to the ClusterProfile Spec
// generated in response to events.
// +listType=atomic
// +optional
DriftExclusions []libsveltosv1beta1.DriftExclusion `json:"driftExclusions,omitempty"`

Expand Down
6 changes: 6 additions & 0 deletions config/crd/bases/lib.projectsveltos.io_eventtriggers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ spec:
- paths
type: object
type: array
x-kubernetes-list-type: atomic
eventSourceName:
description: |-
EventSourceName is the name of the referenced EventSource.
Expand Down Expand Up @@ -694,6 +695,7 @@ spec:
rule: 'self.repositoryURL.startsWith(''oci'') ? size(self.repositoryName)
>= 1 : true'
type: array
x-kubernetes-list-type: atomic
kustomizationRefs:
description: |-
Kustomization refs
Expand Down Expand Up @@ -837,6 +839,7 @@ spec:
- namespace
type: object
type: array
x-kubernetes-list-type: atomic
maxUpdate:
anyOf:
- type: integer
Expand Down Expand Up @@ -927,6 +930,7 @@ spec:
- patch
type: object
type: array
x-kubernetes-list-type: atomic
policyRefs:
description: |-
PolicyRefs references all the ConfigMaps/Secrets containing kubernetes resources
Expand Down Expand Up @@ -988,6 +992,7 @@ spec:
- name
type: object
type: array
x-kubernetes-list-type: atomic
reloader:
default: false
description: |-
Expand Down Expand Up @@ -1300,6 +1305,7 @@ spec:
- version
type: object
type: array
x-kubernetes-list-type: atomic
required:
- eventSourceName
- sourceClusterSelector
Expand Down
2 changes: 1 addition & 1 deletion config/default/manager_auth_proxy_patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ spec:
- "--shard-key="
- "--capi-onboard-annotation="
- "--v=5"
- "--version=v1.0.0"
- "--version=main"
- "--agent-in-mgmt-cluster=false"
2 changes: 1 addition & 1 deletion config/default/manager_image_patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ spec:
spec:
containers:
# Change the value of image field below to your controller image URL
- image: docker.io/projectsveltos/event-manager:v1.0.0
- image: docker.io/projectsveltos/event-manager:main
name: manager
6 changes: 5 additions & 1 deletion controllers/eventtrigger_deployer.go
Original file line number Diff line number Diff line change
Expand Up @@ -1593,7 +1593,11 @@ func getClusterProfilePolicyRefs(localPolicyRef, remotePolicyRef []configv1beta1

// getResources returns a slice of unstructured.Unstructured by processing eventReport.Spec.Resources field
func getResources(eventReport *libsveltosv1beta1.EventReport, logger logr.Logger) ([]unstructured.Unstructured, error) {
elements := strings.Split(string(eventReport.Spec.Resources), "---")
elements, err := deployer.CustomSplit(string(eventReport.Spec.Resources))
if err != nil {
return nil, err
}

result := make([]unstructured.Unstructured, 0)
for i := range elements {
if elements[i] == "" {
Expand Down
45 changes: 44 additions & 1 deletion controllers/eventtrigger_deployer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ import (

const (
ClusterKind = "Cluster"
separator = "---"
separator = "---\n"
nginxDeploymentName = "nginx-deployment"
)

Expand Down Expand Up @@ -371,6 +371,49 @@ var _ = Describe("EventTrigger deployer", func() {
Expect(reflect.DeepEqual(hash, expectedHash)).To(BeTrue())
})

It("getResources ", func() {
//nolint: lll // this is a test
eventReportYAML := `apiVersion: lib.projectsveltos.io/v1beta1
kind: EventReport
metadata:
creationTimestamp: "2025-08-08T08:49:40Z"
generation: 2
labels:
eventreport.projectsveltos.io/cluster-name: mgmt
eventreport.projectsveltos.io/cluster-type: sveltos
projectsveltos.io/eventsource-name: trust-bundle-propagation
name: sveltos--trust-bundle-propagation--mgmt
namespace: mgmt
resourceVersion: "87772893"
uid: edd11b32-e77e-459f-aca8-b50cb2af60bd
spec:
clusterName: mgmt
clusterNamespace: mgmt
clusterType: Sveltos
eventSourceName: trust-bundle-propagation
matchingResources:
- apiVersion: v1
kind: ConfigMap
name: linkerd-identity-trust-roots
namespace: linkerd
resources: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7ImNhLWJ1bmRsZS5jcnQiOiItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuVENDQVVPZ0F3SUJBZ0lSQUt2KzhzWmpsV2RrdUJ6bnFaTExocnN3Q2dZSUtvWkl6ajBFQXdJd0xqRXNcbk1Db0dBMVVFQXhNaloyeHZZbUZzTFRFdGNtOXZkQzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05cbk1qVXdPREE0TURRd05qSTBXaGNOTWpVeE1UQTJNRFF3TmpJMFdqQXVNU3d3S2dZRFZRUURFeU5uYkc5aVlXd3Rcbk1TMXliMjkwTG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlcbkF3RUhBMElBQkJudkQ1Wm5DTExNcGlzY0pheFdZQXYvclhBZ0c2NU9kb3FOUmZsTVdwUWRNcDQyYmZpdlU4d1dcbkwzUFAwYmRMREdlWGNtaE1NNW9HSm5Ob3ZwLzZCdUdqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZcbkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlFoZUpJNWpIamtCaDkxOXFzUmJHdUNDdXJsRERBS0JnZ3Fcbmhrak9QUVFEQWdOSUFEQkZBaUJ4V3dxZDFkK2x2UnBxSytMdTRYSVdjUGQvVjMydlZTV2E4MGVQcHNVa0JnSWhcbkFPZ0xjeWN0WUtSMUFEWFA3UHF3dElIbzhlMU9NN0xGTXp0Q21Cd3hPMks0XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuRENDQVVLZ0F3SUJBZ0lRU3hwRGFkYzRYMWZEQ0licjZVdENyREFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TnkxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk16UmFGdzB5TlRFeE1EWXdOREEyTXpSYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMDNcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFblBSRXlkUjVyQlJDNGwyZzJBTEkrNWd3Qi9QenZzUndYS3pSc3Bsc1pBbkU3MjZMYlRjdUZ3TFFcbnVmUjZ0WHA2ZzhCcEtLWXhBY2plSlJURjVQSW5pYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGRXVyRnoyU0ZDZlFWbm5KajJLM0JjdkNjdlhxTUFvR0NDcUdcblNNNDlCQU1DQTBnQU1FVUNJUUNVR1NjSHJTWmtQblR6UHBtSjdRaGcvQ1RkaEZmL0ZSQVdDTjZHdGc5VERnSWdcbkxXcTRFdGUySFVNQzZObG1WZkxEWmxUcGt1NUpZbnczN0t5Z1lzTUJzRXc9XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuVENDQVVPZ0F3SUJBZ0lSQU91Y0ZQZEVnRHdaMzBLT3N1dm9qdzh3Q2dZSUtvWkl6ajBFQXdJd0xqRXNcbk1Db0dBMVVFQXhNaloyeHZZbUZzTFRrdGNtOXZkQzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05cbk1qVXdPREE0TURRd05qTTNXaGNOTWpVeE1UQTJNRFF3TmpNM1dqQXVNU3d3S2dZRFZRUURFeU5uYkc5aVlXd3Rcbk9TMXliMjkwTG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlcbkF3RUhBMElBQkt2dkFvbzkyK3J5NzdmYlpPNlpBdjJ4YmhIN0pkdGMyaE52R29TOGxwVjAxQUFqbkF5MWxRYjRcbjBVQk9heXZpQ2dTZEcwZzBTdnI5Qmh1QWE1TENwcjJqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZcbkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlJQTkp2emh5a1hwQ3RibFlnN2ZoRUhaaGlRd2pBS0JnZ3Fcbmhrak9QUVFEQWdOSUFEQkZBaUFrVlVTWXBmcVpjWFVQSGtQb3VRTnZhTzY5UklZU0xpZEhKcjA5ZHF6dDhnSWhcbkFLVkZZK3ZqWGdSa1ZlWXRKUGdRKzJoUnJXY3dNRUtTdWFwY3NKamJLTDFYXG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuRENDQVVLZ0F3SUJBZ0lRUTUzY2JxUVMwbDh5RVFyWGFQc0pLekFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TlMxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk16RmFGdzB5TlRFeE1EWXdOREEyTXpGYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMDFcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFU0I4Z1dwaGhhWHdaL2hTdVpPYlFaelRTYkk2ZjNGcTRjbmhXY05sVGR3MzdBR2g2Z2E3WStmd3JcbnY2U2VUaVhLdEY4UkIvMktUckVzOXkwNzErMEhKS05DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGSXkzOGJHNmZrU1ZXK1FCTldiSmFoclRsZEx4TUFvR0NDcUdcblNNNDlCQU1DQTBnQU1FVUNJRWNBVHZPL3dLem1BanVZUENJZVhlM0hrZS90Zk9uWG9sWUd6RjBrWmREaEFpRUFcbm9pd2hqckRGLy8ranlOaHB6RkpHTkJCZDNjbXluVFpSc3JCeHR6MFZHYTQ9XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJtekNDQVVLZ0F3SUJBZ0lRT0ZqdFc0L0NmMGEzcnU4MExtbHc1akFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TWkxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk1qZGFGdzB5TlRFeE1EWXdOREEyTWpkYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMHlcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFQ1Z0dlZXSHNqTEdWZGZiMkErZjVkbFg5NGhuNHdrOU81NHhZZzlCR0cxK1dlUklFRWNLOHBtU2VcbjJ1SGc4ZnBoQmxqNTFrNmRwVkdOSUt1MXRqRWZTcU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGQTdUSmRhN2xrc3NaSWNCRDhWd2t5eGhKMyszTUFvR0NDcUdcblNNNDlCQU1DQTBjQU1FUUNJRytFYVhWSHFKZGNkbnkvZjFyWVgwZVEvRlpzdmt3clJLdDJsVnNQNms0N0FpQndcblhDZ3RGaGRYYnluS1d5dTAwQisyKzRsOXpCWnpyb3dScXJPVWpaOUo2dz09XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuRENDQVVLZ0F3SUJBZ0lRRFNVV2ZYNkg1anhTSU8rWGpHeTZ0VEFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TUMxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk1qVmFGdzB5TlRFeE1EWXdOREEyTWpWYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMHdcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFb25iUlA5OWUwa3hkRy95MTFnRFNWZUlPTS9zMWpJOWhRRk5JNHhnUE9Pam9tV293SXd0blpuZnVcbk9kaDcyTFBXWkJPNmNZaFRxN01TRGN0ZFRiUEhJcU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGRlBDaUUvTUxLK0ltdW54ekd4WkdaeHhjSVdyTUFvR0NDcUdcblNNNDlCQU1DQTBnQU1FVUNJQmNUWkF0QzdxWWZ5QnA4NEtZRGNUQS9RL2RiQ1l3ZnlLc3IvSENVODhBaEFpRUFcbjJlTTlFQlJFSHpEWldhLzdvRGFzbU9KTlFTa1FZWVhZa1pvK3Bzcm9LK3c9XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuVENDQVVPZ0F3SUJBZ0lSQVBudkxTWGhSc2U4Q1RSbnFqNmM4b013Q2dZSUtvWkl6ajBFQXdJd0xqRXNcbk1Db0dBMVVFQXhNaloyeHZZbUZzTFRRdGNtOXZkQzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05cbk1qVXdPREE0TURRd05qSTJXaGNOTWpVeE1UQTJNRFF3TmpJMldqQXVNU3d3S2dZRFZRUURFeU5uYkc5aVlXd3Rcbk5DMXliMjkwTG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlcbkF3RUhBMElBQkNOM1JCTksvQUMrcENkbkpoOXdZOSsrOTE3V00wSEpROWpscjRLWWpDMEpFU3h0eGJINHN6cVFcbk1SOU9NbXkrQ1haYUNDSHltYkUxL1FpbzRpOXV2RXVqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZcbkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlNFZ0RvejRtNkR1dlJ1eDE2cUJQdEs2TENvU3pBS0JnZ3Fcbmhrak9QUVFEQWdOSUFEQkZBaUVBNG9tRjIwbHR1YkNpZ0I3WXcxdVNSS2h2MklQMjZFWFUvSEtvZjhjY1N5NENcbklHVUd4ZjZaZzV2QjlEaG9Ma0piY2VtUElLSnRVLzNWdzdOV0tNdnJ6WjlLXG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuRENDQVVLZ0F3SUJBZ0lRT2FaRnc4eVRnWTBqbFlkbkFVK3pwekFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TmkxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk16RmFGdzB5TlRFeE1EWXdOREEyTXpGYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMDJcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFa3VCMFpEblBuUUxyaGVnZ1gwSmpaeHg5SllXcHp2aUx6VVVwWkhtU1VvU29jbC9rbnhzM2JxNWVcbjZnWVBFUk50bXUxZFhxOVZjUlg0WkpzT2k2R0dVS05DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGRXYvRFlxVE1wMExGelI0MDNpTDZEdzZIK1RITUFvR0NDcUdcblNNNDlCQU1DQTBnQU1FVUNJUUNhTmNwK1VDYnNMdmpLbFIwM0VObFROamNZY3JoL0U5eStEeitnVEYzdldnSWdcblN0ZDhlazg4MXNVMGhGRUlTWW04bG5mWGpXM2Zna0tMVXo5UkNNWW5KNDQ9XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuVENDQVVPZ0F3SUJBZ0lSQUtvWitMUEhIejhqS2t1bTJTc1BaL013Q2dZSUtvWkl6ajBFQXdJd0xqRXNcbk1Db0dBMVVFQXhNaloyeHZZbUZzTFRndGNtOXZkQzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05cbk1qVXdPREE0TURRd05qTTFXaGNOTWpVeE1UQTJNRFF3TmpNMVdqQXVNU3d3S2dZRFZRUURFeU5uYkc5aVlXd3Rcbk9DMXliMjkwTG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlcbkF3RUhBMElBQkVjbkxtY2JsYmI5TUVWZDN3UjdnOVRYVjlGUStlMzI3RzBMTEZGWjNHamtHcWNxMk9TUVVkdVBcbm5DQTRnc1NlMGhvRXRGOUFJSnF5eXJxT2N1Y2lNbHFqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZcbkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlJ5NG1sZGpRbjNRZkFCcEUrSzhlb1lKYVZiMHpBS0JnZ3Fcbmhrak9QUVFEQWdOSUFEQkZBaUJPbE5oakdpNXVwSkZZVG9yN1hydjgvYURWRFJCNWpYc1MvRHpYL1dwZW9nSWhcbkFNUHc5Mmd4M1A5SU80LzVhaWxpYkpBTm1zekxvd1JIZjlzZERXZmVITkNxXG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUJuRENDQVVLZ0F3SUJBZ0lRZmhsUktwcFNkbmgvb2NaNnBGa0FWREFLQmdncWhrak9QUVFEQWpBdU1Td3dcbktnWURWUVFERXlObmJHOWlZV3d0TXkxeWIyOTBMbXhwYm10bGNtUXVZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlcbk5UQTRNRGd3TkRBMk1qaGFGdzB5TlRFeE1EWXdOREEyTWpoYU1DNHhMREFxQmdOVkJBTVRJMmRzYjJKaGJDMHpcbkxYSnZiM1F1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERcbkFRY0RRZ0FFd2JnWEdDT1J2S0Q2WFpOenhyMlNDUTBodThrMVlQNko1NkJERHpFZjNraTl2bmtNR2xxV0NLaEhcbjBCQUhkMHYycGplSVBFQy9UVER1YnpSUDNaNCt1YU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRcbkV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGTzE5dmdGbHVlZ0tVQ2dETE4vN3dlNlRHSHozTUFvR0NDcUdcblNNNDlCQU1DQTBnQU1FVUNJUUNlajg1MTRvQU5rb2l0NmxnM1hOZG1oTUg2a3lOblhBUXd1bkJNcHU4TTFRSWdcbkRHekZlMEk0aUpiVkdLM3RQbDc5S2RHSlM3bVZGMnFSWFBONVI0OTlLTVk9XG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tIn0sImtpbmQiOiJDb25maWdNYXAiLCJtZXRhZGF0YSI6eyJhbm5vdGF0aW9ucyI6eyJ0cnVzdC5jZXJ0LW1hbmFnZXIuaW8vaGFzaCI6IjBjMDY3OTExZGYwYjdlNjJlMjc0NjZkOTgxNWYwM2VlYTVlODdkMTczMmE3NzVmMDk5NGI2YTA0NmMzZGQwZWQifSwiY3JlYXRpb25UaW1lc3RhbXAiOiIyMDI1LTA4LTA3VDA2OjQ0OjUzWiIsImxhYmVscyI6eyJ0cnVzdC5jZXJ0LW1hbmFnZXIuaW8vYnVuZGxlIjoibGlua2VyZC1pZGVudGl0eS10cnVzdC1yb290cyJ9LCJtYW5hZ2VkRmllbGRzIjpbeyJhcGlWZXJzaW9uIjoidjEiLCJmaWVsZHNUeXBlIjoiRmllbGRzVjEiLCJmaWVsZHNWMSI6eyJmOmRhdGEiOnsiZjpjYS1idW5kbGUuY3J0Ijp7fX0sImY6bWV0YWRhdGEiOnsiZjphbm5vdGF0aW9ucyI6eyJmOnRydXN0LmNlcnQtbWFuYWdlci5pby9oYXNoIjp7fX0sImY6bGFiZWxzIjp7ImY6dHJ1c3QuY2VydC1tYW5hZ2VyLmlvL2J1bmRsZSI6e319LCJmOm93bmVyUmVmZXJlbmNlcyI6eyJrOntcInVpZFwiOlwiYWQ3Y2Y4MTUtYzZhNy00NDMxLTkzNGQtYTAwM2EwNjk5ODAxXCJ9Ijp7fX19fSwibWFuYWdlciI6InRydXN0LW1hbmFnZXIiLCJvcGVyYXRpb24iOiJBcHBseSIsInRpbWUiOiIyMDI1LTA4LTA4VDA0OjA2OjQwWiJ9XSwibmFtZSI6ImxpbmtlcmQtaWRlbnRpdHktdHJ1c3Qtcm9vdHMiLCJuYW1lc3BhY2UiOiJsaW5rZXJkIiwib3duZXJSZWZlcmVuY2VzIjpbeyJhcGlWZXJzaW9uIjoidHJ1c3QuY2VydC1tYW5hZ2VyLmlvL3YxYWxwaGExIiwiYmxvY2tPd25lckRlbGV0aW9uIjp0cnVlLCJjb250cm9sbGVyIjp0cnVlLCJraW5kIjoiQnVuZGxlIiwibmFtZSI6ImxpbmtlcmQtaWRlbnRpdHktdHJ1c3Qtcm9vdHMiLCJ1aWQiOiJhZDdjZjgxNS1jNmE3LTQ0MzEtOTM0ZC1hMDAzYTA2OTk4MDEifV0sInJlc291cmNlVmVyc2lvbiI6Ijg3MzAwMTAyIiwidWlkIjoiNTU1NzVmZWEtMzA4Yy00ZjM4LTg0MjUtYzYzMWY1YmU2YzAzIn19Ci0tLQ==
status:
phase: WaitingForDelivery`

u, err := deployer.GetUnstructured([]byte(eventReportYAML), logger)
Expect(err).To(BeNil())
Expect(len(u)).To(Equal(1))

eventReport := &libsveltosv1beta1.EventReport{}
err = runtime.DefaultUnstructuredConverter.
FromUnstructured(u[0].UnstructuredContent(), eventReport)
Expect(err).To(BeNil())

resources, err := controllers.GetResources(eventReport, logger)
Expect(err).To(BeNil())
Expect(len(resources)).To(Equal(1))
})

It("removeStaleEventReports removes all EventReports for a given cluster/eventSource pair", func() {
eventSourceName := randomString()
clusterNamespace := randomString()
Expand Down
1 change: 1 addition & 0 deletions controllers/export_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ var (
GetConsumersForEntry = getConsumersForEntry

GetCloudEvents = getCloudEvents
GetResources = getResources
)

type (
Expand Down
4 changes: 2 additions & 2 deletions manifest/deployment-shard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ spec:
- --shard-key={{.SHARD}}
- --capi-onboard-annotation=
- --v=5
- --version=v1.0.0
- --version=main
- --agent-in-mgmt-cluster=false
command:
- /manager
image: docker.io/projectsveltos/event-manager:v1.0.0
image: docker.io/projectsveltos/event-manager:main
livenessProbe:
failureThreshold: 3
httpGet:
Expand Down
10 changes: 8 additions & 2 deletions manifest/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ spec:
- paths
type: object
type: array
x-kubernetes-list-type: atomic
eventSourceName:
description: |-
EventSourceName is the name of the referenced EventSource.
Expand Down Expand Up @@ -698,6 +699,7 @@ spec:
rule: 'self.repositoryURL.startsWith(''oci'') ? size(self.repositoryName)
>= 1 : true'
type: array
x-kubernetes-list-type: atomic
kustomizationRefs:
description: |-
Kustomization refs
Expand Down Expand Up @@ -841,6 +843,7 @@ spec:
- namespace
type: object
type: array
x-kubernetes-list-type: atomic
maxUpdate:
anyOf:
- type: integer
Expand Down Expand Up @@ -931,6 +934,7 @@ spec:
- patch
type: object
type: array
x-kubernetes-list-type: atomic
policyRefs:
description: |-
PolicyRefs references all the ConfigMaps/Secrets containing kubernetes resources
Expand Down Expand Up @@ -992,6 +996,7 @@ spec:
- name
type: object
type: array
x-kubernetes-list-type: atomic
reloader:
default: false
description: |-
Expand Down Expand Up @@ -1304,6 +1309,7 @@ spec:
- version
type: object
type: array
x-kubernetes-list-type: atomic
required:
- eventSourceName
- sourceClusterSelector
Expand Down Expand Up @@ -1717,11 +1723,11 @@ spec:
- --shard-key=
- --capi-onboard-annotation=
- --v=5
- --version=v1.0.0
- --version=main
- --agent-in-mgmt-cluster=false
command:
- /manager
image: docker.io/projectsveltos/event-manager:v1.0.0
image: docker.io/projectsveltos/event-manager:main
livenessProbe:
failureThreshold: 3
httpGet:
Expand Down
Loading