Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
9f5f676
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.107.…
dependabot[bot] Aug 14, 2026
126beed
chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.…
dependabot[bot] Aug 14, 2026
8e3172b
chore(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 (#203)
dependabot[bot] Aug 17, 2026
9c93361
objectbucketsource configmap configuration (#198)
maschmid Aug 17, 2026
81cca3f
merge upstream/main into main
openshift-rebasebot[bot] Aug 17, 2026
88b1b12
Create OWNERS
gauron99 Jul 22, 2026
c5a5261
Update OWNERS
gauron99 Jul 27, 2026
56e9e11
Red Hat Konflux kflux-prd-rh02 update functions-operator
red-hat-konflux-kflux-prd-rh02[bot] Jul 28, 2026
f195115
Create OWNERS
gauron99 Jul 22, 2026
66c8f24
Update OWNERS
gauron99 Jul 27, 2026
1c3292a
Red Hat Konflux kflux-prd-rh02 update functions-operator-sources-obje…
red-hat-konflux-kflux-prd-rh02[bot] Jul 31, 2026
aca507b
pipelines rebuikd cel expressions
maschmid Jul 31, 2026
b6d8bf5
add rebase post-hook script
gauron99 Jul 31, 2026
8083ee9
UPSTREAM: <carry>: set downstream package name to serverless-functions
maschmid Jul 31, 2026
2136807
UPSTREAM: <carry>: generate combined bundle
maschmid Jul 31, 2026
2c1c2a3
drop policy in post-hook
gauron99 Jul 31, 2026
2a265fd
Red Hat Konflux kflux-prd-rh02 update functions-operator-bundle
red-hat-konflux-kflux-prd-rh02[bot] Jul 31, 2026
5d40966
UPSTREAM: <carry>: update .tekton CEL expressions
maschmid Jul 31, 2026
ce4574e
Update functions-operator to 73c4632
red-hat-konflux-kflux-prd-rh02[bot] Jul 31, 2026
0dbcaf1
Update functions-operator-sources-objectbucket to 74b67a0
red-hat-konflux-kflux-prd-rh02[bot] Jul 31, 2026
ebc90fe
UPSTREAM: <drop>: Remove .github directory (Actions disabled in OpenS…
gauron99 Jul 31, 2026
ed1383a
Update functions-operator to 77666f3
red-hat-konflux-kflux-prd-rh02[bot] Aug 3, 2026
5c8477f
add faas-console-plugin
maschmid Aug 3, 2026
2eac01d
fix serviceaccount generation
maschmid Aug 3, 2026
428f3bc
move console-plugin deployment management to func-operator
maschmid Aug 3, 2026
d6905ef
don't get notified of other namespaces' cms, deployments, services,sas
maschmid Aug 3, 2026
baa39a9
rm faas-console-plugin_v1_service.yaml
maschmid Aug 3, 2026
c01c083
the name of the plugin needs to be "console-functions-plugin"
maschmid Aug 3, 2026
794bebb
regenerate CSV
maschmid Aug 3, 2026
031b6ec
Update functions-operator-sources-objectbucket to 8757f27
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
a3b68ba
Update functions-operator to 5170bb4
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
46132fd
Update faas-console-plugin to 43b4c00
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
e15be71
UPSTREAM: <carry>: add consoleplugin owner references
maschmid Aug 4, 2026
0237c44
Update functions-operator-sources-objectbucket to 965c7d7
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
e5edb23
Update functions-operator to 2935c7e
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
ed0b982
Update faas-console-plugin to dd65ce0
red-hat-konflux-kflux-prd-rh02[bot] Aug 4, 2026
110e637
UPSTREAM: <carry>: fix missing manager patch
maschmid Aug 4, 2026
ff8c170
add relatedImages section to CSV
maschmid Aug 5, 2026
bc4338d
Update faas-console-plugin to f9b232f
red-hat-konflux-kflux-prd-rh02[bot] Aug 5, 2026
27d5065
add serverless icon and other basic metadata
maschmid Aug 5, 2026
91b472b
prepare for semver catalog with "candidate-v2" as the channel for TP
maschmid Aug 5, 2026
c2b2362
add catalog template for opm
maschmid Aug 5, 2026
7440173
add initial dockerfiles for FBCs
maschmid Aug 5, 2026
0f88668
Update faas-console-plugin to 823404d
red-hat-konflux-kflux-prd-rh02[bot] Aug 5, 2026
6c1dd1d
Update faas-console-plugin to 799d028
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
0df3749
Red Hat Konflux kflux-prd-rh02 update serverless-functions-fbc-422
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
33a7051
render semver template
maschmid Aug 6, 2026
4d351a1
update generated catalog path
maschmid Aug 6, 2026
1305074
update Dockerfile wrt. context path
maschmid Aug 6, 2026
04cbfc4
fix the other catalog dockerfile paths
maschmid Aug 6, 2026
b46a06e
fix fbc-422 push pipeline run-opm-command
maschmid Aug 6, 2026
66c3c35
Update faas-console-plugin to 2231f68
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
0845091
Update functions-operator-bundle to aab1d9f
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
789b89a
Red Hat Konflux kflux-prd-rh02 update functions-operator-sources-obje…
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
ce4037a
update archs
maschmid Aug 6, 2026
9197160
Update faas-console-plugin to 6cc126e
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
e61a2d8
Update functions-operator-sources-objectbucket to 00165ed
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
1ead10a
Red Hat Konflux kflux-prd-rh02 update functions-operator
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
659a562
add archs
maschmid Aug 6, 2026
38c5ff5
fix FBC cel expressions
maschmid Aug 6, 2026
78e778b
Update functions-operator to 3348573
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
a78b5a5
Update functions-operator-bundle to d67e14b
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
8597a60
Update faas-console-plugin to 50b44c7
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
bd10735
Update functions-operator-bundle to 5b6e5ea
red-hat-konflux-kflux-prd-rh02[bot] Aug 6, 2026
3924e61
update images
maschmid Aug 7, 2026
8455d95
Update functions-operator-bundle to 17a3036
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
4cd5ef2
multi-arch fbc build
maschmid Aug 7, 2026
f4c61cc
Update faas-console-plugin to 5e54e96
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
0b22904
add multi-arch labels to CSV
maschmid Aug 7, 2026
8f5dffb
Update faas-console-plugin to 9d4c71e
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
3d21e84
Update functions-operator-bundle to dd504af
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
7b5d0a1
add latest tag to the fbc image
maschmid Aug 7, 2026
7a95734
Update faas-console-plugin to 89a53c0
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
47c4296
Update functions-operator-bundle to 7fdc3e0
red-hat-konflux-kflux-prd-rh02[bot] Aug 7, 2026
cb5f386
Update faas-console-plugin to 335e1fa
red-hat-konflux-kflux-prd-rh02[bot] Aug 8, 2026
677b69a
Update functions-operator-bundle to 59fa966
red-hat-konflux-kflux-prd-rh02[bot] Aug 8, 2026
68a1348
Update faas-console-plugin to b9f37bb
red-hat-konflux-kflux-prd-rh02[bot] Aug 10, 2026
0793dcc
Update functions-operator-bundle to af5c6b7
red-hat-konflux-kflux-prd-rh02[bot] Aug 10, 2026
156fcbd
Update faas-console-plugin to c96106b
red-hat-konflux-kflux-prd-rh02[bot] Aug 11, 2026
e766512
Update functions-operator-bundle to 9bf23a6
red-hat-konflux-kflux-prd-rh02[bot] Aug 11, 2026
2837aae
Update faas-console-plugin to b1ce898
red-hat-konflux-kflux-prd-rh02[bot] Aug 12, 2026
05f5805
Update functions-operator-bundle to 7172d3a
red-hat-konflux-kflux-prd-rh02[bot] Aug 12, 2026
bf50608
move bundle and fbc pipelines to main-bundle branch
maschmid Aug 12, 2026
9ecfd42
cleanup, bundle and catalogs were moved to bundle-main
maschmid Aug 12, 2026
3597f7d
rhel9 dockerfile with func pulled from konflux build
maschmid Aug 14, 2026
1f112cf
use Dockerfile.rhel9
maschmid Aug 14, 2026
8c039bf
update func image
maschmid Aug 14, 2026
ff08329
Update functions-func to 93450e0
red-hat-konflux-kflux-prd-rh02[bot] Aug 17, 2026
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
189 changes: 71 additions & 118 deletions cmd/objectbucket-notifications-adapter/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,16 @@ import (
"context"
"crypto/tls"
"flag"
"fmt"
"os"
"path/filepath"
"regexp"
"strconv"
"strings"

// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that exec-entrypoint and run can make use of them.
_ "k8s.io/client-go/plugin/pkg/client/auth"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/kubernetes"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/certwatcher"
Expand All @@ -44,11 +39,9 @@ import (
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

"github.com/IBM/sarama"

sourcesv1alpha1 "github.com/functions-dev/func-operator/api/sources/v1alpha1"
"github.com/functions-dev/func-operator/internal/objectbucketsource/config"
"github.com/functions-dev/func-operator/internal/objectbucketsource/controller"
kafkaconfig "github.com/functions-dev/func-operator/internal/objectbucketsource/kafka"
"github.com/functions-dev/func-operator/internal/objectbucketsource/notificationserver"
// +kubebuilder:scaffold:imports
)
Expand All @@ -74,7 +67,15 @@ func main() {
var probeAddr string
var secureMetrics bool
var enableHTTP2 bool
var configMapName string
var createConfig bool
var adapterPort int
var notificationsMode string
var kafkaBrokers string
var kafkaNotificationsTopics string
var kafkaNotificationsGroupID string
var tlsOpts []func(*tls.Config)

flag.StringVar(&metricsAddr, "metrics-bind-address", "0", "The address the metrics endpoint binds to. "+
"Use :8443 for HTTPS or :8080 for HTTP, or leave as 0 to disable the metrics service.")
flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.")
Expand All @@ -92,6 +93,25 @@ func main() {
flag.StringVar(&metricsCertKey, "metrics-cert-key", "tls.key", "The name of the metrics server key file.")
flag.BoolVar(&enableHTTP2, "enable-http2", false,
"If set, HTTP/2 will be enabled for the metrics and webhook servers")
flag.StringVar(&configMapName, "config", "objectbucket-notifications-adapter-config",
"Name of the ConfigMap containing adapter configuration")
flag.BoolVar(&createConfig, "create-config", false,
"If set, create the default configuration ConfigMap at startup if it does not already exist.")
flag.IntVar(&adapterPort, "adapter-port", 8888,
"Port the notification HTTP server listens on (HTTP mode only)")
flag.StringVar(&notificationsMode, "notifications-mode", "http",
"http or kafka - selects how the adapter receives notifications. "+
"Default for the NOTIFICATIONS_MODE ConfigMap key, which can override it at runtime.")
flag.StringVar(&kafkaBrokers, "kafka-brokers", "",
"Comma-separated list of Kafka broker addresses (required for Kafka mode). "+
"Default for the KAFKA_BROKERS ConfigMap key, which can override it at runtime.")
flag.StringVar(&kafkaNotificationsTopics, "kafka-notifications-topics", "",
"Comma-separated list of Kafka topics to consume notifications from (required for Kafka mode). "+
"Default for the KAFKA_NOTIFICATIONS_TOPICS ConfigMap key, which can override it at runtime.")
flag.StringVar(&kafkaNotificationsGroupID, "kafka-notifications-group-id", "",
"Consumer group ID for consuming notifications (required for Kafka mode). "+
"Default for the KAFKA_NOTIFICATIONS_GROUP_ID ConfigMap key, which can override it at runtime.")

opts := zap.Options{
Development: true,
}
Expand Down Expand Up @@ -178,136 +198,64 @@ func main() {
os.Exit(1)
}

noobaaAdapterID := envOrDefault("NOOBAA_ADAPTER_ID", "mcg-adapter")
noobaaAdapterTopic := envOrDefault("NOOBAA_ADAPTER_TOPIC_ARN", "mcg-adapter-connection/connect.json")
noobaaStorageClassPattern := envOrDefault("NOOBAA_ADAPTER_STORAGECLASS_PATTERN", `.*noobaa\.io$`)

radosgwAdapterID := envOrDefault("RADOSGW_ADAPTER_ID", "rgw-adapter")
radosgwAdapterTopic := envOrDefault("RADOSGW_ADAPTER_TOPIC_ARN",
"arn:aws:sns:ocs-storagecluster-cephobjectstore::rgw-adapter-notifications")
radosgwStorageClassPattern := envOrDefault("RADOSGW_ADAPTER_STORAGECLASS_PATTERN", `.*ceph-rgw$`)

adapterConfigs := make([]controller.AdapterConfig, 0, 2)
for _, cfg := range []struct {
id, topic, pattern string
}{
{noobaaAdapterID, noobaaAdapterTopic, noobaaStorageClassPattern},
{radosgwAdapterID, radosgwAdapterTopic, radosgwStorageClassPattern},
} {
re, err := regexp.Compile(cfg.pattern)
if err != nil {
setupLog.Error(err, "invalid storageclass pattern", "pattern", cfg.pattern)
os.Exit(1)
}
adapterConfigs = append(adapterConfigs, controller.AdapterConfig{
ID: cfg.id,
Topic: cfg.topic,
StorageClassPattern: re,
})
// The command-line flags provide the defaults for the notification settings.
// The actual values are resolved from the ConfigMap (falling back to these
// defaults) and can be changed at runtime. Validation happens in the config
// provider when the ConfigMap is loaded.
notificationDefaults := config.NotificationSettings{
Mode: notificationsMode,
KafkaBrokers: splitAndTrim(kafkaBrokers),
KafkaNotificationsTopics: splitAndTrim(kafkaNotificationsTopics),
KafkaNotificationsGroupID: kafkaNotificationsGroupID,
}

adapterPort := 8888
if portStr := os.Getenv("ADAPTER_PORT"); portStr != "" {
var err error
adapterPort, err = strconv.Atoi(portStr)
// Determine namespace for ConfigMap
ns := os.Getenv("POD_NAMESPACE")
if ns == "" {
nsBytes, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
if err != nil {
setupLog.Error(err, "invalid ADAPTER_PORT")
setupLog.Error(err, "cannot determine pod namespace")
os.Exit(1)
}
}
notificationsMode := os.Getenv("NOTIFICATIONS_MODE")
if notificationsMode == "" {
notificationsMode = "http"
}
if notificationsMode != "http" && notificationsMode != "kafka" {
setupLog.Error(fmt.Errorf("invalid NOTIFICATIONS_MODE %q", notificationsMode), "must be \"http\" or \"kafka\"")
os.Exit(1)
ns = strings.TrimSpace(string(nsBytes))
}

var kafkaNotificationsTopics []string
if topicsStr := os.Getenv("KAFKA_NOTIFICATIONS_TOPIC"); topicsStr != "" {
for _, t := range strings.Split(topicsStr, ",") {
if trimmed := strings.TrimSpace(t); trimmed != "" {
kafkaNotificationsTopics = append(kafkaNotificationsTopics, trimmed)
}
// Optionally create the default configuration ConfigMap before the provider
// tries to read it.
if createConfig {
if err := config.EnsureDefaultConfigMap(context.Background(), ns, configMapName, notificationDefaults); err != nil {
setupLog.Error(err, "failed to ensure default configuration ConfigMap")
os.Exit(1)
}
}
kafkaNotificationsGroupID := os.Getenv("KAFKA_NOTIFICATIONS_GROUP_ID")

var kafkaBrokers []string
if brokersStr := os.Getenv("KAFKA_BROKERS"); brokersStr != "" {
kafkaBrokers = strings.Split(brokersStr, ",")
// Create configuration provider
configProvider, err := config.NewProvider(context.Background(), ns, configMapName, notificationDefaults)
if err != nil {
setupLog.Error(err, "failed to create configuration provider")
os.Exit(1)
}

var kafkaCfg *sarama.Config
if kafkaSecretName := os.Getenv("KAFKA_SECRET"); kafkaSecretName != "" {
ns := os.Getenv("POD_NAMESPACE")
if ns == "" {
nsBytes, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
if err != nil {
setupLog.Error(err, "cannot determine pod namespace for KAFKA_SECRET")
os.Exit(1)
}
ns = strings.TrimSpace(string(nsBytes))
}
clientset, err := kubernetes.NewForConfig(ctrl.GetConfigOrDie())
if err != nil {
setupLog.Error(err, "creating kubernetes clientset for KAFKA_SECRET")
os.Exit(1)
}
secret, err := clientset.CoreV1().Secrets(ns).Get(context.Background(), kafkaSecretName, metav1.GetOptions{})
if err != nil {
setupLog.Error(err, "reading KAFKA_SECRET", "name", kafkaSecretName, "namespace", ns)
os.Exit(1)
}
kafkaCfg, err = kafkaconfig.NewConfig(secret.Data)
if err != nil {
setupLog.Error(err, "configuring kafka from secret", "name", kafkaSecretName)
os.Exit(1)
}
setupLog.Info("kafka configured from secret", "name", kafkaSecretName, "namespace", ns)
} else {
var err error
kafkaCfg, err = kafkaconfig.NewConfig(nil)
if err != nil {
setupLog.Error(err, "creating default kafka config")
os.Exit(1)
}
// Add config provider to manager
if err := mgr.Add(configProvider); err != nil {
setupLog.Error(err, "unable to add config provider to manager")
os.Exit(1)
}

if err := (&controller.ObjectBucketSourceReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
AdapterConfigs: adapterConfigs,
ConfigProvider: configProvider,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "ObjectBucketSource")
os.Exit(1)
}
// +kubebuilder:scaffold:builder

if notificationsMode == "kafka" {
if len(kafkaNotificationsTopics) == 0 {
setupLog.Error(fmt.Errorf("KAFKA_NOTIFICATIONS_TOPIC is required when NOTIFICATIONS_MODE=kafka"), "missing env")
os.Exit(1)
}
if kafkaNotificationsGroupID == "" {
setupLog.Error(fmt.Errorf("KAFKA_NOTIFICATIONS_GROUP_ID is required when NOTIFICATIONS_MODE=kafka"), "missing env")
os.Exit(1)
}
if len(kafkaBrokers) == 0 {
setupLog.Error(fmt.Errorf("KAFKA_BROKERS is required when NOTIFICATIONS_MODE=kafka"), "missing env")
os.Exit(1)
}
}

notifServer := &notificationserver.NotificationServer{
Client: mgr.GetClient(),
Port: adapterPort,
KafkaBrokers: kafkaBrokers,
KafkaConfig: kafkaCfg,
NotificationsMode: notificationsMode,
KafkaNotificationsTopics: kafkaNotificationsTopics,
KafkaNotificationsGroupID: kafkaNotificationsGroupID,
Client: mgr.GetClient(),
Port: adapterPort,
ConfigProvider: configProvider,
}
if err := mgr.Add(notifServer); err != nil {
setupLog.Error(err, "unable to add notification server")
Expand Down Expand Up @@ -346,9 +294,14 @@ func main() {
}
}

func envOrDefault(key, defaultValue string) string {
if v := os.Getenv(key); v != "" {
return v
// splitAndTrim splits a comma-separated flag value, trimming whitespace and
// dropping empty entries.
func splitAndTrim(s string) []string {
var out []string
for _, part := range strings.Split(s, ",") {
if trimmed := strings.TrimSpace(part); trimmed != "" {
out = append(out, trimmed)
}
}
return defaultValue
return out
}
1 change: 1 addition & 0 deletions config/combined/source-objectbucket/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ spec:
args:
- --leader-elect
- --health-probe-bind-address=:8081
- --create-config
image: source-objectbucket-adapter:latest
name: manager
env:
Expand Down
1 change: 1 addition & 0 deletions config/rbac/role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ rules:
resources:
- configmaps
verbs:
- create
- get
- list
- watch
Expand Down
27 changes: 27 additions & 0 deletions config/samples/objectbucket-notifications-adapter-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: objectbucket-notifications-adapter-config
namespace: system
data:
# NooBaa adapter configuration
NOOBAA_ADAPTER_ID: "mcg-adapter"
NOOBAA_ADAPTER_TOPIC_ARN: "mcg-adapter-connection/connect.json"
NOOBAA_ADAPTER_STORAGECLASS_PATTERN: ".*noobaa\\.io$"

# RadosGW adapter configuration
RADOSGW_ADAPTER_ID: "rgw-adapter"
RADOSGW_ADAPTER_TOPIC_ARN: "arn:aws:sns:ocs-storagecluster-cephobjectstore::rgw-adapter-notifications"
RADOSGW_ADAPTER_STORAGECLASS_PATTERN: ".*ceph-rgw$"

# Notification transport configuration (dynamic).
# These override the corresponding command-line flag defaults and are applied
# at runtime. Changing any Kafka setting gracefully restarts the consumer.
# NOTIFICATIONS_MODE: "http" # http or kafka
# KAFKA_BROKERS: "broker1:9092,broker2:9092" # required for kafka mode
# KAFKA_NOTIFICATIONS_TOPICS: "mcg-notifications,rgw-notifications" # required for kafka mode
# KAFKA_NOTIFICATIONS_GROUP_ID: "adapter-consumer-group" # required for kafka mode

# Kafka secret for authentication (optional)
# Uncomment to use a Kafka secret for authentication
# KAFKA_SECRET: "kafka-credentials"
1 change: 1 addition & 0 deletions config/sources/objectbucket/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ spec:
args:
- --leader-elect
- --health-probe-bind-address=:8081
- --create-config
image: source-objectbucket-adapter:latest
name: manager
env:
Expand Down
8 changes: 8 additions & 0 deletions config/sources/objectbucket/rbac/role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ rules:
- ""
resources:
- configmaps
verbs:
- create
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
Expand Down
Loading