Releases: openmcp-project/openmcp-operator
Releases · openmcp-project/openmcp-operator
Release v0.15.1
Changes included in v0.15.1:
🚀 Features
- allow to skip the workload cluster management #171
- [DEVELOPER][FEATURE] Allow to skip management of Workload cluster in Access Request Reconciler
🐛 Fixes
- access request handling for MCP V2 #172
- [USER][BUGFIX] Correctly handle MCPs without an OIDC config
Change:
to_
for the access secret provider prefix.
- [USER][BUGFIX] Correctly handle MCPs without an OIDC config
Release v0.15.0
Changes included in v0.15.0:
🔨 Refactoring
- move access request handling into own lib function #160
- [DEVELOPER][FEATURE] The
lib/clusteraccess
package'sManager
interface has been expanded with theWaitForClusterAccess
method, which creates/updates anAccessRequest
for an existingCluster
orClusterRequest
.
- [DEVELOPER][FEATURE] The
🚀 Features
- support token auth for ManagedControlPlaneV2 #168
- [USER][FEATURE] Allow static token configuration in IAM section of ManagedControlPlaneV2
- Improve clusteraccess #167
- [DEVELOPER][FEATURE] The
StableRequestName
andStableRequestNameFromLocalName
functions from thelib/clusteraccess
package now shorten resulting names if they exceed the character limit for k8s resource names. A hash suffix prevents conflicts for different keys with the same prefix. - [DEVELOPER][FEATURE] The
NewTestClusterAccessManager
function fromlib/accessrequest
serves as an implementation of theManager
interface that is suited to be used in unit tests. It fakes readiness ofClusterRequest
andAccessRequest
resources that it creates and returns k8s fake clients instead. The fake clients have to be configured before. While this makes theManager
usable in unit tests, the code creating theManager
still has to differentiate between the creation of a regular one or the test implementation.
- [DEVELOPER][FEATURE] The
Release v0.14.0
Changes included in v0.14.0:
🔨 Refactoring
- OIDC validation and defaulting #157
- [OPERATOR][BREAKING] The naming restriction for the default OIDC provider has been removed (was restricted to
default
before) and it is now defaulted toopenmcp
instead. - [USER][BREAKING] The validation for the
spec.iam.oidcProviders
field in theManagedControlPlaneV2
resource has been changed in multiple ways:usernamePrefix
andgroupsPrefix
have been removed and are now always assumed to be<name>:
name
is not allowed to be set tosystem
(prevents k8s service account impersonation)- The regex validation rule for
name
has been fixed issuer
andclientID
are now required and the former one must look like an URL- Duplicate OIDC provider names or ones that clash with the default OIDC provider are now prevented
- [OPERATOR][BREAKING] The naming restriction for the default OIDC provider has been removed (was restricted to
- change default scheduler scope to 'Cluster' #153
- [OPERATOR][BREAKING] The scheduler's default scope has been changed to
Cluster
(wasNamespaced
before).
- [OPERATOR][BREAKING] The scheduler's default scope has been changed to
- make logging verbosity case-insensitive #155
- [OPERATOR][OTHER] It is now possible to specify the logging verbosity in the
PlatformService
,ClusterProvider
, andServiceProvider
resources also in lowercase.
- [OPERATOR][OTHER] It is now possible to specify the logging verbosity in the
🚀 Features
- sync Cluster conditions to MCP #152
- [USER][FEATURE] The MCPv2 resource now syncs conditions from its primary
Cluster
into its own status.
- [USER][FEATURE] The MCPv2 resource now syncs conditions from its primary
- MCP purpose override #151
- [USER][FEATURE] The label
core.openmcp.cloud/purpose
can now be used onManagedControlPlaneV2
resources to override the default cluster purpose.
- [USER][FEATURE] The label
Release v0.13.1
Changes included in v0.13.1:
🐛 Fixes
- mcpv2 conditions #150
- [USER][BUGFIX] Fixed an invalid condition type in the MCPv2 resource that prevent status updates and by that the MCPv2 from becoming ready.
Release v0.13.0
Changes included in v0.13.0:
🚀 Features
- [feature] [operator] MCPv2 controller #115: The MCPv2 controller is now part of the openmcp-operator.
Release v0.12.0
Changes included in v0.12.0:
🔨 Refactoring
- [breaking] [operator] AccessRequest api #141: The
AccessRequest
resource has been refactored for a better differentiation between token and oidc access requests.
🐛 Fixes
- [bugfix] [operator] fix cluster printer columns #140: The additional printer columns for the
Cluster
resource will now correctly show up onkubectl get
. - [bugfix] [operator] remove namespace from ClusterProfile's provider and providerconfig references #138: The
providerRef
andproviderConfigRef
fields in theClusterProfile
's spec now only take a name and no namespace, as intended.
Release v0.11.2
Changes included in v0.11.2:
🚀 Features
- [feature] [developer] add RoleRef support #137: Adding support in the lib to reference RoleRefs in the ClusterAccess reconciler.
- [feature] [user] cluster- and access-request names #134: - Prevent name conflicts for ClusterRequests and AccessRequests
- [feature] [user] package crds in component #133: Package the custom ressource definition manifests for the openmcp-operator into the OCM component
- [feature] [operator] install providers in system namespace #126: Install all providers in a common namespace "openmcp-system"
- [feature] [operator] Allow override for 'run' and 'init' command in providers #129: The
init
andrun
commands for providers can now be overwritten by using the respective fields in the spec of ServiceProvider,
ClusterProvider, and
PlatformService` resources.
🔧 Chores
- [breaking] [operator] remove onboarding cluster kubeconfig argument #130: The openmcp-operator now takes a
--kubeconfig
argument for the platform cluster kubeconfig instead of the previous--platform-cluster
argument. The--onboarding-cluster
argument has been removed to make the operator work without an existing onboarding cluster.
Release v0.11.1
Changes included in v0.11.1:
🚀 Features
- [feature] [user] add RoleRefs to AccessRequest API ##128: Adding support for role references in AccessRequests to bind the ServiceAccount to an existing role or cluster role.
- [feature] [operator] use K8sNameUUID instead of K8sNameHash and let each mcp have its own namespace ##114: The library functions regarding stable MCP namespace and request names have been adapted to use the new UUID-style hash functions and the concept of each MCP having its own namespace on the platform cluster.
Release v0.11.0
Changes included in v0.11.0:
🚀 Features
- [feature] [user] add
ExtraVolumes
andExtraVolumeMounts
toDeploymentSpec
#118: AddingExtraVolumes
andExtraVolumeMounts
fields to theDeploymentSpec
- [feature] [user] add name field to AccessRequest permissions #113: It is now possible to overwrite the name of (Cluster)Roles generated by AccessRequests.
- [feature] [operator] add extra scopes to oidc provider config #108: It is now possible to specify additional scopes for OIDC providers (in AccessRequest and ManagedControlPlane api types).
- [feature] [user] add
ManagedControlPlane
API #104: Added theManagedControlPlane
type with api versioncore.openmcp.cloud/v2alpha1
and added OIDC configuration to theAccessRequest
type.
🐛 Fixes
- [bugfix] [user] add
ExtraVolumes
andExtraVolumeMounts
toDeploymentSpec
#118: Fixing permission issues onClusterProfiles
during Init job of Cluster Providers and Service Providers
🔧 Chores
- release v0.11.0 #120.
- [bugfix] [operator] remove broken validation rule #111: Removed a broken validation rule that made it impossible to apply the AccessRequest CRD.
- [breaking] [user] rename v2 MCP resource #109: The v2 ManagedControlPlane resource has been renamed to
ManagedControlPlaneV2
to avoid k8s trying to convert between v1 and v2, since we want to use both in parallel for the migration period.
Release v0.10.0
Changes included in v0.10.0:
🚀 Features
- [feature] [developer] args and envs ##99: - Change of the arguments and environment variables that are passed to providers.
- [feature] [user] minor api enhancements #100:
ClusterRequest
resources can now be configured to delay the removal of their own finalizer (therefore also delaying their own deletion) until the correspondingCluster
is gone when the request is deleted, instead of the finalizer being removed immediately after the deletion of the Cluster has been triggered. Cluster providers need to take care to implement the feature accordingly. Thespec.waitForClusterDeletion
flag has no effect in situations where deletion of theClusterRequest
does not trigger a deletion of the correspondingCluster
. - [feature] [developer] minor api enhancements #100:
ServiceProvider
resources must now expose a list of their service resource types in their status. Service providers must take care to implement the feature accordingly. This serves as a kind of 'service catalog' that allows to look up the k8s resources that belong to a specific service provider.
🔧 Chores
- [feature] [operator] release v0.10.0 #101: - Release v0.10.0 of the openmcp operator
🐛 Fixes
- [fix] [user] empty
AccessRequestConfig
during controller start up #96: Fixing possible nil pointer dereference bug while accessing emptyAccessRequestConfig
during start up of accessrequest controller