Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.
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
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,11 @@ To clean up the getting started guide, delete each of the created assets:

```console
kubectl delete -f \
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/trigger.yaml\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/display-target.yaml\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/display-deadlettersink.yaml\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/broker.yaml\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/trigger.yaml,\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/display-target.yaml,\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/display-deadlettersink.yaml,\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/broker.yaml,\
https://raw.githubusercontent.com/triggermesh/triggermesh-core/main/docs/getting-started/curl.yaml
```

## Installation
Expand Down
3 changes: 3 additions & 0 deletions config/500-core-controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ spec:
value: redis/redis-stack-server:latest
- name: REDISBROKER_BROKER_IMAGE
value: gcr.io/triggermesh/redis-broker:dev
# Pull policy for broker, REMOVE for production environments
- name: REDISBROKER_BROKER_IMAGE_PULL_POLICY
value: Always

securityContext:
runAsNonRoot: true
Expand Down
6 changes: 4 additions & 2 deletions pkg/reconciler/redisbroker/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ import (
// github.com/kelseyhightower/envconfig. If this configuration cannot be extracted, then
// NewController will panic.
type envConfig struct {
RedisImage string `envconfig:"REDISBROKER_REDIS_IMAGE" required:"true"`
BrokerImage string `envconfig:"REDISBROKER_BROKER_IMAGE" required:"true"`
RedisImage string `envconfig:"REDISBROKER_REDIS_IMAGE" required:"true"`
BrokerImage string `envconfig:"REDISBROKER_BROKER_IMAGE" required:"true"`
BrokerImagePullPolicy string `envconfig:"REDISBROKER_BROKER_IMAGE_PULL_POLICY" default:"IfNotPresent"`
}

// NewController initializes the controller and is called by the generated code
Expand Down Expand Up @@ -79,6 +80,7 @@ func NewController(
serviceLister: serviceInformer.Lister(),
endpointsLister: endpointsInformer.Lister(),
image: env.BrokerImage,
pullPolicy: corev1.PullPolicy(env.BrokerImagePullPolicy),
},
}

Expand Down
6 changes: 4 additions & 2 deletions pkg/reconciler/redisbroker/reconcile_broker.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ type brokerReconciler struct {
serviceLister corev1listers.ServiceLister
endpointsLister corev1listers.EndpointsLister
image string
pullPolicy corev1.PullPolicy
}

func (r *brokerReconciler) reconcile(ctx context.Context, rb *eventingv1alpha1.RedisBroker, redis *corev1.Service, secret *corev1.Secret) (*appsv1.Deployment, *corev1.Service, error) {
Expand All @@ -63,7 +64,7 @@ func (r *brokerReconciler) reconcile(ctx context.Context, rb *eventingv1alpha1.R
return d, svc, nil
}

func buildBrokerDeployment(rb *eventingv1alpha1.RedisBroker, redis *corev1.Service, secret *corev1.Secret, image string) *appsv1.Deployment {
func buildBrokerDeployment(rb *eventingv1alpha1.RedisBroker, redis *corev1.Service, secret *corev1.Secret, image string, pullPolicy corev1.PullPolicy) *appsv1.Deployment {

v := resources.NewVolume("config",
resources.VolumeFromSecretOption(secret.Name, configSecretKey, configSecretFile))
Expand All @@ -82,6 +83,7 @@ func buildBrokerDeployment(rb *eventingv1alpha1.RedisBroker, redis *corev1.Servi
resources.ContainerAddVolumeMount(vm),
resources.ContainerAddEnvFromValue("BROKER_CONFIG_PATH", configMountedPath),
resources.ContainerAddEnvFromValue("REDIS_STREAM", stream),
resources.ContainerWithImagePullPolicy(pullPolicy),
}

if rb.Spec.Redis != nil && rb.Spec.Redis.StreamMaxLen != nil && *rb.Spec.Redis.StreamMaxLen != 0 {
Expand Down Expand Up @@ -131,7 +133,7 @@ func buildBrokerDeployment(rb *eventingv1alpha1.RedisBroker, redis *corev1.Servi
}

func (r *brokerReconciler) reconcileDeployment(ctx context.Context, rb *eventingv1alpha1.RedisBroker, redis *corev1.Service, secret *corev1.Secret) (*appsv1.Deployment, error) {
desired := buildBrokerDeployment(rb, redis, secret, r.image)
desired := buildBrokerDeployment(rb, redis, secret, r.image, r.pullPolicy)
current, err := r.deploymentLister.Deployments(desired.Namespace).Get(desired.Name)
switch {
case err == nil:
Expand Down
2 changes: 1 addition & 1 deletion pkg/reconciler/redisbroker/reconcile_secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func (r *secretReconciler) buildConfigSecret(ctx context.Context, rb *eventingv1
} else {
// Configure empty URL so that all requests go to DLS when the target is
// not ready.
targetURI = "http://"
targetURI = ""
}

do := &broker.DeliveryOptions{}
Expand Down
6 changes: 6 additions & 0 deletions pkg/reconciler/resources/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,9 @@ func ContainerAddVolumeMount(vm *corev1.VolumeMount) ContainerOption {
c.VolumeMounts = append(c.VolumeMounts, *vm)
}
}

func ContainerWithImagePullPolicy(policy corev1.PullPolicy) ContainerOption {
return func(c *corev1.Container) {
c.ImagePullPolicy = policy
}
}
29 changes: 29 additions & 0 deletions pkg/reconciler/resources/container_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,35 @@ func TestNewContainer(t *testing.T) {
},
},
}},
"with env from secret": {
options: []ContainerOption{
ContainerAddEnvVarFromSecret("test-env", "test-secret", "test-key"),
},
expected: corev1.Container{
Name: tName,
Image: tImage,
Env: []corev1.EnvVar{
{
Name: "test-env",
ValueFrom: &corev1.EnvVarSource{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "test-secret",
},
Key: "test-key",
},
},
}},
}},
"with image pull policy": {
options: []ContainerOption{
ContainerWithImagePullPolicy(corev1.PullAlways),
},
expected: corev1.Container{
Name: tName,
Image: tImage,
ImagePullPolicy: corev1.PullAlways,
}},
}

for name, tc := range testCases {
Expand Down