Add blog post about SPO v0.4.0 release
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
---
|
||||
layout: blog
|
||||
title: "What's new in Security Profiles Operator v0.4.0"
|
||||
date: 2021-12-13
|
||||
slug: security-profiles-operator
|
||||
---
|
||||
|
||||
**Authors:** Jakub Hrozek, Juan Antonio Osorio, Paulo Gomes, Sascha Grunert
|
||||
|
||||
---
|
||||
|
||||
The [Security Profiles Operator](https://sigs.k8s.io/security-profiles-operator)
|
||||
is an out-of-tree Kubernetes enhancement to make the management of
|
||||
[seccomp](https://en.wikipedia.org/wiki/Seccomp),
|
||||
[SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) and
|
||||
[AppArmor](https://en.wikipedia.org/wiki/AppArmor) profiles easier and more
|
||||
convenient. We're happy to announce that we recently [released
|
||||
v0.4.0](https://github.com/kubernetes-sigs/security-profiles-operator/releases/tag/v0.4.0)
|
||||
of the operator, which contains a ton of new features, fixes and usability
|
||||
improvements.
|
||||
|
||||
## What's new
|
||||
|
||||
<!--
|
||||
Current release notes as list of things to cover:
|
||||
|
||||
## Changes by Kind
|
||||
|
||||
### API Change
|
||||
|
||||
- A v1alpha2 version of the SelinuxProfile object has been introduced. This
|
||||
removes the raw CIL from the object itself and instead adds a simple policy
|
||||
language to ease the writing and parsing experience.
|
||||
|
||||
Alongside, a RawSelinuxProfile object was also introduced. This contains a wrapped
|
||||
and raw representation of the policy. This was intended for folks to be able to take
|
||||
their existing policies into use as soon as possible. However, on validations are done here. (#675, @JAORMX)
|
||||
|
||||
- Add CRD type to represent AppArmor profiles. (#643, @pjbgf)
|
||||
- Change seccomp profile type `Architectures` to `[]Arch` from `[]*Arch` (#671, @saschagrunert)
|
||||
- Graduate seccomp profile API from `v1alpha1` to `v1beta1` (#674, @saschagrunert)
|
||||
|
||||
### Feature
|
||||
|
||||
- Add arm64 support for retrieving the correct syscall names within the log enricher. (#539, @saschagrunert)
|
||||
- Add retry functionality to log enricher if container ID is still empty during pod creation. (#491, @saschagrunert)
|
||||
- Added CLI flag `-V` and environment variable parsing `SPO_VERBOSITY` to set the logging verbosity. (#657, @saschagrunert)
|
||||
- Added `metrics-token` secret to the operator namespace for metrics client retrieval. (#457, @saschagrunert)
|
||||
- Added `metrics` service endpoint to the operator namespace, which now serves the `security_profiles_operator_seccomp_profile` metric. (#422, @saschagrunert)
|
||||
- Added `seccomp_profile_error_total` metrics. (#461, @saschagrunert)
|
||||
- Added `verbosity` option to spod configuration. Currently supports `0` (the default) and `1` for enhanced verbosity. (#665, @saschagrunert)
|
||||
- Added automatic ServiceMonitor deployment if the CRD is available within the cluster. (#458, @saschagrunert)
|
||||
- Added container ID caching to log enricher for performance reasons. (#509, @saschagrunert)
|
||||
- Added libseccomp version output to `version` subcommand output. (#524, @saschagrunert)
|
||||
- Added liveness and startup probe to operator daemon set to streamline the operator stratup. (#430, @saschagrunert)
|
||||
- Added log enricher metrics `security_profiles_operator_seccomp_profile_audit_total` and `security_profiles_operator_selinux_profile_audit_total`. (#492, @saschagrunert)
|
||||
- Added logging to non-root-enabler (#486, @saschagrunert)
|
||||
- Added name=spod label to metrics service. (#456, @saschagrunert)
|
||||
- Added single TLS certificate for serving metrics. See `installation-usage.md` for more details. (#451, @saschagrunert)
|
||||
- Added support for recording profiles by using the log enricher. (#513, @saschagrunert)
|
||||
- Added syslog support for log enricher. (#531, @saschagrunert)
|
||||
- Added the seccomp profile architecture to the `bpf` and `log` recorder. (#670, @saschagrunert)
|
||||
- Automatically mount /dev/kmsg for log enricher usage if running with CRI-O and an allowed `io.kubernetes.cri-o.Devices` annotation. (#479, @saschagrunert)
|
||||
- Deploying kube-rbac-proxy sidecar in SPOD for exposing metrics via the new `metrics-spod` and `metrics-controller-runtime` services. (#424, @saschagrunert)
|
||||
- SPO's ProfileRecording CRD ProfileRecording which allows the admin to
|
||||
record workloads and create security policies was extended to allow
|
||||
recording SELinux profiles as well. In order to record a SELinux profile
|
||||
for a workload, set ProfileRecording.Spec.Kind to SelinuxProfile. (#592, @jhrozek)
|
||||
- Switched to unix domain sockets for the GRPC servers. (#631, @saschagrunert)
|
||||
- This patch re-adds the no_bpf build tag triggered by the BPF_ENABLED=0 tag
|
||||
environment variable if set to 0. A developer can then build SPO without the
|
||||
built-in BPF support by running:
|
||||
BPF_ENABLED=0 make
|
||||
This is useful to build SPO in environments with older dependencies
|
||||
that don't allow building the in-tree BPF-based recorder. (#690, @jhrozek)
|
||||
- Update example base profiles to their recent runtime versions. (#543, @saschagrunert)
|
||||
- `spod` can load and unload AppArmor profiles into clusters host servers.
|
||||
`spod` now runs as `root` and `privileged` when apparmor is enabled. (#680, @pjbgf)
|
||||
|
||||
### Documentation
|
||||
|
||||
- Added documentation about how to record profiles by using the log enricher. (#521, @saschagrunert)
|
||||
- Added documentation how to use the automatically deployed `ServiceMonitor` with OpenShift as example platform. (#460, @saschagrunert)
|
||||
- Added log enricher documentation to installation-usage.md. (#498, @saschagrunert)
|
||||
- Added metrics documentation to `installation-usage.md`. (#449, @saschagrunert)
|
||||
- Added table of contents to installation documentation. (#493, @saschagrunert)
|
||||
- Changed documentation to reference `main` instead of `master` as default git branch. (#706, @saschagrunert)
|
||||
- Fixed header links containing source code in `installation-usage.md` (#606, @saschagrunert)
|
||||
|
||||
### Bug or Regression
|
||||
|
||||
- Do not retry container ID retrieval on container creation failures any more. (#612, @saschagrunert)
|
||||
|
||||
### Other (Cleanup or Flake)
|
||||
|
||||
- An OpenShift deployment manifest was included in deploy/openshift.yaml (#695, @JAORMX)
|
||||
- Bumps
|
||||
golang.org/x/text to fix advisory GO-2021-0113 (#655, @pjbgf)
|
||||
- Log enricher now requires running auditd (`/var/log/audit/audit.log`) (#487, @saschagrunert)
|
||||
- Log libseccomp version on operator startup. (#556, @saschagrunert)
|
||||
- Removed CPU limits from SPOD and added resource requests/limits to manager and webhook. (#550, @saschagrunert)
|
||||
- The directory /etc/selinux.d used to be mounted on the hosts in previous SPO versions.
|
||||
This is no longer the case, the directory was converted to an emptyDir instead,
|
||||
reducing the number of required host mounts. (#698, @jhrozek)
|
||||
- The securityprofilenodestatus CR now links with the security profile its status
|
||||
it represents using label spo.x-k8s.io/profile-id. If the profile name is less
|
||||
than 64 characters long, then the label value is the profile name, otherwise it's
|
||||
kind-sha1hashofthename.
|
||||
|
||||
This change supports profile names whose names are over 64 characters. (#685, @jhrozek)
|
||||
|
||||
- Update cert-manager to v1.5.3 (#577, @saschagrunert)
|
||||
|
||||
### Uncategorized
|
||||
|
||||
- Add Metrics for SELinux profiles (#470, @mrogers950)
|
||||
- Added new seccomp profile recorder `bpf`. (#618, @saschagrunert)
|
||||
-->
|
||||
Reference in New Issue
Block a user