Я использую пример Config Connector для StorageNotification, но постоянно получаю следующую ошибку (взято из kubectl describe
)
storagenotification-controller Не удалось выполнить вызов обновления: ошибка при применении желаемого состояния: проект: обязательное поле не установлено
Я следовал за пространством имен по умолчанию Setting Config Connector , но не радости. В API StorageNotification spe c нет поля для «проекта». Я думал, что это просто должно быть в правильном пространстве имен?
Все остальные ресурсы вроде бы в порядке. Просто уведомление не работает. Вот мой полный yaml
# Bucket Starts the chain of events
apiVersion: storage.cnrm.cloud.google.com/v1beta1
kind: StorageBucket
metadata:
labels:
app: something-processing
name: example-something
namespace: ${GCP_PROJECT_ID}
---
# Pub/Sub topic that bucket events will publish to
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
name: my-pubsub-topic
labels:
app: something-processing
namespace: ${GCP_PROJECT_ID}
---
# Publisher IAM permissions
apiVersion: iam.cnrm.cloud.google.com/v1beta1
kind: IAMPolicy
metadata:
name: my-pubsub-topic-iam
namespace: ${GCP_PROJECT_ID}
labels:
app: something-processing
spec:
resourceRef:
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
name: my-pubsub-topic
bindings:
- role: roles/pubsub.publisher
members:
- serviceAccount:service-${GCP_PROJECT_ID}@gs-project-accounts.iam.gserviceaccount.com
---
# Trigger that connects the bucket to the pubsub topic
apiVersion: storage.cnrm.cloud.google.com/v1beta1
kind: StorageNotification
metadata:
name: storage-notification
namespace: ${GCP_PROJECT_ID}
project: ${GCP_PROJECT_ID}
labels:
app: something-processing
spec:
bucketRef:
name: something
payloadFormat: JSON_API_V1
topicRef:
name: my-pubsub-topic
eventTypes:
- "OBJECT_FINALIZE"
---
# subscription that gets events from the topic and PUSHes them
# to the K8s Ingress endpoint
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
name: pubsub-subscription-topic
namespace: ${GCP_PROJECT_ID}
labels:
app: something-processing
spec:
pushConfig:
# This should match the Ingress path
pushEndpoint: https://example.zone/some-ingress-end-point/
topicRef:
name: my-pubsub-topic
Примечание: я использую envsubt
для замены ${GCP_PROJECT_ID}
идентификатором проекта;)