All notable changes to this project will be documented in this file.
- Add conversion webhook (#368).
- Support objectOverrides using
.spec.objectOverrideson theListener. See objectOverrides concepts page for details (#364). - Support serviceOverrides using
.spec.serviceOverrideson theListenerClass(#365).
- Bump stackable-operator to 0.108.0 and strum to 0.28 (#373, #375).
- The operator now deploys the selected ListenerClass preset instead of relying on Helm (#369).
- This mechanism is currently tied to CRD maintenance.
- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal (#366).
- OLM deployer doesn't add owner references to cluster scoped objects anymore (#360). Owner references ensure that objects are garbage collected by OpenShift upon operator removal but they cause problems when the operator is updated. This means that cluster wide objects are not removed anymore when the operator is uninstalled. This behaviour is in line with the default behaviour of Helm and OLM.
- Bump testing-tools to
0.3.0-stackable0.0.0-dev(#363).
- Fix "404 page not found" error for the initial object list (#375).
- New helm values for
csiProvisioner.priorityClassNameandcsiNodeDriver.priorityClassName(#334). - Add end-of-support checker which can be controlled with environment variables and CLI arguments (#339).
EOS_CHECK_MODE(--eos-check-mode) to set the EoS check mode. Currently, only "offline" is supported.EOS_INTERVAL(--eos-interval) to set the interval in which the operator checks if it is EoS.EOS_DISABLED(--eos-disabled) to disable the EoS checker completely.
- One can now configure if NodePorts should pin Pods to nodes using the ListenerClass
.spec.pinnedNodePorts. Read on the issue for details (#340).
- BREAKING: Split helm values for independent configuration (#334).
controllervalues have been moved tocsiProvisioner.controllerService.csiProvisionervalues have been moved tocsiProvisioner.externalProvisionercsiNodeDriverRegistrarvalues have been moved tocsiNodeDriver.nodeDriverRegistrar.node.drivervalues have been moved tocsiNodeDriver.nodeService.podAnnotationshas been split intocsiProvisioner.podAnnotationsandcsiNodeDriver.podAnnotations.podSecurityContexthas been split intocsiProvisioner.podSecurityContextandcsiNodeDriver.podSecurityContext.nodeSelectorhas been split intocsiProvisioner.nodeSelectorandcsiNodeDriver.nodeSelector.tolerationshas been split intocsiProvisioner.tolerationsandcsiNodeDriver.tolerations.affinityhas been split intocsiProvisioner.affinityandcsiNodeDriver.affinity.
- Bump csi-node-driver-registrar to
v2.15.0(#337). - Bump csi-provisioner to
v5.3.0(#338). - We now default to the
ephemeral-nodeshelm preset. Read on the issue for details (#340). - olm-deployer: update to align with new operator configuration (#344).
- Bump stackable-operator to
0.100.2(#346, #347).
- BREAKING: Default ListenerClass
.spec.externalTrafficPolicytonullso that LoadBalancers work everywhere (#347).
- Adds new telemetry CLI arguments and environment variables (#299).
- Use
--file-log-max-files(orFILE_LOG_MAX_FILES) to limit the number of log files kept. - Use
--file-log-rotation-period(orFILE_LOG_ROTATION_PERIOD) to configure the frequency of rotation. - Use
--console-log-format(orCONSOLE_LOG_FORMAT) to set the format toplain(default) orjson.
- Use
- Added support for configuring
Service.spec.loadBalancerClassand.allocateLoadBalancerNodePorts(#288). - Add RBAC rule to helm template for automatic cluster domain detection (#320).
- BREAKING: Replace stackable-operator
initialize_loggingwith stackable-telemetryTracing(#291, #299).- operator-binary
- The console log level was set by
LISTENER_OPERATOR_LOG, and is now set byCONSOLE_LOG_LEVEL. - The file log level was set by
LISTENER_OPERATOR_LOG, and is now set byFILE_LOG_LEVEL. - The file log directory was set by
LISTENER_OPERATOR_LOG_DIRECTORY, and is now set byFILE_LOG_DIRECTORY(or via--file-log-directory <DIRECTORY>).
- The console log level was set by
- olm-deployer
- The console log level was set by
STKBL_LISTENER_OLM_DEPLOYER_LOG, and is now set byCONSOLE_LOG_LEVEL. - The file log level was set by
STKBL_LISTENER_OLM_DEPLOYER_LOG, and is now set byFILE_LOG_LEVEL. - The file log directory was set by
STKBL_LISTENER_OLM_DEPLOYER_LOG_DIRECTORY, and is now set byFILE_LOG_DIRECTORY(or via--file-log-directory <DIRECTORY>).
- The console log level was set by
- Replace stackable-operator
print_startup_stringwithtracing::info!with fields.
- operator-binary
- Upgrade csi-provisioner to 5.2.0 (#304).
- Version CRDs and bump dependencies (#307).
- BREAKING: Bump stackable-operator to 0.94.0 and update other dependencies (#320).
- The default Kubernetes cluster domain name is now fetched from the kubelet API unless explicitly configured.
- This requires operators to have the RBAC permission to get nodes/proxy in the apiGroup "". The helm-chart takes care of this.
- The CLI argument
--kubernetes-node-nameor env variableKUBERNETES_NODE_NAMEneeds to be set. It supersedes the old argument/env variableNODE_NAME. The helm-chart takes care of this.
- Allow uppercase characters in domain names (#320).
- Remove the
lastUpdateTimefield from the stacklet status (#320). - Remove role binding to legacy service accounts (#320).
- Give RBAC permission to
deleteServices, which is needed to set an ownerRef on already existing Services (#283). - Fix the error "failed to write content: File exists (os error 17)" after a Node restart (#284).
Listener.status.addressescan now be configured to prefer either IP addresses or DNS hostnames (#233, #244).- The operator can now run on Kubernetes clusters using a non-default cluster domain.
Use the env var
KUBERNETES_CLUSTER_DOMAINor the operator Helm chart propertykubernetesClusterDomainto set a non-default cluster domain (#237).
Listener.status.addressesfor NodePort listeners now includes replicas that are currently unavailable (#231).- BREAKING:
Listener.status.addressesnow defaults to DNS hostnames for ClusterIP services, rather than IP addresses (#233, #244). - Stale Listener subobjects will now be deleted (#232).
- Tagged Listener Services with the SDP labels (#232).
- Listener.status.addresses is now de-duplicated (#231).
- Listener controller now listens for ListenerClass updates (#231).
- Propagate
ListenerClass.spec.serviceAnnotationsto the created Services (#234). - Failing to parse one
Listener/ListenerClassshould no longer cause the whole operator to stop functioning (#238). - Added necessary RBAC permissions for running on Openshift (#246).
- Propagate
external_traffic_policyfrom ListenerClass to created Services (#196). - Chore: Upgrade csi-provisioner to 5.0.1 and csi-node-driver-registrar to 2.11.1 (#203)
- Update the image docker.stackable.tech/k8s/sig-storage/csi-provisioner in the Helm values to v4.0.1 (#194).
- Update the image docker.stackable.tech/k8s/sig-storage/csi-node-driver-registrar in the Helm values to v2.10.1 (#194).
- Remove custom
h2patch, as Kubernetes 1.26 has fixed the invalid data from Kubernetes' side. Starting with 24.11 we only support at least 1.27 (as it's needed by OpenShift 4.14) (#219).
- Init container deployed by the Helm chart as part of the daemonset. It was added a an automatic migration between SDP versions and is not needed anymore (#174).
- Propagate labels from
Listeners to the createdServices (#169).
- Replace "Release.Name" with "operator.fullname" in Helm resource names (#131)
- Write
PodListenersobjects for mounted listener volumes (#100).
- Fixed pods being unable to bind listeners with long names (#111).
- Remove the requirement for privileged mode (#101).
- Listener volume mounting is now enforced (#105, #111).
- Generate OLM bundle for Release 23.4.0 (#74).
- Provide automatic migration 23.1 -> 23.4 (#77).
- Support ClusterIP service type (#83).
operator-rs0.27.1->0.44.0(#80, #83).- Defined resource limits for all Deployments and Daemonsets (#85).
- Allow configuring CSI docker images (#61).