/// <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;
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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;
            }
        }