Skip to content

Commit

Permalink
Spike/remove SupersetDB (#396)
Browse files Browse the repository at this point in the history
* Removed SupersetDB related code

* Probes / Changed init order

* Removed example loading / adjusted probe values

* Changed PodManagementPolicy to OrderedReady

* Wait for Superset Cluster to be up, before creating the DruidConnection

* FIxed formatting / Removed unused imports / Added success threshold

* Updated CRD

* Removed vector init-db filter from test

* Update rust/operator-binary/src/superset_controller.rs

Co-authored-by: Malte Sander <contact@maltesander.com>

* Replaced name_unchecked by name_any to prevent panics

* Changelog / Comment for new PodManagementPolicy

---------

Co-authored-by: Malte Sander <contact@maltesander.com>
  • Loading branch information
dervoeti and maltesander authored Aug 30, 2023
1 parent 3960617 commit c20f7b9
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 1,191 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

- `vector` `0.26.0` -> `0.31.0` ([#391]).
- `operator-rs` `0.44.0` -> `0.45.1` ([#390]).
- BREAKING: Removed SupersetDB object, since it created some problems when reinstalling or upgrading a Superset cluster. Instead, the initialization of the database was moved to the startup phase of each Superset pod. To make sure the initialization does not run in parallel, the `PodManagementPolicy` was set to `OrderedReady` and liveness/readiness probes were added. The `.spec.clusterConfig.loadExamplesOnInit` option was removed from the CRD, because loading the examples at every startup caused problems in certain scenarios, e.g. after an upgrade from Superset 1.5.3 to 2.1.0 ([#396]).

### Fixed

Expand All @@ -18,6 +19,7 @@
[#390]: https://github.com/stackabletech/superset-operator/pull/390
[#391]: https://github.com/stackabletech/superset-operator/pull/391
[#394]: https://github.com/stackabletech/superset-operator/pull/394
[#396]: https://github.com/stackabletech/superset-operator/pull/396

## [23.7.0] - 2023-07-14

Expand Down
270 changes: 0 additions & 270 deletions deploy/helm/superset-operator/crds/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ spec:
stopped: false
reconciliationPaused: false
listenerClass: cluster-internal
loadExamplesOnInit: null
description: Superset cluster configuration options.
properties:
authentication:
Expand Down Expand Up @@ -77,86 +76,6 @@ spec:
type: object
credentialsSecret:
type: string
databaseInitialization:
nullable: true
properties:
logging:
default:
enableVectorAgent: null
containers: {}
properties:
containers:
additionalProperties:
anyOf:
- required:
- custom
- {}
description: Fragment derived from `ContainerLogConfigChoice`
properties:
console:
nullable: true
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
custom:
description: Custom log configuration provided in a ConfigMap
properties:
configMap:
nullable: true
type: string
type: object
file:
nullable: true
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
loggers:
additionalProperties:
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
default: {}
type: object
type: object
type: object
enableVectorAgent:
nullable: true
type: boolean
type: object
type: object
listenerClass:
default: cluster-internal
description: |-
Expand All @@ -172,9 +91,6 @@ spec:
- external-unstable
- external-stable
type: string
loadExamplesOnInit:
nullable: true
type: boolean
mapboxSecret:
nullable: true
type: string
Expand Down Expand Up @@ -7146,192 +7062,6 @@ spec:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: supersetdbs.superset.stackable.tech
annotations:
helm.sh/resource-policy: keep
spec:
group: superset.stackable.tech
names:
categories: []
kind: SupersetDB
plural: supersetdbs
shortNames: []
singular: supersetdb
scope: Namespaced
versions:
- additionalPrinterColumns: []
name: v1alpha1
schema:
openAPIV3Schema:
description: Auto-generated derived type for SupersetDBSpec via `CustomResource`
properties:
spec:
properties:
config:
properties:
logging:
default:
enableVectorAgent: null
containers: {}
properties:
containers:
additionalProperties:
anyOf:
- required:
- custom
- {}
description: Fragment derived from `ContainerLogConfigChoice`
properties:
console:
nullable: true
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
custom:
description: Custom log configuration provided in a ConfigMap
properties:
configMap:
nullable: true
type: string
type: object
file:
nullable: true
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
loggers:
additionalProperties:
properties:
level:
description: Log levels
enum:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
nullable: true
type: string
type: object
default: {}
type: object
type: object
type: object
enableVectorAgent:
nullable: true
type: boolean
type: object
type: object
credentialsSecret:
type: string
image:
anyOf:
- required:
- custom
- productVersion
- required:
- productVersion
description: The Superset image to use
properties:
custom:
description: Overwrite the docker image. Specify the full docker image name, e.g. `docker.stackable.tech/stackable/superset:1.4.1-stackable2.1.0`
type: string
productVersion:
description: Version of the product, e.g. `1.4.1`.
type: string
pullPolicy:
default: Always
description: '[Pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) used when pulling the Images'
enum:
- IfNotPresent
- Always
- Never
type: string
pullSecrets:
description: '[Image pull secrets](https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod) to pull images from a private registry'
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
type: object
nullable: true
type: array
repo:
description: Name of the docker repo, e.g. `docker.stackable.tech/stackable`
nullable: true
type: string
stackableVersion:
description: Stackable version of the product, e.g. `23.4`, `23.4.1` or `0.0.0-dev`. If not specified, the operator will use its own version, e.g. `23.4.1`. When using a nightly operator or a pr version, it will use the nightly `0.0.0-dev` image.
nullable: true
type: string
type: object
loadExamples:
type: boolean
vectorAggregatorConfigMapName:
nullable: true
type: string
required:
- config
- credentialsSecret
- image
- loadExamples
type: object
status:
nullable: true
properties:
condition:
enum:
- Pending
- Initializing
- Ready
- Failed
type: string
startedAt:
description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
format: date-time
nullable: true
type: string
required:
- condition
type: object
required:
- spec
title: SupersetDB
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: druidconnections.superset.stackable.tech
annotations:
Expand Down
5 changes: 0 additions & 5 deletions rust/crd/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
pub mod affinity;
pub mod authentication;
pub mod druidconnection;
pub mod supersetdb;

use crate::authentication::SupersetAuthentication;
use affinity::get_affinity;
Expand Down Expand Up @@ -164,8 +163,6 @@ pub struct SupersetClusterConfig {
/// Cluster operations like pause reconciliation or cluster stop.
#[serde(default)]
pub cluster_operation: ClusterOperation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database_initialization: Option<supersetdb::SupersetDbConfigFragment>,
/// In the future this setting will control, which ListenerClass <https://docs.stackable.tech/home/stable/listener-operator/listenerclass.html>
/// will be used to expose the service.
/// Currently only a subset of the ListenerClasses are supported by choosing the type of the created Services
Expand All @@ -179,8 +176,6 @@ pub struct SupersetClusterConfig {
/// * external-stable: Use a LoadBalancer service
#[serde(default)]
pub listener_class: CurrentlySupportedListenerClasses,
#[serde(default)]
pub load_examples_on_init: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mapbox_secret: Option<String>,
/// Name of the Vector aggregator discovery ConfigMap.
Expand Down
Loading

0 comments on commit c20f7b9

Please sign in to comment.