An Explanation of MySQl/PostGres Tables Involved in Armory Agent for Kubernetes
Armory Agent for Kubernetes requires an SQL-based database (MySQL/Postgres).
Before starting
Please refer to the following instructions before installing the Agent plugin and the Agent:https://docs.armory.io/armory-enterprise/armory-agent/armory-agent-install/#before-you-begin For instructions on how to enable an SQL-based database for Clouddriver, please refer to:https://docs.armory.io/armory-enterprise/armory-admin/clouddriver-sql-configure/.
Table Structure
The tables involved with the Armory Agent plugin begin with the name kubesvc_%.  These tables are all necessary for the functionality of Armory Agent.
Below is an example of the tables involved in the Armory Agent operations and the data they contain
mysql> show tables like '%kubesvc%';
+-----------------------------------+
| Tables_in_clouddriver (%kubesvc%) |
+-----------------------------------+
| kubesvc_accounts                  |
| kubesvc_assignments               |
| kubesvc_cache                     |
| kubesvc_cache_rel                 |
| kubesvc_ops                       |
| kubesvc_ops_history               |
| kubesvc_resourceversion           |
+-----------------------------------+
kubesvc_accounts
kubesvc_accounts contains the list of accounts that are onboarded through Agent.
mysql> select * from kubesvc_accounts;
+-----------------------------+---------------+---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-----------------------+----------------------------------------------------------------+
| name                        | last_updated  | kube_version        | kube_host                                                                | cert_fingerprint                                | max_watch_age_seconds | props                                                          |
+-----------------------------+---------------+---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-----------------------+----------------------------------------------------------------+
| xxxxx-agent-spinnaker-agent | 1654473329967 | v1.19.16-eks-25803e | https://1CA4B85288B7A199D54ED899B23EB3BC.sk1.us-east-2.eks.amazonaws.com | D8:F2:C9:EF:FC:98:6B:12:A9:AB:99:CC:28:B7:FF:F8 |                300000 | {"permissions":{"READ":["admin-role"],"WRITE":["admin-role"]}} |
+-----------------------------+---------------+---------------------+--------------------------------------------------------------------------+-------------------------------------------------+-----------------------+----------------------------------------------------------------+
1 row in set (0.00 sec)
kubesvc_assignments
kubesvc_assignments contains the account, agent pod id and the Clouddriver pod that that the Agent is registered with along with the current status of the connection
mysql> select * from kubesvc_assignments;
+-----+-----------------------------+-----------------------------------+-------------+------------------+----------------------+---------------+-------------------------------+
| id  | account_name                | cd_id                             | connections | caching          | reachable            | last_updated  | agent_id                      |
+-----+-----------------------------+-----------------------------------+-------------+------------------+----------------------+---------------+-------------------------------+
| 359 | xxxxx-agent-spinnaker-agent | spin-clouddriver-66f9ff86b6-729dg |           1 | 0x01             | 0x01                 | 1654473449959 | armory-agent-6cbfdd9fcd-wx62t |
+-----+-----------------------------+-----------------------------------+-------------+------------------+----------------------+---------------+-------------------------------+
kubesvc_cache
kubesvc_cache contains all the objects that Agents have discovered.  Querying this table would display all discovered objects.  It is advised to query this table with a where condition to limit the output.
kubesvc_cache_rel
kubesvc_cache_rel contains the relations between the discovered objects.
For example:A kubernetes deployment would have a relationship to a replicaset that would also have a relationship to a pod.  Querying this table would result in all the objects registered, and it is advised to query this table with a where condition to limit the output.
kubesvc_ops
kubesvc_ops contains the status of the live operations before they are moved to kubesvc_ops_history table.
kubesvc_ops_history
kubesvc_ops_history contains the operations history and Clouddriver and the Agents that processed them.  The table contains the data returned as an output when invoking the below endpoint.
curl -kv http://spin-clouddriver:7002/armory/agent/operations/{opId}
mysql> select * from kubesvc_ops_history where operation_id='01G4V5TH5QSWSR2SZE2VH1SDME';
+----------------------------+------------+------------------+-------------------+---------------+-----------------------------+----------------+-----------------------------------+---------------------+-----------------------------------+----------------------+-------------------------------+--------------------+----------------------------------+-----------------------------------+------------------------------+---------------------------------------+--------------------------------------------+-----------------------------------+-------------------------+
| operation_id               | start_time | end_time         | total_duration_ms | final_outcome | account                     | operation_type | received_by_cd_id                 | received_by_cd_time | processed_by_cd_id                | processed_by_cd_time | sent_to_agent_id              | sent_to_agent_time | res_received_from_agent_agent_id | res_received_from_agent_cd_id     | res_received_from_agent_time | res_received_from_agent_result_status | res_received_from_agent_result_duration_ms | res_received_by_cd_id             | res_received_by_cd_time |
+----------------------------+------------+------------------+-------------------+---------------+-----------------------------+----------------+-----------------------------------+---------------------+-----------------------------------+----------------------+-------------------------------+--------------------+----------------------------------+-----------------------------------+------------------------------+---------------------------------------+--------------------------------------------+-----------------------------------+-------------------------+
| 01G4V5TH5QSWSR2SZE2VH1SDME | 6502796751 | 6502796918404936 |               167 | completed     | gowri-agent-spinnaker-agent | Deploy         | spin-clouddriver-66f9ff86b6-729dg |          6502796751 | spin-clouddriver-66f9ff86b6-729dg |        1654474491122 | armory-agent-6cbfdd9fcd-wx62t |      1654474491136 | armory-agent-6cbfdd9fcd-wx62t    | spin-clouddriver-66f9ff86b6-729dg |                1654474491162 |                                   200 |                                         14 | spin-clouddriver-66f9ff86b6-729dg |           1654474491223 |
+----------------------------+------------+------------------+-------------------+---------------+-----------------------------+----------------+-----------------------------------+---------------------+-----------------------------------+----------------------+-------------------------------+--------------------+----------------------------------+-----------------------------------+------------------------------+---------------------------------------+--------------------------------------------+-----------------------------------+-------------------------+
kubesvc_resourceversion
kubesvc_resourceversion contains the resource kinds that Agent caches. 
mysql> select * from kubesvc_resourceversion limit 5;
+----------------------------------------------------------------------------+-----------------------------+------------------------------------------------+-----------------+---------------+
| id                                                                         | account                     | ns_group_kind                                  | resourceversion | last_updated  |
+----------------------------------------------------------------------------+-----------------------------+------------------------------------------------+-----------------+---------------+
| gowri-agent-spinnaker-agent::apiextensions.k8s.io.CustomResourceDefinition | xxxxx-agent-spinnaker-agent | :apiextensions.k8s.io.CustomResourceDefinition | 478732709       | 1654342418241 |
| gowri-agent-spinnaker-agent::apps.DaemonSet                                | xxxxx-agent-spinnaker-agent | :apps.DaemonSet                                | 478751878       | 1654342985243 |
| gowri-agent-spinnaker-agent::apps.Deployment                               | xxxxx-agent-spinnaker-agent | :apps.Deployment                               | 440962934       | 1654474372920 |
| gowri-agent-spinnaker-agent::apps.ReplicaSet                               | xxxxx-agent-spinnaker-agent | :apps.ReplicaSet                               | 480021810       | 1654473488764 |
| gowri-agent-spinnaker-agent::apps.StatefulSet                              | xxxxx-agent-spinnaker-agent | :apps.StatefulSet                              | 478751878       | 1654342985659 |
+----------------------------------------------------------------------------+-----------------------------+------------------------------------------------+-----------------+---------------+
 ```