Skip to content

Commit

Permalink
Prepare for release v0.25.0 (#654)
Browse files Browse the repository at this point in the history
ProductLine: KubeDB

Release: v2022.02.22

Release-tracker: kubedb/CHANGELOG#48
Signed-off-by: 1gtm <[email protected]>
  • Loading branch information
1gtm authored Feb 18, 2022
1 parent 829e5d4 commit d22f9b8
Show file tree
Hide file tree
Showing 44 changed files with 1,929 additions and 4,498 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ require (
k8s.io/component-base v0.21.1
k8s.io/klog/v2 v2.9.0
k8s.io/kubectl v0.21.1
kmodules.xyz/client-go v0.0.0-20220203031013-1de48437aaf3
kmodules.xyz/client-go v0.0.0-20220215012708-9963581d69a7
kmodules.xyz/custom-resources v0.0.0-20220208103158-61b298634e43
kmodules.xyz/monitoring-agent-api v0.0.0-20211207173549-028e6430395e
kubedb.dev/apimachinery v0.24.1-0.20220213164510-c6db524e70fd
kubedb.dev/apimachinery v0.25.0
stash.appscode.dev/apimachinery v0.18.0
)

Expand Down
10 changes: 5 additions & 5 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1205,9 +1205,9 @@ kmodules.xyz/client-go v0.0.0-20211013093146-1fbfd52e78c9/go.mod h1:0gkPeALtYjB2
kmodules.xyz/client-go v0.0.0-20211110065417-091bd089a92d/go.mod h1:ENUu8pPK19xzBkVpAJHoGCI2QRvb1SqffWRt0K2sV5I=
kmodules.xyz/client-go v0.0.0-20211122091731-6c471b24a4ea/go.mod h1:ENUu8pPK19xzBkVpAJHoGCI2QRvb1SqffWRt0K2sV5I=
kmodules.xyz/client-go v0.0.0-20220104114408-2a3a05dbe89f/go.mod h1:xxl1ve1Obe4xaW+XjXsNHyLTni4QPIvHn9TfnYEoQRo=
kmodules.xyz/client-go v0.0.0-20220118144149-f5289f79ff44/go.mod h1:aOwnhdxO0uh54ds1wQYRlKVtYlzLyakaesmMQeupVek=
kmodules.xyz/client-go v0.0.0-20220203031013-1de48437aaf3 h1:CWux6RrrTkplf9F0ChJwkEEQuOorbc5rzmqC7uJUUZU=
kmodules.xyz/client-go v0.0.0-20220203031013-1de48437aaf3/go.mod h1:aOwnhdxO0uh54ds1wQYRlKVtYlzLyakaesmMQeupVek=
kmodules.xyz/client-go v0.0.0-20220215012708-9963581d69a7 h1:ZmSet7R5/mHQCU7kwTefxPdQyS0dxJjkuWBIWWHEM1s=
kmodules.xyz/client-go v0.0.0-20220215012708-9963581d69a7/go.mod h1:sOq5P3AkZdv6D/skvUPwEG15NDYy5olwBllH/JXfhGI=
kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY=
kmodules.xyz/crd-schema-fuzz v0.0.0-20210618002152-fae23aef5fb4/go.mod h1:IIkUctlfoptoci0BOrsUf8ya+MOG5uaeh1PE4uzaIbA=
kmodules.xyz/custom-resources v0.0.0-20211122142737-3bf3dbd8ac52/go.mod h1:yHLFe4wVYxepTnN00CFUf29xH+jEHDokq6d2fbp9pks=
Expand All @@ -1229,9 +1229,9 @@ kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027 h1:rtSPsruEkoBOLcbJkxMQjn
kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027/go.mod h1:H4NcvS1RQxeXtQONALbU6r9OT3Xa7cMhfamX/k9t9wo=
kmodules.xyz/resource-metrics v0.0.5/go.mod h1:6Dv63HDgp83DhA+lZNB7GIQR6PLjNrYW6ghQKioQzII=
kmodules.xyz/resource-metrics v0.0.6/go.mod h1:M7rWuo2qh3BpHhogiEVPnvGY9Xx4Pfygqn1Rex8YbgM=
kmodules.xyz/webhook-runtime v0.0.0-20210928141616-7f73c2ab318a/go.mod h1:MFZFmJk9IXNHwq8JlF/mukwBDbopFQj4swaB2MWHc/U=
kubedb.dev/apimachinery v0.24.1-0.20220213164510-c6db524e70fd h1:ZuMt3054+zwZ9jhhq08onr6tGZ+xgTz8chL3X6e4wYI=
kubedb.dev/apimachinery v0.24.1-0.20220213164510-c6db524e70fd/go.mod h1:lJagQW6j0FbZ8sds/p1zz//aaF5t6hMS9Tl5Yw3I0ew=
kmodules.xyz/webhook-runtime v0.0.0-20220215122005-87205410bfd1/go.mod h1:ooM093IWe4pzdsugOTD9bqChbPP44bScz9b98vTTbwY=
kubedb.dev/apimachinery v0.25.0 h1:n4HpufuOwe6a5fWVNSt6GWREs8Dpz81DnZOz/9x3VXw=
kubedb.dev/apimachinery v0.25.0/go.mod h1:9446hC1cAGNiThtiLjuTOoPeeyZPORjJZSwdahySmjw=
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,42 @@ var (
)

const (
ES_USER_ENV = "ELASTICSEARCH_USERNAME"
ES_PASSWORD_ENV = "ELASTICSEARCH_PASSWORD"
CaCertKey = "ca.crt"
ES_USER_ENV = "ELASTICSEARCH_USERNAME"
ES_PASSWORD_ENV = "ELASTICSEARCH_PASSWORD"

ElasticsearchDashboardPortServer = "server"
ElasticsearchDashboardKibanaConfigDir = "/usr/share/kibana/config"
ElasticsearchDashboardConfigMergeCommand = "/usr/local/bin/dashboard-config-merger.sh"
ElasticsearchDashboardKibanaTempConfigDir = "/kibana/temp-config"
ElasticsearchDashboardKibanaCustomConfigDir = "/kibana/custom-config"

KibanaStatusEndpoint = "/api/status"
KibanaConfigFileName = "kibana.yml"

DashboardDeploymentAvailable = "MinimumReplicasAvailable"
DashboardDeploymentNotAvailable = "MinimumReplicasNotAvailable"
DashboardServiceReady = "ServiceAcceptingRequests"
DashboardServiceNotReady = "ServiceNotAcceptingRequests"
DashboardAcceptingConnectionRequest = "DashboardAcceptingConnectionRequests"
DashboardNotAcceptingConnectionRequest = "DashboardNotAcceptingConnectionRequests"
DashboardReadinessCheckSucceeded = "DashboardReadinessCheckSucceeded"
DashboardReadinessCheckFailed = "DashboardReadinessCheckFailed"

DashboardStateGreen = "ServerHealthGood"
DashboardStateYellow = "ServerHealthCritical"
DashboardStateRed = "ServerUnhealthy"

DBNotFound = "DatabaseNotFound"
DBNotReady = "DatabaseNotReady"

ComponentDashboard = "dashboard"
KibanaStatusEndpoint = "/api/status"
KibanaConfigFileName = "kibana.yml"
CaCertKey = "ca.crt"
DefaultElasticsearchClientCertAlias = "archiver"
HealthCheckInterval = 10 * time.Second
GlobalHost = "0.0.0.0"
ElasticsearchDashboardPortServer = "server"
)

var (
ElasticsearchDashboardKibanaConfigDir = "/usr/share/kibana/config"
ElasticsearchDashboardPropagationPolicy = meta.DeletePropagationForeground
ElasticsearchDashboardDefaultPort = (int32)(5601)
ElasticsearchDashboardGracefulDeletionPeriod = (int64)(time.Duration(3 * time.Second))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ func (ed ElasticsearchDashboard) ResourcePlural() string {
return ResourceElasticsearchDashboards
}

// CertificateName returns the default certificate name and/or certificate secret name for a certificate alias
func (ed *ElasticsearchDashboard) CertificateName(alias ElasticsearchDashboardCertificateAlias) string {
// DefaultCertificateSecretName returns the default certificate name and/or certificate secret name for a certificate alias
func (ed *ElasticsearchDashboard) DefaultCertificateSecretName(alias ElasticsearchDashboardCertificateAlias) string {
return meta_util.NameWithSuffix(ed.Name, fmt.Sprintf("%s-cert", string(alias)))
}

Expand Down Expand Up @@ -107,7 +107,7 @@ func (ed ElasticsearchDashboard) ClientCertificateCN(alias ElasticsearchDashboar
}

func (ed *ElasticsearchDashboard) GetDatabaseClientCertName(databaseName string) string {
return fmt.Sprintf("%s-%s", databaseName, ed.GetCertSecretName(DefaultElasticsearchClientCertAlias))
return fmt.Sprintf("%s-%s", databaseName, ed.CertificateSecretName(DefaultElasticsearchClientCertAlias))
}

func (ed *ElasticsearchDashboard) OffshootSelectors(extraSelectors ...map[string]string) map[string]string {
Expand Down Expand Up @@ -197,17 +197,25 @@ func (ed *ElasticsearchDashboard) GetConnectionScheme() string {
return scheme
}

// GetCertSecretName returns the secret name for a certificate alias if any,
// CertificateSecretName returns the secret name for a certificate alias if any,
// otherwise returns default certificate secret name for the given alias.

func (ed *ElasticsearchDashboard) GetCertSecretName(alias ElasticsearchDashboardCertificateAlias) string {
func (ed *ElasticsearchDashboard) CertificateSecretName(alias ElasticsearchDashboardCertificateAlias) string {
if ed.Spec.TLS != nil {
name, ok := kmapi.GetCertificateSecretName(ed.Spec.TLS.Certificates, string(alias))
if ok {
return name
}
}
return ed.CertificateName(alias)
return ed.DefaultCertificateSecretName(alias)
}

func (ed ElasticsearchDashboard) DefaultConfigSecretName() string {
return meta_util.NameWithSuffix(ed.Name, "config")
}

func (ed ElasticsearchDashboard) CustomConfigSecretName() string {
return ed.Spec.ConfigSecret.Name
}

func (ed *ElasticsearchDashboard) CertSecretExists(alias ElasticsearchDashboardCertificateAlias) bool {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@ func (ed *ElasticsearchDashboard) Default() {
if ed.Spec.TLS.IssuerRef == nil {
ed.Spec.TLS.Certificates = kmapi.SetMissingSpecForCertificate(ed.Spec.TLS.Certificates, kmapi.CertificateSpec{
Alias: string(ElasticsearchDashboardCACert),
SecretName: ed.CertificateName(ElasticsearchDashboardCACert),
SecretName: ed.DefaultCertificateSecretName(ElasticsearchDashboardCACert),
})
}
ed.Spec.TLS.Certificates = kmapi.SetMissingSpecForCertificate(ed.Spec.TLS.Certificates, kmapi.CertificateSpec{
Alias: string(ElasticsearchDashboardKibanaServerCert),
SecretName: ed.CertificateName(ElasticsearchDashboardKibanaServerCert),
SecretName: ed.DefaultCertificateSecretName(ElasticsearchDashboardKibanaServerCert),
})
}
}
Expand Down
35 changes: 19 additions & 16 deletions vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,6 @@ const (
DashboardConditionServerHealthy DashboardConditionType = "ServerHealthy"
)

const (
DashboardDeploymentAvailable = "MinimumReplicasAvailable"
DashboardDeploymentNotAvailable = "MinimumReplicasNotAvailable"
DashboardServiceReady = "ServiceAcceptingRequests"
DashboardServiceNotReady = "ServiceNotAcceptingRequests"
DashboardAcceptingConnectionRequest = "DashboardAcceptingConnectionRequests"
DashboardNotAcceptingConnectionRequest = "DashboardNotAcceptingConnectionRequests"
DashboardReadinessCheckSucceeded = "DashboardReadinessCheckSucceeded"
DashboardReadinessCheckFailed = "DashboardReadinessCheckFailed"
DashboardStateGreen = "ServerHealthGood"
DashboardStateYellow = "ServerHealthCritical"
DashboardStateRed = "ServerUnhealthy"
)

// +kubebuilder:validation:Enum=Available;OK;Warning;Error
type DashboardStatus string

Expand All @@ -65,14 +51,20 @@ const (
StatusError DashboardStatus = "Error"
)

// +kubebuilder:validation:Enum=ca;database-client;kibana-server;dashboard-config
// +kubebuilder:validation:Enum=ca;database-client;kibana-server
type ElasticsearchDashboardCertificateAlias string

const (
ElasticsearchDashboardCACert ElasticsearchDashboardCertificateAlias = "ca"
ElasticsearchDatabaseClient ElasticsearchDashboardCertificateAlias = "database-client"
ElasticsearchDashboardKibanaServerCert ElasticsearchDashboardCertificateAlias = "kibana-server"
ElasticsearchDashboardConfig ElasticsearchDashboardCertificateAlias = "dashboard-config"
)

// +kubebuilder:validation:Enum=config
type ElasticsearchDashboardConfigAlias string

const (
ElasticsearchDashboardDefaultConfig ElasticsearchDashboardConfigAlias = "config"
)

// +kubebuilder:validation:Enum=primary;stats
Expand All @@ -91,3 +83,14 @@ const (
StateYellow DashboardServerState = "yellow"
StateRed DashboardServerState = "red"
)

// +kubebuilder:validation:Enum=dashboard-custom-config;dashboard-temp-config;dashboard-config;kibana-server;database-client
type DashboardVolumeName string

const (
DashboardVolumeCustomConfig DashboardVolumeName = "dashboard-custom-config"
DashboardVolumeOperatorGeneratedConfig DashboardVolumeName = "dashboard-temp-config"
DashboardVolumeConfig DashboardVolumeName = "dashboard-config"
DashboardVolumeKibanaServer DashboardVolumeName = "kibana-server"
DashboardVolumeDatabaseClient DashboardVolumeName = "database-client"
)
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,10 @@ func (m MySQL) PeerName(idx int) string {
}

func (m MySQL) GetAuthSecretName() string {
return m.Spec.AuthSecret.Name
if m.Spec.AuthSecret != nil {
return m.Spec.AuthSecret.Name
}
return meta_util.NameWithSuffix(m.Name, "auth")
}

type mysqlApp struct {
Expand All @@ -185,6 +188,10 @@ func (m mysqlStatsService) GetNamespace() string {
return m.MySQL.GetNamespace()
}

func (m MySQL) GetNameSpacedName() string {
return m.Namespace + "/" + m.Name
}

func (m mysqlStatsService) ServiceName() string {
return m.OffshootName() + "-stats"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ limitations under the License.

package v1alpha1

const (
DatabaseNameAdmin = "admin"
DatabaseNameConfig = "config"
DatabaseNameLocal = "local"
DatabaseForEntry = "kubedb_system"
)

const (
// DeletionPolicyDelete allows the created objects to be deleted
DeletionPolicyDelete DeletionPolicy = "Delete"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,13 @@ func GetPhase(obj Interface) DatabaseSchemaPhase {
}
// we are here means, SecretAccessRequest is approved and not expired. Now handle Init-Restore cases.

if !kmapi.IsConditionTrue(conditions, string(DatabaseSchemaConditionTypeAppBindingFound)) {
return DatabaseSchemaPhaseInProgress
}

if kmapi.HasCondition(conditions, string(DatabaseSchemaConditionTypeRepositoryFound)) {
// ----------------------------- Restore case -----------------------------
if !kmapi.IsConditionTrue(conditions, string(DatabaseSchemaConditionTypeRepositoryFound)) ||
!kmapi.IsConditionTrue(conditions, string(DatabaseSchemaConditionTypeAppBindingFound)) ||
!kmapi.IsConditionTrue(conditions, string(DatabaseSchemaConditionTypeRestoreCompleted)) {
return DatabaseSchemaPhaseInProgress
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ func ValidateMySQLDatabaseUpdate(newobj *MySQLDatabase, oldobj *MySQLDatabase) e
}
}
if newobj.Spec.Init != nil && oldobj.Spec.Init != nil {
if !gocmp.Equal(newobj.Spec.Init, oldobj.Spec.Init) {
if !gocmp.Equal(newobj.Spec.Init.Script, oldobj.Spec.Init.Script) || !gocmp.Equal(newobj.Spec.Init.Snapshot, oldobj.Spec.Init.Snapshot) {
allErrs = append(allErrs, field.Invalid(field.NewPath("spec.init"), newobj.Name, "cannot change init"))
}
}
Expand Down
Loading

0 comments on commit d22f9b8

Please sign in to comment.