You are viewing an older version of this section. View current production version.
Join the SingleStore Community Today
Get expert advice, develop skills, and connect with others.

MemSQL Kubernetes Operator Release Notes

The changelog for the MemSQL Operator is listed here. To learn how to use the Operator, see the Kubernetes deployment guide.

SingleStore’s Docker images can be found on Docker Hub.

2020-10-27 Version 1.2.3

  • If a backup cron job was scheduled, was triggered, and is later removed, the associated batch job and pods will be deleted.
  • Allows the user that runs the backup job to be specified over the default root user. The default resource pool associated with that user will be used in the backup job.
  • When scaling down the redundancy level from level 2 to level 1, the associated ConfigMap for the second availability group (AG) will now be deleted.
  • Fixes a performance degradation issue introduced in Operator release 1.2.2 where the master partitions would become imbalanced across both availability groups during an engine upgrade and/or other condition.

2020-10-01 Version 1.2.2

Docker Hub Image
memsql/operator:1.2.2-93a97e50 sha256:80954740aed76d351b0b1ab1e589ab926f70f11182c89c100cbbebcf1702831f
  • Added support for using ClusterIP addresses as DDL and DML endpoint when service type is configured as ClusterIP.
  • Added rootServiceUser flag in the CR to control whether to grant SERVICE_USER to root.
  • Improved Operator and engine performance by avoiding unnecessary database rebalances.
  • Fixed a stuck reconciliation loop when PersistentVolumeClaim allocated more storage size than requested.
  • Fixed the service update logic to avoid unnecessary service updates.
  • Added support to allow the Operator to pass optional startup parameters to the master exporter.

2020-08-18 Version 1.2.1

  • Adds support for setting local_file_system_access_restricted global variable.
  • Adds support for setting priorityClassName via an Operator command-line parameter priority-class-name. The priorityClassName will be passed to all StatefulSet’s PodSpec.
  • Re-adds the Operator command-line parameters backup-s3-endpoint and backup-compatibility-mode that were inadvertently removed from the Operator 1.2.0 release. Refer to the Backups reference for more information.

2020-08-04 Version 1.2.0

  • Inadvertently removed the backup-s3-endpoint and backup-compatibility-mode command-line parameters. Refer to the Backups reference for more information.
  • Adds support for setting almost all engine variables via globalVariables section in the CR. Refer to List of Engine Variables for more information. Adding, removing, or updating engine variables will cause pods to restart. The following variables are explicitly prohibited:
    • redundancy_level
    • sync_permissions
    • local_file_system_access_restricted
  • Adds a phase field to CR status.
    • Running indicates that the Operator is happy with the state of the cluster and that there are no more changes to be made.
    • Pending indicates that the Operator is still working towards a desired state of the cluster.
  • Adds support for scaling up volume storage size when larger numbers are specified in storageGB field in aggregatorSpec and/or leafSpec in CR.
  • Adds support for incremental backups which allows an admin to specify both full and incremental backup schedules.
  • Adds memsqlPusherSpec inside a monitoringSpec in the CR to allow MemSQL to be configured to push metrics to Kafka.

2020-07-06 Version 1.1.1

  • Changed the label on the backup pod from app.kubernetes.io/name=memsql-cluster to app.kubernetes.io/name=backup
  • Triggers pod restarts when the content of dependent secrets/configmaps are updated
    • When data in secrets/configmaps are used as a container’s environment variable, changes in those values will trigger a pod restart
  • Adds support for running backups with compatibility mode
  • S3 Region is no longer required when running backups

