arlon icon indicating copy to clipboard operation
arlon copied to clipboard

Enforcement Modes | Drift | Notifications & Audit

Open cre8minus1 opened this issue 2 years ago • 0 comments

Background is here

This enhancement is about simplifying managing how clusters are operated, what happens when an object that's managed by Arlon changes, how users are notified of the change and how to track these events for audit purposes. Broadly this creates four groups of features.

  1. Enforcement Modes
  2. Drift Mananagement
  3. Notifications and
  4. Audit Each section below will outline the requirements directly.

Enforcement

When a user creates a cluster they should be able to specify if the cluster is going to be under one of three policies,

  1. Enforced, will cause any 'drift' to be automatically overwritten with the Profile applied to the cluster
  2. Monitored, uses analytics to notify the user of drift.
  3. Unmanaged, no automated drift management will be active.

Sub issues should be created for each of:

  • [ ] Enforced:
  • [ ] Monitored:
  • [ ] Unmanaged

Drift Management

Drift management enable a sweeping 'apply all' to a list of one or more clusters such that a user can specify a set of clusters and ask Arlon too 'sync' the clusterSpec or the Profiles all in a single command. This is useful when a large number of clusters are running in "monitored" mode and a act of reconciliation needs to be executed across all of them. This may also be useful for version upgrades of a clusterSpec for baseline clusters where the ClusterAPI CRs need to be updated across numerous Git repositories.

Example workflow: A user has 7 development clusters, running on a single cloned clusterSpec and profile. The clusters where deployed as 'unmanned' this means users can effect changes on the cluster and nothing will happen to revert the change. After numerous issues promoting application code to staging the user decides to run a diff analysis #59 the results show that 4 of the 7 clusters have large variances from the cloned clusterSpec and Profile, changes made by developers that need to be carried forward into higher environments, some however should be removed. The valid changes are captured and the ClusterSpec and Profile are updated. The user then runs Arlon drift remove bulk -f list-of-clusters.yaml and Arlon updates all 7 of the clusters and keeps them running in unmanaged mode.

Notifications

Captured in #79 notifications provide a quick way for users to say "yes, alert me when something in a cluster changes" for all enforcement modes. "Monitored" creates notification automatically, and as such the notification override may be redundant. More information is captured here

Audit

Critical for enterprise compliance and not mitigated by GitOps practices, Audit will track all user and system events. Background on the audit requirement it here

Users will not be able to disable Audit for Enforced and Monitored mode clusters, however clusters running in an unmanaged mode will have audit disable by default and will need to be enabled. Audit needs to log events locally and also support being sent/pushed/streamed from the management cluster where Arlon is running. Users reading the audit log should be able to identify 'who' made a change, 'when' the change occurred and the change details.

Aha! Link: https://pf9.aha.io/features/ARLON-144

cre8minus1 avatar Jun 03 '22 01:06 cre8minus1