/// <summary> /// If the Secret <see cref="ResourceEventType"/> is Modified the internal Propertie will be reset in this Event. /// </summary> /// <param name="secretEvent"> /// Event Argument <see cref="IResourceEventV1"/> /// </param> private void OnKeyManagementSecretChanged(IResourceEventV1 <SecretV1> secretEvent) { if (secretEvent == null) { throw new ArgumentNullException(nameof(secretEvent)); } if (secretEvent.Resource == null) { throw new ArgumentNullException(nameof(secretEvent.Resource)); } if (secretEvent.EventType == ResourceEventType.Modified) { // Attach the changed Secret this._keyManagementSecret = secretEvent.Resource; } }
/// <summary> /// Called when the target ConfigMap is created, modified, or deleted. /// </summary> /// <param name="configMapEvent"> /// The change-notification event data. /// </param> private void OnConfigMapChanged(IResourceEventV1 <ConfigMapV1> configMapEvent) { if (configMapEvent == null) { throw new ArgumentNullException(nameof(configMapEvent)); } Log.LogTrace("Observed {EventType} watch-event for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", configMapEvent.EventType, _configMapName, _kubeNamespace ?? _client.DefaultNamespace); switch (configMapEvent.EventType) { case ResourceEventType.Deleted: { // Clear out configuration if the ConfigMap is has been deleted. Log.LogTrace("ConfigMap {ConfigMapName} in namespace {KubeNamespace} has been deleted.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); Load(null, isReload: true); break; } case ResourceEventType.Error: { // Clear out configuration if the ConfigMap is missing or invalid. Log.LogTrace("ConfigMap {ConfigMapName} in namespace {KubeNamespace} is currently in an invalid state.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); Load(null, isReload: true); break; } default: { Load(configMapEvent.Resource, isReload: true); break; } } Log.LogTrace("Triggering config change-token for ConfigMap {ConfigMapName} in namespace {KubeNamespace}...", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); OnReload(); Log.LogTrace("Config change-token triggered for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); }
/// <summary> /// Called when the target Secret is created, modified, or deleted. /// </summary> /// <param name="secretEvent"> /// The change-notification event data. /// </param> void OnSecretChanged(IResourceEventV1 <SecretV1> secretEvent) { if (secretEvent == null) { throw new ArgumentNullException(nameof(secretEvent)); } Log.LogTrace("Observed {EventType} watch-event for Secret {SecretName} in namespace {KubeNamespace}.", secretEvent.EventType, _secretName, _kubeNamespace ?? _client.DefaultNamespace); if (secretEvent.EventType != ResourceEventType.Error) { Load(secretEvent.Resource); } else { Load(null); // Clear out configuration if the Secret is invalid } Log.LogTrace("Triggering config change-token for Secret {SecretName} in namespace {KubeNamespace}...", _secretName, _kubeNamespace ?? _client.DefaultNamespace); OnReload(); Log.LogTrace("Config change-token triggered for Secret {SecretName} in namespace {KubeNamespace}.", _secretName, _kubeNamespace ?? _client.DefaultNamespace); }
/// <summary> /// Called when the target ConfigMap is created, modified, or deleted. /// </summary> /// <param name="configMapEvent"> /// The change-notification event data. /// </param> private void OnConfigMapChanged(IResourceEventV1 <ConfigMapV1> configMapEvent) { if (configMapEvent == null) { throw new ArgumentNullException(nameof(configMapEvent)); } Log.LogTrace("Observed {EventType} watch-event for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", configMapEvent.EventType, _configMapName, _kubeNamespace ?? _client.DefaultNamespace); if (configMapEvent.EventType != ResourceEventType.Error) { Load(configMapEvent.Resource); } else { Load(null); // Clear out configuration if the ConfigMap is invalid } Log.LogTrace("Triggering config change-token for ConfigMap {ConfigMapName} in namespace {KubeNamespace}...", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); OnReload(); Log.LogTrace("Config change-token triggered for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); }
private void OnNext(IResourceEventV1 <TResource> @event) { switch (@event.EventType) { case ResourceEventType.Added: case ResourceEventType.Modified: if (Upsert(@event.Resource)) { OnDataChanged(); } break; case ResourceEventType.Deleted: if (Remove(@event.Resource.Metadata.Uid)) { OnDataChanged(); } break; default: _logger.LogWarning("Unexpected event for {0}: {1}.", _crd, @event.EventType); break; } }