2020-06-18 Version 1.1.0

  • Adds support for Disaster Recovery (DR).
    • DR requires either of the two following requirements to be met by the underlying infrastructure:
      • Kubernetes hosts in primary and secondary clusters can reach each other via host IPs across clusters
      • Kubernetes pods in primary and secondary clusters can reach each other via pod IPs across clusters
    • In addition, the following requirements must be met:
      • MemSQL 7.1.3 or newer must be deployed on both the primary and secondary clusters
      • The primary and secondary clusters’ DDL endpoints are stable
  • Adds support for both client-server and intra-cluster secure connections.
    • For client-server secure connections:
      • Once configured, the server permits, but does not require, a secure connection
      • Supports both initial deployments and upgrades from existing deployments that are not already configured for client-server secure connections
      • Downgrades are not supported
    • For intra-cluster secure connections:
      • Once configured, intra-cluster secure connections are required between all nodes. Secure connections are also used between the primary cluster and secondary cluster if DR is configured.
      • Supports initial deployments but does not support upgrades from existing deployments that are not already configured with intra-cluster secure connections
      • Downgrades are not supported
  • Improves readiness probe by checking each MemSQL node’s online status.
  • Improves leaf nodes StatefulSet’s update performance by using OnDelete update strategy.
  • Fixes the inability to set the number of arenas via glibc tunable by introducing an envVariables section in the CR and allowing users to set MALLOC_ARENA_MAX. Default: (node height) * (CPUs per unit)
  • Adds support for auditlog_level global variable. The following variables are currently supported:
    • default_partitions_per_leaf
    • columnstore_segment_rows
    • columnstore_flush_bytes
    • columnstore_window_size
    • transaction_buffer
    • snapshot_trigger_size
    • minimal_disk_space
    • pipelines_max_concurrent
    • auditlog_level

2020-05-15 Version 1.0.0

  • Adds support for custom scheduling in MemsqlCluster spec
    • Supported scheduling constraints include: nodeSelector, affinity, anti-affinity, toleration, schedulerName, and nodeName in PodSpec
  • Adds support for automated backup scheduling
  • Adds support for setting whitelisted “sync” and “non-sync” variables
    • The following variables are supported: default_partitions_per_leaf, columnstore_segment_rows, columnstore_flush_bytes, columnstore_window_size, transaction_buffer, snapshot_trigger_size, minimal_disk_space, pipelines_max_concurrent
  • Deploys Prometheus exporter as a sidecar to all MemSQL nodes
  • Adds support for a custom container image repository
    • If the environment variable RELATED_IMAGE_NODE is specified, the Operator will pull and use this image to launch all MemSQL node pods as well as the sidecar container.
  • Updates liveness probe to use the ProcessState property returned from memsqlctl
  • Adds labels to all cluster components and services
  • Adds support for custom glibc tunables in CR
    • Default: glibc.malloc.arena_max = 8 * (node height) * (CPUs per unit)
  • Updates leaf-node restart mechanism to facilitate faster recovery
  • Improves Operator performance by filtering controller events
  • Adds support for vertical scaling of child aggregators
  • Updates the ConfigMaps mechanism
    • As a consequence, do not create an unused configuration when redundancy level is set to 1.
  • Updates readiness probe to include node role type and database status
  • Updates Operator to check leaf-node status before detaching/attaching a pod

2019-10-14 Version de65d489

  • Added support for the --fs-group-id flag, which allows you to inject an additional group id into the container running MemSQL. This is used to ensure that the process inside the container has the correct permissions to read/write to the /var/lib/memsql volume.
  • Added support for additional control over the services used to handle DDL and DML queries from client applications. These controls are specified in a new key in the MemsqlCluster spec called serviceSpec. The fields and usage of this are described in the Kubernetes deployment guide.
  • The top level attributes loadBalancerSourceRanges and serviceObjectMetaOverrides used in the MemSQLCluster spec are now deprecated. Use serviceSpec moving forward.
  • Some global variables can now be specified through the new attribute globalVariables. The supported variables are: license_visibility, default_partitions_per_leaf, columnstore_segment_rows, columnstore_flush_bytes, columnstore_window_size, transaction_buffer, and snapshot_trigger_size. For more information, see the Kubernetes deployment guide.
  • The attributes license and adminHashedPassword can now can be specified through secrets. To do this, use the alternative attribute licenseSecret or adminHashedPasswordSecret.