@startuml
skinparam shadowing false
skinparam backgroundColor #fcfcfd
skinparam defaultFontName Helvetica
skinparam defaultFontSize 14
skinparam arrowColor #0f172a
skinparam noteBackgroundColor #fff7d6
skinparam noteBorderColor #b45309
skinparam noteFontColor #334155
skinparam roundcorner 16
title Activity - mysql/MySqlDbSystem
skinparam activity {
  backgroundColor #f8fafc
  borderColor #0f172a
  fontColor #0f172a
  diamondBackgroundColor #e2e8f0
  diamondBorderColor #1d4ed8
  diamondFontColor #0f172a
  startColor #1d4ed8
  endColor #0f172a
  barColor #1d4ed8
}
start
:Start from shared flow\nshared/diagrams/shared-reconcile-activity.svg;
:Load desired MySqlDbSystem spec and status\nfrom Kubernetes;
:Resolve OCI state via GetDbSystem with\nListDbSystems fallback;
:Use oci_mysql_mysql_db_systems filters\ncompartment_id, configuration_id,\ndatabase_management, db_system_id (+4 more)\nwhen OCID lookup or bind-versus-create needs\nlist resolution;
if (Resource exists?) then (yes)
:Update path calls UpdateDbSystem;
:Guard mutable fields access_mode,\nbackup_policy.copy_policies.backup_copy_retention_in_days,\nbackup_policy.copy_policies.copy_to_region,\nbackup_policy.defined_tags (+50 more) and\nforce-new fields admin_password,\nadmin_username, availability_domain,\ncompartment_id (+12 more);
else (no)
:Create path calls CreateDbSystem;
endif
:Run provider helper hooks\ncreate=tfresource.CreateResource;\nupdate=tfresource.UpdateResource;\ndelete=tfresource.DeleteResource;
:Apply repo-authored secret policy ready-only\nwrites after ACTIVE plus secret-input reads;
:Delete stays repo-authored not-supported\ndespite provider op DeleteDbSystem;
:Project manual status and finalizer policy\nnone;
:Requeue on provisioning, updating;
:Keep promotion blocked on bind-versus-create,\ndelete-confirmation, endpoint-materialization,\nlegacy-adapter, list-lookup (+3 more);
stop
note right
shared diagram:
shared/diagrams/shared-reconcile-activity.svg
Start from the shared reconcile activity and
specialize provider-backed CRUD, wait, and
status-projection details here.
Controller-local activity diagrams add
list-lookup hints, secret policies, delete
handling, and open formal gaps.
archetype batch: Legacy-adapter controllers
specialize the shared reconcile path while
explicit gaps still block generated promotion.
service: mysql
slug: mysqldbsystem
kind: MySqlDbSystem
archetype: legacy-adapter
status/finalizer: manual / none
requeue: provisioning, updating
provider states: create CREATING, UPDATING;
update UPDATING; delete DELETING
mutable/forceNew: access_mode,
backup_policy.copy_policies.backup_copy_retention_in_days,
backup_policy.copy_policies.copy_to_region,
backup_policy.defined_tags (+50 more) /
admin_password, admin_username,
availability_domain, compartment_id (+12 more)
open gaps: bind-versus-create,
delete-confirmation, endpoint-materialization,
legacy-adapter, list-lookup (+3 more)
Create reads username and password secrets
before submitting the OCI request.
Endpoint secret materialization only happens
after the DB system reaches ACTIVE.
Delete remains an unsupported legacy path, so no
confirmed terminating phase exists today.
end note
@enduml
