Releases: openmcp-project/openmcp-operator
Releases · openmcp-project/openmcp-operator
Release v0.16.0
Changes included in v0.16.0:
🚀 Features
- release v0.16.0 #190
- [USER][FEATURE] - Release v0.16.0
- prepare for high availability #188
- [OPERATOR][FEATURE] Add high availability features for the openmcp-operator and service-providers, cluster-providers and platform-services
- exclude provider fields from status update & utility to set these fields #187
- [DEVELOPER][FEATURE] - Utility function for service providers to add the kinds of their managed resources to the ServiceProvider status
🔧 Chores
- remove namespace field from secret reference in AccessRequest status #183
- [USER][BREAKING] Removed the
status.secretRef.namespacefield fromAccessRequestresources which was added by accident. The access secrets are expected to be in the same namespace as the AccessRequest itself, so wherever this field is read, it can just be replaced with the AccessRequest's namespace.
- [USER][BREAKING] Removed the
- improve the advanced clusteraccess library's abilities to mock fake clients in unit tests #186
- [DEVELOPER][FEATURE] The advanced ClusterAccess library's capabilities regarding unit tests have been enhanced by adding a configurable
FakeClientGeneratorto the reconciler. If set, this function will be called when trying to build aclient.Clientout of anAccessRequest's kubeconfig secret. This enables the test code to inject fake client implementations into the reconciler'sAccessmethod and thereby removes the need for any test-specific coding in the controller's logic itself.
- [DEVELOPER][FEATURE] The advanced ClusterAccess library's capabilities regarding unit tests have been enhanced by adding a configurable
Release v0.15.2
Changes included in v0.15.2:
🚀 Features
- advanced clusteraccess library #173
- [DEVELOPER][BREAKING] The behavior of the library in
lib/clusteraccesshas changed slightly: Before, theReconcilemethod would wait for some other controller to create the namespace and requeue the reconciliation until it existed. Now, it will instead create the namespace itself. - [DEVELOPER][FEATURE] The
lib/clusteraccess/advancedpackage now contains a highly flexible library for generating access to clusters during a controller's reconciliation loop. See the documentation for further information.
- [DEVELOPER][BREAKING] The behavior of the library in
🐛 Fixes
- requeue mcp if not ready #184
- [USER][BUGFIX] Fixed a bug that caused an
MCPv2to not be requeued for reconciliation despite not beingReadyyet, causing it to be stuck inProgressinguntil a reconciliation was triggered externally.
- [USER][BUGFIX] Fixed a bug that caused an
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/clusteraccesspackage'sManagerinterface has been expanded with theWaitForClusterAccessmethod, which creates/updates anAccessRequestfor an existingClusterorClusterRequest.
- [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
StableRequestNameandStableRequestNameFromLocalNamefunctions from thelib/clusteraccesspackage 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
NewTestClusterAccessManagerfunction fromlib/accessrequestserves as an implementation of theManagerinterface that is suited to be used in unit tests. It fakes readiness ofClusterRequestandAccessRequestresources that it creates and returns k8s fake clients instead. The fake clients have to be configured before. While this makes theManagerusable in unit tests, the code creating theManagerstill 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
defaultbefore) and it is now defaulted toopenmcpinstead. - [USER][BREAKING] The validation for the
spec.iam.oidcProvidersfield in theManagedControlPlaneV2resource has been changed in multiple ways:usernamePrefixandgroupsPrefixhave been removed and are now always assumed to be<name>:nameis not allowed to be set tosystem(prevents k8s service account impersonation)- The regex validation rule for
namehas been fixed issuerandclientIDare 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(wasNamespacedbefore).
- [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, andServiceProviderresources 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
Clusterinto 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/purposecan now be used onManagedControlPlaneV2resources 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
AccessRequestresource 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
Clusterresource will now correctly show up onkubectl get. - [bugfix] [operator] remove namespace from ClusterProfile's provider and providerconfig references #138: The
providerRefandproviderConfigReffields 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
initandruncommands for providers can now be overwritten by using the respective fields in the spec of ServiceProvider,ClusterProvider, andPlatformService` resources.
🔧 Chores
- [breaking] [operator] remove onboarding cluster kubeconfig argument #130: The openmcp-operator now takes a
--kubeconfigargument for the platform cluster kubeconfig instead of the previous--platform-clusterargument. The--onboarding-clusterargument 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.