9.1.1 Fix hpaMinAvailability failure message Fix missingPodDisruptionBudget typo Rewrite hpaMaxAvailability check to use go-template 9.1.0 Add HPA minAvailable and HPA maxAvailable checks Fix typo for PDB minAvailable 9.0.1 Fix comments handling in addOrReplaceValue function 9.0.0 Expose issue fixer and mutations in the library Remove packr in favor of go:embed 8.5.6 Fix trying to list cluster-level resources 8.5.5 8.5.4 Fix conditional expressions should be at very top of additionalSchemaStrings Update alpine to 3.19 8.5.3 Add quiet flag to polaris audit CLI command to suppress 'upload to Insights' prompt 8.5.2 Switch to controller-utils package to get workloads 8.5.1 Update topologySpreadConstraint check 8.5.0 Add helm-skip-tests flag Update CLI docs Handle multiple helm-values files 8.4.0 Change kubernetes.io/ label from name to instance 8.3.0 Add option to filter audit results by severity level Add insights prompt 8.2.4 Fix nil pointer issue with webhook 8.2.3 Add category for metadataAndNameMismatched. Fix category for priorityClassNotSet. 8.2.2 Fix webhook server cert dir argument 8.2.1 Fix on Insights integration 8.2.0 Minor fixes for NSA checks 8.1.0 Add insights-host global flag to configure Fairwinds Insights host (defaults to https://insights.fairwinds.com). Add new auth sub-commands be able to authenticate on Polaris using Fairwinds Insights credentials
login - login using Fairwinds Insights credentials via the web interface or provide a token logout - logout from Fairwinds Insights status - show relevant information regarding login state token - prints the token from local storage Add new audit flags to be able to upload Workloads and Polaris results to Fairwinds Insights
upload-insights - indicates that the results should be uploaded to Fairwinds Insights. (defaults to false) cluster-name - cluster name that the results belongs to. Creates the cluster if it does not exist. (required if upload-insights is used) 8.0.0 Change default severity from ignore to warning for priorityClassNotSet, metadataAndNameMismatched, missingPodDisruptionBudget, automountServiceAccountToken, missingNetworkPolicy checks. Change default severity from warning to danger for sensitiveContainerEnvVar, sensitiveConfigmapContent, clusterrolePodExecAttach, rolePodExecAttach, clusterrolebindingPodExecAttach, rolebindingClusterRolePodExecAttach, rolebindingRolePodExecAttach,clusterrolebindingClusterAdmin,rolebindingClusterAdminClusterRole,rolebindingClusterAdminRole checks. 7.4.0 Skip https certificate verification (#920) 7.3.0 Add a check for topologySpreadConstraint (#879) 7.2.0 Enable new RBAC / sensitive content / Pod exec checks, add hasPrefix and hasSuffix functions to the GO template, exempt system: name prefixes for RBAC checks, sensitive content checks ignore valueFrom, (#832) 7.1.0 Let Polaris modify YAML without losing comments/formatting (#821) Add checks for RBAC allowing exec or attaching to a Pod (#820) Add clusterrolebindingClusterAdmin, rolebindingClusterAdminRole, and rolebindingClusterAdminClusterRole checks + schema tests (#823) 7.0.2 Fixes for pretty CLI output Some new checks (disabled by default) Some additional features in templating engine 7.0.1 7.0.0 Better support for polaris fix target: Pod is now target: PodSpec (to differentiate naked Pods from Controllers) 6.0.0 Preliminary support for polaris fix command Changes to how Pod owners are determined Removed YAML manifests from the deploy/ directory - Helm is now the default install mechanism 5.1.0 Support --context flag for kubecontext Treat core Kubernetes controllers (Deployments, StatefulSets, DaemonSets, CronJobs) as top-level objects, instead of following owner refs 5.0.0 Renamed multipleReplicasForDeployment to deploymentMissingReplicas Changed RunAsRootAllowed and hostNetworkSet default severity to danger Changed deploymentMissingReplicas default severity to warning 4.2.0 New flags --disallow-(config|annotation)-exemptions Kubernetes dependency updates Documentation updates 4.1.0 Handle case-insentitivity in capabilities checks Change test for PDB disruptions to better handle IaC 4.0.9 4.0.8 Fix support for namespace checks 4.0.7 4.0.6 Change goreleaser format Fix --helm-values flag 4.0.5 Bugfix for repeated objects on the dashboard 4.0.4 Bugfix for validating webhook and non-pod checks 4.0.3 Fixed bad interaction between --set-exit-score-below and --only-show-failed-tests Dependency updates Support for Helm chart scanning 4.0.2 4.0.1 4.0.0 Add support for arbitrary resources, like Ingress or PodDisruptionBudget Add support check templating (see docs) Add support for multi-resource checks (see docs) Breaking Changes In custom checks, jsonSchema is now schemaString Check pdbDisruptionsAllowedGreaterThanZero is now called pdbDisruptionsIsZero 3.2.0 Add --format=pretty option for CLI output 3.1.6 Fix nil pointer issue with --only-output-failed-tests 3.1.5 Fix UI display of Ingress checks 3.1.4 Fixes for exemption annotations for the admission controller 3.1.3 Fixes for privilegeEscalationAllowed and insecureCapabilities checks to take Kubernetes defaults into account 3.1.2 Start checking deployment configuration using Fairwinds Insights 3.1.1 3.1.0 Added support for Ingress objects Fixes for exemptions, including support for exempting entire namespaces 3.0.0 Breaking - fixed inconsistency in how controller-level checks are handled
Custom checks with target: Controller should remove Object from the top-level of the
JSON schema (see changes to ./checks/multipleReplicasForDeployment.yaml) 2.0.1 Fixed Polaris deployment process 2.0.0 Standardize categories of checks into Security, Reliability, and Efficiency Changes to the dashboard UI Update controller-runtime 1.2.1 Update date on dashboard footer 1.2.0 Add ability to audit a single workload Enable pullPolicyAlways by default Fix for finding parent resources 1.1.1 Show controller checks on dashboard Fix for orphaned pods w/ controller checks 1.1.0 Add namespace filter in UI Add priorityClass check Support reading from STDIN Ensure severity is set for all custom checks Support audit files which use \r or \r\n as newline character Add option to exempt an entire controller from checks via config file Fixed case where parent resources trigger error Fixed UI zero-state 1.0.3 Fixed case where parent resources trigger error Fixed dashboard link when --base-path is set 1.0.2 Fixed case where custom CRDs are not covered by RBAC 1.0.1 Added ARM binaries to releases 1.0.0 New Features Added support for custom checks using JSON Schema Added support for arbitrary controllers, rather than a pre-configured set
removed support for controllers_to_scan in config Added the ability to exempt a particular controller from a particular check. Docker image now includes the default config Breaking Changes Breaking changes in both input and output formats. See Examples (opens new window) for examples of the new formats.
removed config-level configuration for checks like max/min memory settings changed severity error to danger Breaking changes to the CLI
CLI flag --set-exit-code-on-error is now --set-exit-code-on-danger Flags --version, --dashboard, --webhook, and --audit are now arguments Port flags are now just --port 0.6.0 Fixed webhook support in Kubernetes 1.16
this also removes support for 1.8 Added support for exemptions via controller annotations 0.5.2 Fixed missing success messages for resource requests/limits 0.5.1 Added a few more exemptions Started checking exemptions based on controller name prefix runAsUser != 0 now passes the runAsNonRoot check 0.5.0 Added --load-audit-file flag to run the dashboard from an existing audit Added an ID field to each check in the output Skip health checks for jobs, cronjobs, initcontainers Added support for exemptions Fixed dashboard base path option 0.4.0 Added additional Pod Controllers to scan PodSpec (jobs, cronjobs, daemonsets, replicationcontrollers) 0.3.1 Changed dashboard branding to refer to new org name Fairwinds 0.3.0 Added --set-exit-code-on-error and --set-exit-code-below-score flags to better support CI/CD 0.2.1 0.2.0 Added --output-format flag for better CI/CD support Added --display-name flag Added support for StatefulSets Show error message if no kubeconfig is set 0.1.5 0.1.4 0.1.3 0.1.2 Stored all third-party assets (e.g. Charts.js) to local files to support offline dashboard viewing Fix: custom configs in ConfigMap not respected 0.1.1 Fix (opens new window) : missing config.yaml and dashboard assets in binary releases Added some tests and better error handling 0.1.0 Dashboard fully functional Validating webhook functional, but still considered beta Checks:
Health
readiness probe missing liveness probe missing Images
tag not specified pull policy not always Networking
host network set host port set Resources
cpu/memory requests missing cpu/memory limits missing cpu/memory ranges exceeded Security
security capabilities host IPC set host PID set not read-only fs privilege escalation allowed run as root allowed run as privileged