Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add operational status to migrated rds nstances #192

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions api/v1/databaseclaim_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ type DatabaseClaimStatus struct {
//tracks status of DB migration. if empty, not started.
//non empty denotes migration in progress, unless it is S_Completed
MigrationState string `json:"migrationState,omitempty"`
// tracks the DB which is migrated and not more operational
OldDB Status `json:"oldDB,omitempty"`
}

type Status struct {
Expand Down Expand Up @@ -258,16 +260,20 @@ type Status struct {
// This field used when claim is use-existing-db and attempting to migrate to newdb
// +optional
SourceDataFrom *SourceDataFrom `json:"sourceDataFrom,omitempty"`

// Time at the process of post migration actions initiated
PostMigrationActionStartedAt *metav1.Time `json:"postMigrationActionStartedAt,omitempty"`
}

// DbState keeps track of state of the DB.
type DbState string

const (
Ready DbState = "ready"
InProgress DbState = "in-progress"
UsingExistingDB DbState = "using-existing-db"
UsingSharedHost DbState = "using-shared-host"
Ready DbState = "ready"
InProgress DbState = "in-progress"
UsingExistingDB DbState = "using-existing-db"
UsingSharedHost DbState = "using-shared-host"
PostMigrationInProgress DbState = "post-migration-in-progress"
)

type DatabaseClaimConnectionInfo struct {
Expand Down
5 changes: 5 additions & 0 deletions api/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

142 changes: 142 additions & 0 deletions config/crd/bases/persistance.atlas.infoblox.com_databaseclaims.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,10 @@ spec:
description: The optional MinStorageGB value requests the minimum
database host storage capacity in GBytes
type: integer
postMigrationActionStartedAt:
description: Time at the process of post migration actions initiated
format: date-time
type: string
shape:
description: The optional Shape values are arbitrary and help
drive instance selection
Expand Down Expand Up @@ -413,6 +417,144 @@ spec:
description: The optional MinStorageGB value requests the minimum
database host storage capacity in GBytes
type: integer
postMigrationActionStartedAt:
description: Time at the process of post migration actions initiated
format: date-time
type: string
shape:
description: The optional Shape values are arbitrary and help
drive instance selection
type: string
sourceDataFrom:
description: SourceDataFrom specifies an existing database or
backup to use when initially provisioning the database. if the
dbclaim has already provisioned a database, this field is ignored
This field used when claim is use-existing-db and attempting
to migrate to newdb
properties:
database:
description: Database defines the connection information to
an existing db
properties:
dsn:
description: 'DSN is the connection string used to reach
the postgres database must have protocol specifier at
beginning (example: mysql:// postgres:// )'
type: string
secretRef:
description: 'SecretRef specifies a secret to use for
connecting to the postgresdb (should be master/root)
TODO: document/validate the secret format required'
properties:
name:
type: string
namespace:
type: string
required:
- name
type: object
required:
- dsn
type: object
s3:
description: S3 defines the location of a DB backup in an
S3 bucket
properties:
bucket:
type: string
prefix:
description: Prefix is the path prefix of the S3 bucket
within which the backup to restore is located.
type: string
region:
type: string
secretRef:
description: 'SecretRef specifies a secret to use for
connecting to the s3 bucket via AWS client TODO: document/validate
the secret format required'
properties:
name:
type: string
namespace:
type: string
required:
- name
type: object
sourceEngine:
description: SourceEngine is the engine used to create
the backup.
type: string
sourceEngineVersion:
description: 'SourceEngineVersion is the version of the
engine used to create the backup. Example: "5.7.30"'
type: string
required:
- bucket
- region
- sourceEngine
- sourceEngineVersion
type: object
type:
description: Type specifies the type of source
type: string
required:
- type
type: object
type:
description: Specifies the type of database to provision. Only
postgres is supported.
type: string
userUpdatedAt:
description: Time the user/password was updated/created
format: date-time
type: string
required:
- connectionInfo
type: object
oldDB:
description: tracks the DB which is migrated and not more operational
properties:
DbState:
description: DbState of the DB. inprogress, "", ready
type: string
connectionInfo:
properties:
databaseName:
type: string
hostName:
type: string
password:
type: string
port:
type: string
sslMode:
type: string
userName:
type: string
type: object
connectionUpdatedAt:
description: Time the connection info was updated/created.
format: date-time
type: string
dbCreateAt:
description: Time the database was created
format: date-time
type: string
dbversion:
description: Version of the provisioned Database
type: string
matchLabel:
description: The name of the label that was successfully matched
against the fragment key names in the db-controller configMap
type: string
minStorageGB:
description: The optional MinStorageGB value requests the minimum
database host storage capacity in GBytes
type: integer
postMigrationActionStartedAt:
description: Time at the process of post migration actions initiated
format: date-time
type: string
shape:
description: The optional Shape values are arbitrary and help
drive instance selection
Expand Down
Loading
Loading