From d4fa672c20657a1c7d2fcfa25e9798e7ccdbf39d Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Mon, 25 Sep 2017 16:10:25 +0900 Subject: Create Kubernetes cluster on GKE from k8s service --- db/migrate/20170924094327_create_ci_clusters.rb | 29 +++++++++++ db/schema.rb | 68 ++++++++++++++++--------- 2 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 db/migrate/20170924094327_create_ci_clusters.rb (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb new file mode 100644 index 00000000000..86e75edf203 --- /dev/null +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -0,0 +1,29 @@ +class CreateCiClusters < ActiveRecord::Migration + DOWNTIME = false + + def change + create_table :ci_clusters do |t| + t.integer :project_id + t.integer :owner_id + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :updated_at, null: false + t.boolean :enabled, default: true + t.string :end_point + t.text :ca_cert # Base64? + t.string :token + t.string :username + t.string :password + t.string :project_namespace + t.integer :creation_type # manual or on_gke + end + + # TODO: fk, index, encypt + + add_foreign_key :ci_clusters, :projects + add_foreign_key :ci_clusters, :users, column: :owner_id + end + + def down + drop_table :ci_clusters + end +end diff --git a/db/schema.rb b/db/schema.rb index 80ef91ec95d..5258adcbcb7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170921115009) do +ActiveRecord::Schema.define(version: 20170924094327) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -32,8 +32,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.text "description", null: false t.string "header_logo" t.string "logo" - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.text "description_html" t.integer "cached_markdown_version" end @@ -101,10 +101,6 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.text "help_page_text_html" t.text "shared_runners_text_html" t.text "after_sign_up_text_html" - t.integer "rsa_key_restriction", default: 0, null: false - t.integer "dsa_key_restriction", default: 0, null: false - t.integer "ecdsa_key_restriction", default: 0, null: false - t.integer "ed25519_key_restriction", default: 0, null: false t.boolean "housekeeping_enabled", default: true, null: false t.boolean "housekeeping_bitmaps_enabled", default: true, null: false t.integer "housekeeping_incremental_repack_period", default: 10, null: false @@ -132,6 +128,10 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.boolean "password_authentication_enabled" t.integer "performance_bar_allowed_group_id" t.boolean "hashed_storage_enabled", default: false, null: false + t.integer "rsa_key_restriction", default: 0, null: false + t.integer "dsa_key_restriction", default: 0, null: false + t.integer "ecdsa_key_restriction", default: 0, null: false + t.integer "ed25519_key_restriction", default: 0, null: false t.boolean "project_export_enabled", default: true, null: false t.boolean "auto_devops_enabled", default: false, null: false end @@ -256,7 +256,6 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_index "ci_builds", ["commit_id", "status", "type"], name: "index_ci_builds_on_commit_id_and_status_and_type", using: :btree add_index "ci_builds", ["commit_id", "type", "name", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_name_and_ref", using: :btree add_index "ci_builds", ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree - add_index "ci_builds", ["id"], name: "index_for_ci_builds_retried_migration", where: "(retried IS NULL)", using: :btree add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree add_index "ci_builds", ["protected"], name: "index_ci_builds_on_protected", using: :btree add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree @@ -267,6 +266,21 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_index "ci_builds", ["updated_at"], name: "index_ci_builds_on_updated_at", using: :btree add_index "ci_builds", ["user_id"], name: "index_ci_builds_on_user_id", using: :btree + create_table "ci_clusters", force: :cascade do |t| + t.integer "project_id" + t.integer "owner_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.boolean "enabled", default: true + t.string "end_point" + t.text "ca_cert" + t.string "token" + t.string "username" + t.string "password" + t.string "project_namespace" + t.integer "creation_type" + end + create_table "ci_group_variables", force: :cascade do |t| t.string "key", null: false t.text "value" @@ -275,8 +289,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.string "encrypted_value_iv" t.integer "group_id", null: false t.boolean "protected", default: false, null: false - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end add_index "ci_group_variables", ["group_id", "key"], name: "index_ci_group_variables_on_group_id_and_key", unique: true, using: :btree @@ -288,8 +302,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.string "encrypted_value_salt" t.string "encrypted_value_iv" t.integer "pipeline_schedule_id", null: false - t.datetime_with_timezone "created_at" - t.datetime_with_timezone "updated_at" + t.datetime "created_at" + t.datetime "updated_at" end add_index "ci_pipeline_schedule_variables", ["pipeline_schedule_id", "key"], name: "index_ci_pipeline_schedule_variables_on_schedule_id_and_key", unique: true, using: :btree @@ -341,12 +355,14 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.integer "auto_canceled_by_id" t.integer "pipeline_schedule_id" t.integer "source" - t.integer "config_source" t.boolean "protected" + t.integer "iid" + t.integer "config_source" end add_index "ci_pipelines", ["auto_canceled_by_id"], name: "index_ci_pipelines_on_auto_canceled_by_id", using: :btree add_index "ci_pipelines", ["pipeline_schedule_id"], name: "index_ci_pipelines_on_pipeline_schedule_id", using: :btree + add_index "ci_pipelines", ["project_id", "iid"], name: "index_ci_pipelines_on_project_id_and_iid", unique: true, using: :btree add_index "ci_pipelines", ["project_id", "ref", "status"], name: "index_ci_pipelines_on_project_id_and_ref_and_status", using: :btree add_index "ci_pipelines", ["project_id", "sha"], name: "index_ci_pipelines_on_project_id_and_sha", using: :btree add_index "ci_pipelines", ["project_id"], name: "index_ci_pipelines_on_project_id", using: :btree @@ -538,8 +554,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.integer "project_id" t.integer "author_id", null: false t.integer "target_id" - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.integer "action", limit: 2, null: false t.string "target_type" end @@ -577,8 +593,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree create_table "gpg_keys", force: :cascade do |t| - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.integer "user_id" t.binary "primary_keyid" t.binary "fingerprint" @@ -590,8 +606,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_index "gpg_keys", ["user_id"], name: "index_gpg_keys_on_user_id", using: :btree create_table "gpg_signatures", force: :cascade do |t| - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.integer "project_id" t.integer "gpg_key_id" t.binary "commit_sha" @@ -789,8 +805,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_index "members", ["user_id"], name: "index_members_on_user_id", using: :btree create_table "merge_request_diff_commits", id: false, force: :cascade do |t| - t.datetime_with_timezone "authored_date" - t.datetime_with_timezone "committed_date" + t.datetime "authored_date" + t.datetime "committed_date" t.integer "merge_request_diff_id", null: false t.integer "relative_order", null: false t.binary "sha", null: false @@ -1113,8 +1129,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do create_table "project_auto_devops", force: :cascade do |t| t.integer "project_id", null: false - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.boolean "enabled" t.string "domain" end @@ -1204,7 +1220,6 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.string "repository_storage", default: "default", null: false t.boolean "request_access_enabled", default: false, null: false t.boolean "has_external_wiki" - t.string "ci_config_path" t.boolean "lfs_enabled" t.text "description_html" t.boolean "only_allow_merge_if_all_discussions_are_resolved" @@ -1212,8 +1227,9 @@ ActiveRecord::Schema.define(version: 20170921115009) do t.integer "auto_cancel_pending_pipelines", default: 1, null: false t.string "import_jid" t.integer "cached_markdown_version" - t.text "delete_error" t.datetime "last_repository_updated_at" + t.string "ci_config_path" + t.text "delete_error" t.integer "storage_version", limit: 2 t.boolean "resolve_outdated_diff_discussions" end @@ -1685,6 +1701,8 @@ ActiveRecord::Schema.define(version: 20170921115009) do add_foreign_key "ci_builds", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_a2141b1522", on_delete: :nullify add_foreign_key "ci_builds", "ci_stages", column: "stage_id", name: "fk_3a9eaa254d", on_delete: :cascade add_foreign_key "ci_builds", "projects", name: "fk_befce0568a", on_delete: :cascade + add_foreign_key "ci_clusters", "projects" + add_foreign_key "ci_clusters", "users", column: "owner_id" add_foreign_key "ci_group_variables", "namespaces", column: "group_id", name: "fk_33ae4d58d8", on_delete: :cascade add_foreign_key "ci_pipeline_schedule_variables", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_41c35fda51", on_delete: :cascade add_foreign_key "ci_pipeline_schedules", "projects", name: "fk_8ead60fcc4", on_delete: :cascade -- cgit v1.2.1 From cf8140a752afe9a00197b11c9f9d38098717e6df Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Mon, 25 Sep 2017 16:38:21 +0900 Subject: Discard unnessecary changed in schema --- db/schema.rb | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) (limited to 'db') diff --git a/db/schema.rb b/db/schema.rb index 5258adcbcb7..f3e174c847f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -32,8 +32,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.text "description", null: false t.string "header_logo" t.string "logo" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false t.text "description_html" t.integer "cached_markdown_version" end @@ -101,6 +101,10 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.text "help_page_text_html" t.text "shared_runners_text_html" t.text "after_sign_up_text_html" + t.integer "rsa_key_restriction", default: 0, null: false + t.integer "dsa_key_restriction", default: 0, null: false + t.integer "ecdsa_key_restriction", default: 0, null: false + t.integer "ed25519_key_restriction", default: 0, null: false t.boolean "housekeeping_enabled", default: true, null: false t.boolean "housekeeping_bitmaps_enabled", default: true, null: false t.integer "housekeeping_incremental_repack_period", default: 10, null: false @@ -128,10 +132,6 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.boolean "password_authentication_enabled" t.integer "performance_bar_allowed_group_id" t.boolean "hashed_storage_enabled", default: false, null: false - t.integer "rsa_key_restriction", default: 0, null: false - t.integer "dsa_key_restriction", default: 0, null: false - t.integer "ecdsa_key_restriction", default: 0, null: false - t.integer "ed25519_key_restriction", default: 0, null: false t.boolean "project_export_enabled", default: true, null: false t.boolean "auto_devops_enabled", default: false, null: false end @@ -256,6 +256,7 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "ci_builds", ["commit_id", "status", "type"], name: "index_ci_builds_on_commit_id_and_status_and_type", using: :btree add_index "ci_builds", ["commit_id", "type", "name", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_name_and_ref", using: :btree add_index "ci_builds", ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree + add_index "ci_builds", ["id"], name: "index_for_ci_builds_retried_migration", where: "(retried IS NULL)", using: :btree add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree add_index "ci_builds", ["protected"], name: "index_ci_builds_on_protected", using: :btree add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree @@ -289,8 +290,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.string "encrypted_value_iv" t.integer "group_id", null: false t.boolean "protected", default: false, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false end add_index "ci_group_variables", ["group_id", "key"], name: "index_ci_group_variables_on_group_id_and_key", unique: true, using: :btree @@ -302,8 +303,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.string "encrypted_value_salt" t.string "encrypted_value_iv" t.integer "pipeline_schedule_id", null: false - t.datetime "created_at" - t.datetime "updated_at" + t.datetime_with_timezone "created_at" + t.datetime_with_timezone "updated_at" end add_index "ci_pipeline_schedule_variables", ["pipeline_schedule_id", "key"], name: "index_ci_pipeline_schedule_variables_on_schedule_id_and_key", unique: true, using: :btree @@ -355,14 +356,12 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.integer "auto_canceled_by_id" t.integer "pipeline_schedule_id" t.integer "source" - t.boolean "protected" - t.integer "iid" t.integer "config_source" + t.boolean "protected" end add_index "ci_pipelines", ["auto_canceled_by_id"], name: "index_ci_pipelines_on_auto_canceled_by_id", using: :btree add_index "ci_pipelines", ["pipeline_schedule_id"], name: "index_ci_pipelines_on_pipeline_schedule_id", using: :btree - add_index "ci_pipelines", ["project_id", "iid"], name: "index_ci_pipelines_on_project_id_and_iid", unique: true, using: :btree add_index "ci_pipelines", ["project_id", "ref", "status"], name: "index_ci_pipelines_on_project_id_and_ref_and_status", using: :btree add_index "ci_pipelines", ["project_id", "sha"], name: "index_ci_pipelines_on_project_id_and_sha", using: :btree add_index "ci_pipelines", ["project_id"], name: "index_ci_pipelines_on_project_id", using: :btree @@ -554,8 +553,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.integer "project_id" t.integer "author_id", null: false t.integer "target_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false t.integer "action", limit: 2, null: false t.string "target_type" end @@ -593,8 +592,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree create_table "gpg_keys", force: :cascade do |t| - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false t.integer "user_id" t.binary "primary_keyid" t.binary "fingerprint" @@ -606,8 +605,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "gpg_keys", ["user_id"], name: "index_gpg_keys_on_user_id", using: :btree create_table "gpg_signatures", force: :cascade do |t| - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false t.integer "project_id" t.integer "gpg_key_id" t.binary "commit_sha" @@ -805,8 +804,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "members", ["user_id"], name: "index_members_on_user_id", using: :btree create_table "merge_request_diff_commits", id: false, force: :cascade do |t| - t.datetime "authored_date" - t.datetime "committed_date" + t.datetime_with_timezone "authored_date" + t.datetime_with_timezone "committed_date" t.integer "merge_request_diff_id", null: false t.integer "relative_order", null: false t.binary "sha", null: false @@ -1129,8 +1128,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do create_table "project_auto_devops", force: :cascade do |t| t.integer "project_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false t.boolean "enabled" t.string "domain" end @@ -1220,6 +1219,7 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.string "repository_storage", default: "default", null: false t.boolean "request_access_enabled", default: false, null: false t.boolean "has_external_wiki" + t.string "ci_config_path" t.boolean "lfs_enabled" t.text "description_html" t.boolean "only_allow_merge_if_all_discussions_are_resolved" @@ -1227,9 +1227,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.integer "auto_cancel_pending_pipelines", default: 1, null: false t.string "import_jid" t.integer "cached_markdown_version" - t.datetime "last_repository_updated_at" - t.string "ci_config_path" t.text "delete_error" + t.datetime "last_repository_updated_at" t.integer "storage_version", limit: 2 t.boolean "resolve_outdated_diff_discussions" end -- cgit v1.2.1 From bdc618c289b8c2b996a3ef92b7748966c311d28a Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 26 Sep 2017 02:11:26 +0900 Subject: ok --- db/migrate/20170924094327_create_ci_clusters.rb | 34 ++++++++++++++++++++----- db/schema.rb | 13 +++++++--- 2 files changed, 37 insertions(+), 10 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index 86e75edf203..7a35fe35605 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -1,26 +1,48 @@ class CreateCiClusters < ActiveRecord::Migration DOWNTIME = false - def change + def up create_table :ci_clusters do |t| t.integer :project_id t.integer :owner_id - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :updated_at, null: false + t.integer :service_id + + # General t.boolean :enabled, default: true + t.integer :creation_type # manual or on_gke + + # k8s integration specific + t.string :project_namespace + + # Cluster details t.string :end_point - t.text :ca_cert # Base64? + t.text :ca_cert t.string :token t.string :username t.string :password - t.string :project_namespace - t.integer :creation_type # manual or on_gke + + # GKE + t.string :gcp_project_id + t.string :cluster_zone + t.string :cluster_name + + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :updated_at, null: false end + # create_table :ci_gke_clusters do |t| + # t.integer :ci_cluster_id + # t.string :gcp_project_id + # t.string :cluster_zone + # t.string :cluster_name + # end + # add_foreign_key :ci_gke_clusters, :ci_clusters + # TODO: fk, index, encypt add_foreign_key :ci_clusters, :projects add_foreign_key :ci_clusters, :users, column: :owner_id + add_foreign_key :ci_clusters, :services end def down diff --git a/db/schema.rb b/db/schema.rb index f3e174c847f..8000229d5fa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -270,16 +270,20 @@ ActiveRecord::Schema.define(version: 20170924094327) do create_table "ci_clusters", force: :cascade do |t| t.integer "project_id" t.integer "owner_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.integer "service_id" t.boolean "enabled", default: true + t.integer "creation_type" + t.string "project_namespace" t.string "end_point" t.text "ca_cert" t.string "token" t.string "username" t.string "password" - t.string "project_namespace" - t.integer "creation_type" + t.string "gcp_project_id" + t.string "cluster_zone" + t.string "cluster_name" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "ci_group_variables", force: :cascade do |t| @@ -1701,6 +1705,7 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_foreign_key "ci_builds", "ci_stages", column: "stage_id", name: "fk_3a9eaa254d", on_delete: :cascade add_foreign_key "ci_builds", "projects", name: "fk_befce0568a", on_delete: :cascade add_foreign_key "ci_clusters", "projects" + add_foreign_key "ci_clusters", "services" add_foreign_key "ci_clusters", "users", column: "owner_id" add_foreign_key "ci_group_variables", "namespaces", column: "group_id", name: "fk_33ae4d58d8", on_delete: :cascade add_foreign_key "ci_pipeline_schedule_variables", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_41c35fda51", on_delete: :cascade -- cgit v1.2.1 From e9d05a2cdc24b4dc771344f26e6ffdcf0240e46c Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Wed, 27 Sep 2017 21:01:08 +0900 Subject: Add login root. Remove ceration type. --- db/migrate/20170924094327_create_ci_clusters.rb | 9 --------- db/schema.rb | 1 - 2 files changed, 10 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index 7a35fe35605..dce3298cde2 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -9,7 +9,6 @@ class CreateCiClusters < ActiveRecord::Migration # General t.boolean :enabled, default: true - t.integer :creation_type # manual or on_gke # k8s integration specific t.string :project_namespace @@ -30,14 +29,6 @@ class CreateCiClusters < ActiveRecord::Migration t.datetime_with_timezone :updated_at, null: false end - # create_table :ci_gke_clusters do |t| - # t.integer :ci_cluster_id - # t.string :gcp_project_id - # t.string :cluster_zone - # t.string :cluster_name - # end - # add_foreign_key :ci_gke_clusters, :ci_clusters - # TODO: fk, index, encypt add_foreign_key :ci_clusters, :projects diff --git a/db/schema.rb b/db/schema.rb index 8000229d5fa..3908f06821e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -272,7 +272,6 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.integer "owner_id" t.integer "service_id" t.boolean "enabled", default: true - t.integer "creation_type" t.string "project_namespace" t.string "end_point" t.text "ca_cert" -- cgit v1.2.1 From 058e595788118fb129d3003989a3728de9ae7e39 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Wed, 27 Sep 2017 22:17:41 +0900 Subject: Delete/Update basic implementation --- db/migrate/20170924094327_create_ci_clusters.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index dce3298cde2..c919c5da2c4 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -29,7 +29,7 @@ class CreateCiClusters < ActiveRecord::Migration t.datetime_with_timezone :updated_at, null: false end - # TODO: fk, index, encypt + # TODO: fk, index, attr_encrypted add_foreign_key :ci_clusters, :projects add_foreign_key :ci_clusters, :users, column: :owner_id -- cgit v1.2.1 From fabc359e77c39aea86f0eaa9f19b17b2a609dd99 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Thu, 28 Sep 2017 18:11:17 +0900 Subject: Multithreading cluster creation is done with `reactive_cache` --- db/migrate/20170924094327_create_ci_clusters.rb | 1 + db/schema.rb | 1 + 2 files changed, 2 insertions(+) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index c919c5da2c4..33a67be46dc 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -24,6 +24,7 @@ class CreateCiClusters < ActiveRecord::Migration t.string :gcp_project_id t.string :cluster_zone t.string :cluster_name + t.string :gcp_operation_id t.datetime_with_timezone :created_at, null: false t.datetime_with_timezone :updated_at, null: false diff --git a/db/schema.rb b/db/schema.rb index 3908f06821e..0ebce995cfd 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -281,6 +281,7 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.string "gcp_project_id" t.string "cluster_zone" t.string "cluster_name" + t.string "gcp_operation_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end -- cgit v1.2.1 From bda1b0a878205ac99bf10c0b4f0e63f2d4e3a25f Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 29 Sep 2017 00:08:11 +0900 Subject: Databse foreing key, index, encrypt password. Use short path. Improve error handling. Polish. --- db/migrate/20170924094327_create_ci_clusters.rb | 17 +++++++---------- db/schema.rb | 15 ++++++++++----- 2 files changed, 17 insertions(+), 15 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index 33a67be46dc..2663130c7e6 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -3,9 +3,9 @@ class CreateCiClusters < ActiveRecord::Migration def up create_table :ci_clusters do |t| - t.integer :project_id - t.integer :owner_id - t.integer :service_id + t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade } + t.references :user, null: false, foreign_key: true + t.references :service, foreign_key: true # General t.boolean :enabled, default: true @@ -14,11 +14,14 @@ class CreateCiClusters < ActiveRecord::Migration t.string :project_namespace # Cluster details - t.string :end_point + t.string :endpoint t.text :ca_cert t.string :token t.string :username t.string :password + t.string :encrypted_password + t.string :encrypted_password_salt + t.string :encrypted_password_iv # GKE t.string :gcp_project_id @@ -29,12 +32,6 @@ class CreateCiClusters < ActiveRecord::Migration t.datetime_with_timezone :created_at, null: false t.datetime_with_timezone :updated_at, null: false end - - # TODO: fk, index, attr_encrypted - - add_foreign_key :ci_clusters, :projects - add_foreign_key :ci_clusters, :users, column: :owner_id - add_foreign_key :ci_clusters, :services end def down diff --git a/db/schema.rb b/db/schema.rb index 0ebce995cfd..af5367113a2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -268,16 +268,19 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "ci_builds", ["user_id"], name: "index_ci_builds_on_user_id", using: :btree create_table "ci_clusters", force: :cascade do |t| - t.integer "project_id" - t.integer "owner_id" + t.integer "project_id", null: false + t.integer "user_id", null: false t.integer "service_id" t.boolean "enabled", default: true t.string "project_namespace" - t.string "end_point" + t.string "endpoint" t.text "ca_cert" t.string "token" t.string "username" t.string "password" + t.string "encrypted_password" + t.string "encrypted_password_salt" + t.string "encrypted_password_iv" t.string "gcp_project_id" t.string "cluster_zone" t.string "cluster_name" @@ -286,6 +289,8 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.datetime "updated_at", null: false end + add_index "ci_clusters", ["project_id"], name: "index_ci_clusters_on_project_id", unique: true, using: :btree + create_table "ci_group_variables", force: :cascade do |t| t.string "key", null: false t.text "value" @@ -1704,9 +1709,9 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_foreign_key "ci_builds", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_a2141b1522", on_delete: :nullify add_foreign_key "ci_builds", "ci_stages", column: "stage_id", name: "fk_3a9eaa254d", on_delete: :cascade add_foreign_key "ci_builds", "projects", name: "fk_befce0568a", on_delete: :cascade - add_foreign_key "ci_clusters", "projects" + add_foreign_key "ci_clusters", "projects", on_delete: :cascade add_foreign_key "ci_clusters", "services" - add_foreign_key "ci_clusters", "users", column: "owner_id" + add_foreign_key "ci_clusters", "users" add_foreign_key "ci_group_variables", "namespaces", column: "group_id", name: "fk_33ae4d58d8", on_delete: :cascade add_foreign_key "ci_pipeline_schedule_variables", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_41c35fda51", on_delete: :cascade add_foreign_key "ci_pipeline_schedules", "projects", name: "fk_8ead60fcc4", on_delete: :cascade -- cgit v1.2.1 From e499c1c39dbea505858874ee47436641df3d93d4 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sun, 1 Oct 2017 00:54:22 +0900 Subject: Replace reactive_cache by multipel sidekiq workers --- db/migrate/20170924094327_create_ci_clusters.rb | 12 ++++++++++-- db/schema.rb | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index 2663130c7e6..798c8e03b37 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -9,6 +9,8 @@ class CreateCiClusters < ActiveRecord::Migration # General t.boolean :enabled, default: true + t.integer :status + t.string :status_reason # k8s integration specific t.string :project_namespace @@ -16,9 +18,10 @@ class CreateCiClusters < ActiveRecord::Migration # Cluster details t.string :endpoint t.text :ca_cert - t.string :token + t.string :encrypted_kubernetes_token + t.string :encrypted_kubernetes_token_salt + t.string :encrypted_kubernetes_token_iv t.string :username - t.string :password t.string :encrypted_password t.string :encrypted_password_salt t.string :encrypted_password_iv @@ -27,7 +30,12 @@ class CreateCiClusters < ActiveRecord::Migration t.string :gcp_project_id t.string :cluster_zone t.string :cluster_name + t.string :cluster_size + t.string :machine_type t.string :gcp_operation_id + t.string :encrypted_gcp_token + t.string :encrypted_gcp_token_salt + t.string :encrypted_gcp_token_iv t.datetime_with_timezone :created_at, null: false t.datetime_with_timezone :updated_at, null: false diff --git a/db/schema.rb b/db/schema.rb index af5367113a2..de844583d56 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -272,19 +272,27 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.integer "user_id", null: false t.integer "service_id" t.boolean "enabled", default: true + t.integer "status" + t.string "status_reason" t.string "project_namespace" t.string "endpoint" t.text "ca_cert" - t.string "token" + t.string "encrypted_kubernetes_token" + t.string "encrypted_kubernetes_token_salt" + t.string "encrypted_kubernetes_token_iv" t.string "username" - t.string "password" t.string "encrypted_password" t.string "encrypted_password_salt" t.string "encrypted_password_iv" t.string "gcp_project_id" t.string "cluster_zone" t.string "cluster_name" + t.string "cluster_size" + t.string "machine_type" t.string "gcp_operation_id" + t.string "encrypted_gcp_token" + t.string "encrypted_gcp_token_salt" + t.string "encrypted_gcp_token_iv" t.datetime "created_at", null: false t.datetime "updated_at", null: false end -- cgit v1.2.1 From 5663b4808df787b1bcbf32ba54eccbb4c7537e25 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sun, 1 Oct 2017 20:30:32 +0900 Subject: authorize in controller. validation in model. --- db/migrate/20170924094327_create_ci_clusters.rb | 8 ++++---- db/schema.rb | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb index 798c8e03b37..bef39b9808d 100644 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ b/db/migrate/20170924094327_create_ci_clusters.rb @@ -27,10 +27,10 @@ class CreateCiClusters < ActiveRecord::Migration t.string :encrypted_password_iv # GKE - t.string :gcp_project_id - t.string :cluster_zone - t.string :cluster_name - t.string :cluster_size + t.string :gcp_project_id, null: false + t.string :cluster_zone, null: false + t.string :cluster_name, null: false + t.integer :cluster_size, null: false t.string :machine_type t.string :gcp_operation_id t.string :encrypted_gcp_token diff --git a/db/schema.rb b/db/schema.rb index de844583d56..61245f3f666 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -284,10 +284,10 @@ ActiveRecord::Schema.define(version: 20170924094327) do t.string "encrypted_password" t.string "encrypted_password_salt" t.string "encrypted_password_iv" - t.string "gcp_project_id" - t.string "cluster_zone" - t.string "cluster_name" - t.string "cluster_size" + t.string "gcp_project_id", null: false + t.string "cluster_zone", null: false + t.string "cluster_name", null: false + t.integer "cluster_size", null: false t.string "machine_type" t.string "gcp_operation_id" t.string "encrypted_gcp_token" -- cgit v1.2.1 From 34e66c427dde2070c2c09a07ce08f991e46de92f Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Mon, 2 Oct 2017 21:58:50 +0900 Subject: PollingInterval, rename to gke_clusters, has_one :cluster --- db/migrate/20170924094327_create_ci_clusters.rb | 48 ------------------------ db/migrate/20170924094327_create_gcp_clusters.rb | 44 ++++++++++++++++++++++ db/schema.rb | 37 +++++++++++++++++- 3 files changed, 80 insertions(+), 49 deletions(-) delete mode 100644 db/migrate/20170924094327_create_ci_clusters.rb create mode 100644 db/migrate/20170924094327_create_gcp_clusters.rb (limited to 'db') diff --git a/db/migrate/20170924094327_create_ci_clusters.rb b/db/migrate/20170924094327_create_ci_clusters.rb deleted file mode 100644 index bef39b9808d..00000000000 --- a/db/migrate/20170924094327_create_ci_clusters.rb +++ /dev/null @@ -1,48 +0,0 @@ -class CreateCiClusters < ActiveRecord::Migration - DOWNTIME = false - - def up - create_table :ci_clusters do |t| - t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade } - t.references :user, null: false, foreign_key: true - t.references :service, foreign_key: true - - # General - t.boolean :enabled, default: true - t.integer :status - t.string :status_reason - - # k8s integration specific - t.string :project_namespace - - # Cluster details - t.string :endpoint - t.text :ca_cert - t.string :encrypted_kubernetes_token - t.string :encrypted_kubernetes_token_salt - t.string :encrypted_kubernetes_token_iv - t.string :username - t.string :encrypted_password - t.string :encrypted_password_salt - t.string :encrypted_password_iv - - # GKE - t.string :gcp_project_id, null: false - t.string :cluster_zone, null: false - t.string :cluster_name, null: false - t.integer :cluster_size, null: false - t.string :machine_type - t.string :gcp_operation_id - t.string :encrypted_gcp_token - t.string :encrypted_gcp_token_salt - t.string :encrypted_gcp_token_iv - - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :updated_at, null: false - end - end - - def down - drop_table :ci_clusters - end -end diff --git a/db/migrate/20170924094327_create_gcp_clusters.rb b/db/migrate/20170924094327_create_gcp_clusters.rb new file mode 100644 index 00000000000..9aa8e537dbe --- /dev/null +++ b/db/migrate/20170924094327_create_gcp_clusters.rb @@ -0,0 +1,44 @@ +class CreateGcpClusters < ActiveRecord::Migration + DOWNTIME = false + + def change + create_table :gcp_clusters do |t| + t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade } + t.references :user, null: false, foreign_key: true + t.references :service, foreign_key: true + + # General + t.boolean :enabled, default: true + t.integer :status + t.string :status_reason + + # k8s integration specific + t.string :project_namespace + + # Cluster details + t.string :endpoint + t.text :ca_cert + t.string :encrypted_kubernetes_token + t.string :encrypted_kubernetes_token_salt + t.string :encrypted_kubernetes_token_iv + t.string :username + t.string :encrypted_password + t.string :encrypted_password_salt + t.string :encrypted_password_iv + + # GKE + t.string :gcp_project_id, null: false + t.string :cluster_zone, null: false + t.string :cluster_name, null: false + t.integer :cluster_size, null: false + t.string :machine_type + t.string :gcp_operation_id + t.string :encrypted_gcp_token + t.string :encrypted_gcp_token_salt + t.string :encrypted_gcp_token_iv + + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :updated_at, null: false + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 61245f3f666..62802cd20ee 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170924094327) do +ActiveRecord::Schema.define(version: 20170928100231) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -608,6 +608,38 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree + create_table "gcp_clusters", force: :cascade do |t| + t.integer "project_id", null: false + t.integer "user_id", null: false + t.integer "service_id" + t.boolean "enabled", default: true + t.integer "status" + t.string "status_reason" + t.string "project_namespace" + t.string "endpoint" + t.text "ca_cert" + t.string "encrypted_kubernetes_token" + t.string "encrypted_kubernetes_token_salt" + t.string "encrypted_kubernetes_token_iv" + t.string "username" + t.string "encrypted_password" + t.string "encrypted_password_salt" + t.string "encrypted_password_iv" + t.string "gcp_project_id", null: false + t.string "cluster_zone", null: false + t.string "cluster_name", null: false + t.integer "cluster_size", null: false + t.string "machine_type" + t.string "gcp_operation_id" + t.string "encrypted_gcp_token" + t.string "encrypted_gcp_token_salt" + t.string "encrypted_gcp_token_iv" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + add_index "gcp_clusters", ["project_id"], name: "index_gcp_clusters_on_project_id", unique: true, using: :btree + create_table "gpg_keys", force: :cascade do |t| t.datetime_with_timezone "created_at", null: false t.datetime_with_timezone "updated_at", null: false @@ -1742,6 +1774,9 @@ ActiveRecord::Schema.define(version: 20170924094327) do add_foreign_key "events", "projects", on_delete: :cascade add_foreign_key "events", "users", column: "author_id", name: "fk_edfd187b6f", on_delete: :cascade add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade + add_foreign_key "gcp_clusters", "projects", on_delete: :cascade + add_foreign_key "gcp_clusters", "services" + add_foreign_key "gcp_clusters", "users" add_foreign_key "gpg_keys", "users", on_delete: :cascade add_foreign_key "gpg_signatures", "gpg_keys", on_delete: :nullify add_foreign_key "gpg_signatures", "projects", on_delete: :cascade -- cgit v1.2.1 From 6b7889f750c56962c0674467c3fbfd7976b9b44f Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 3 Oct 2017 23:44:06 +0900 Subject: Implement Policy. Use show instead of edit. Chnage db column. fix comments. dry up workers --- db/migrate/20170924094327_create_gcp_clusters.rb | 11 +++--- db/schema.rb | 46 +++--------------------- 2 files changed, 8 insertions(+), 49 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_gcp_clusters.rb b/db/migrate/20170924094327_create_gcp_clusters.rb index 9aa8e537dbe..032db09e748 100644 --- a/db/migrate/20170924094327_create_gcp_clusters.rb +++ b/db/migrate/20170924094327_create_gcp_clusters.rb @@ -19,22 +19,19 @@ class CreateGcpClusters < ActiveRecord::Migration t.string :endpoint t.text :ca_cert t.string :encrypted_kubernetes_token - t.string :encrypted_kubernetes_token_salt t.string :encrypted_kubernetes_token_iv t.string :username t.string :encrypted_password - t.string :encrypted_password_salt t.string :encrypted_password_iv # GKE t.string :gcp_project_id, null: false - t.string :cluster_zone, null: false - t.string :cluster_name, null: false - t.integer :cluster_size, null: false - t.string :machine_type + t.string :gcp_cluster_zone, null: false + t.string :gcp_cluster_name, null: false + t.integer :gcp_cluster_size, null: false + t.string :gcp_machine_type t.string :gcp_operation_id t.string :encrypted_gcp_token - t.string :encrypted_gcp_token_salt t.string :encrypted_gcp_token_iv t.datetime_with_timezone :created_at, null: false diff --git a/db/schema.rb b/db/schema.rb index 62802cd20ee..4d8dca384b4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -267,38 +267,6 @@ ActiveRecord::Schema.define(version: 20170928100231) do add_index "ci_builds", ["updated_at"], name: "index_ci_builds_on_updated_at", using: :btree add_index "ci_builds", ["user_id"], name: "index_ci_builds_on_user_id", using: :btree - create_table "ci_clusters", force: :cascade do |t| - t.integer "project_id", null: false - t.integer "user_id", null: false - t.integer "service_id" - t.boolean "enabled", default: true - t.integer "status" - t.string "status_reason" - t.string "project_namespace" - t.string "endpoint" - t.text "ca_cert" - t.string "encrypted_kubernetes_token" - t.string "encrypted_kubernetes_token_salt" - t.string "encrypted_kubernetes_token_iv" - t.string "username" - t.string "encrypted_password" - t.string "encrypted_password_salt" - t.string "encrypted_password_iv" - t.string "gcp_project_id", null: false - t.string "cluster_zone", null: false - t.string "cluster_name", null: false - t.integer "cluster_size", null: false - t.string "machine_type" - t.string "gcp_operation_id" - t.string "encrypted_gcp_token" - t.string "encrypted_gcp_token_salt" - t.string "encrypted_gcp_token_iv" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - add_index "ci_clusters", ["project_id"], name: "index_ci_clusters_on_project_id", unique: true, using: :btree - create_table "ci_group_variables", force: :cascade do |t| t.string "key", null: false t.text "value" @@ -619,20 +587,17 @@ ActiveRecord::Schema.define(version: 20170928100231) do t.string "endpoint" t.text "ca_cert" t.string "encrypted_kubernetes_token" - t.string "encrypted_kubernetes_token_salt" t.string "encrypted_kubernetes_token_iv" t.string "username" t.string "encrypted_password" - t.string "encrypted_password_salt" t.string "encrypted_password_iv" t.string "gcp_project_id", null: false - t.string "cluster_zone", null: false - t.string "cluster_name", null: false - t.integer "cluster_size", null: false - t.string "machine_type" + t.string "gcp_cluster_zone", null: false + t.string "gcp_cluster_name", null: false + t.integer "gcp_cluster_size", null: false + t.string "gcp_machine_type" t.string "gcp_operation_id" t.string "encrypted_gcp_token" - t.string "encrypted_gcp_token_salt" t.string "encrypted_gcp_token_iv" t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -1749,9 +1714,6 @@ ActiveRecord::Schema.define(version: 20170928100231) do add_foreign_key "ci_builds", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_a2141b1522", on_delete: :nullify add_foreign_key "ci_builds", "ci_stages", column: "stage_id", name: "fk_3a9eaa254d", on_delete: :cascade add_foreign_key "ci_builds", "projects", name: "fk_befce0568a", on_delete: :cascade - add_foreign_key "ci_clusters", "projects", on_delete: :cascade - add_foreign_key "ci_clusters", "services" - add_foreign_key "ci_clusters", "users" add_foreign_key "ci_group_variables", "namespaces", column: "group_id", name: "fk_33ae4d58d8", on_delete: :cascade add_foreign_key "ci_pipeline_schedule_variables", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_41c35fda51", on_delete: :cascade add_foreign_key "ci_pipeline_schedules", "projects", name: "fk_8ead60fcc4", on_delete: :cascade -- cgit v1.2.1 From c6d53250de7f439bc25740913d85ada6e3b2fed4 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 4 Oct 2017 00:20:47 +0200 Subject: Specify defaults, fix policies, fix db columns --- db/migrate/20170924094327_create_gcp_clusters.rb | 12 ++++++------ db/schema.rb | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_gcp_clusters.rb b/db/migrate/20170924094327_create_gcp_clusters.rb index 032db09e748..42171be7fc4 100644 --- a/db/migrate/20170924094327_create_gcp_clusters.rb +++ b/db/migrate/20170924094327_create_gcp_clusters.rb @@ -4,13 +4,13 @@ class CreateGcpClusters < ActiveRecord::Migration def change create_table :gcp_clusters do |t| t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade } - t.references :user, null: false, foreign_key: true - t.references :service, foreign_key: true + t.references :user, foreign_key: { on_delete: :nullify } + t.references :service, foreign_key: { on_delete: :nullify } # General t.boolean :enabled, default: true t.integer :status - t.string :status_reason + t.text :status_reason # k8s integration specific t.string :project_namespace @@ -18,10 +18,10 @@ class CreateGcpClusters < ActiveRecord::Migration # Cluster details t.string :endpoint t.text :ca_cert - t.string :encrypted_kubernetes_token + t.text :encrypted_kubernetes_token t.string :encrypted_kubernetes_token_iv t.string :username - t.string :encrypted_password + t.text :encrypted_password t.string :encrypted_password_iv # GKE @@ -31,7 +31,7 @@ class CreateGcpClusters < ActiveRecord::Migration t.integer :gcp_cluster_size, null: false t.string :gcp_machine_type t.string :gcp_operation_id - t.string :encrypted_gcp_token + t.text :encrypted_gcp_token t.string :encrypted_gcp_token_iv t.datetime_with_timezone :created_at, null: false diff --git a/db/schema.rb b/db/schema.rb index 9fc8191751c..0056fe7a09f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -577,18 +577,18 @@ ActiveRecord::Schema.define(version: 20170928100231) do create_table "gcp_clusters", force: :cascade do |t| t.integer "project_id", null: false - t.integer "user_id", null: false + t.integer "user_id" t.integer "service_id" t.boolean "enabled", default: true t.integer "status" - t.string "status_reason" + t.text "status_reason" t.string "project_namespace" t.string "endpoint" t.text "ca_cert" - t.string "encrypted_kubernetes_token" + t.text "encrypted_kubernetes_token" t.string "encrypted_kubernetes_token_iv" t.string "username" - t.string "encrypted_password" + t.text "encrypted_password" t.string "encrypted_password_iv" t.string "gcp_project_id", null: false t.string "gcp_cluster_zone", null: false @@ -596,10 +596,10 @@ ActiveRecord::Schema.define(version: 20170928100231) do t.integer "gcp_cluster_size", null: false t.string "gcp_machine_type" t.string "gcp_operation_id" - t.string "encrypted_gcp_token" + t.text "encrypted_gcp_token" t.string "encrypted_gcp_token_iv" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false end add_index "gcp_clusters", ["project_id"], name: "index_gcp_clusters_on_project_id", unique: true, using: :btree @@ -1752,8 +1752,8 @@ ActiveRecord::Schema.define(version: 20170928100231) do add_foreign_key "events", "users", column: "author_id", name: "fk_edfd187b6f", on_delete: :cascade add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade add_foreign_key "gcp_clusters", "projects", on_delete: :cascade - add_foreign_key "gcp_clusters", "services" - add_foreign_key "gcp_clusters", "users" + add_foreign_key "gcp_clusters", "services", on_delete: :nullify + add_foreign_key "gcp_clusters", "users", on_delete: :nullify add_foreign_key "gpg_keys", "users", on_delete: :cascade add_foreign_key "gpg_signatures", "gpg_keys", on_delete: :nullify add_foreign_key "gpg_signatures", "projects", on_delete: :cascade -- cgit v1.2.1 From 2178cd44c59effb67cef0743064a75f5073c9f45 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 5 Oct 2017 17:09:00 +0200 Subject: Optimise gcp_clusters table schema --- db/migrate/20170924094327_create_gcp_clusters.rb | 16 ++++++++++------ db/schema.rb | 8 ++++---- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'db') diff --git a/db/migrate/20170924094327_create_gcp_clusters.rb b/db/migrate/20170924094327_create_gcp_clusters.rb index 42171be7fc4..657dddcbbc4 100644 --- a/db/migrate/20170924094327_create_gcp_clusters.rb +++ b/db/migrate/20170924094327_create_gcp_clusters.rb @@ -3,13 +3,21 @@ class CreateGcpClusters < ActiveRecord::Migration def change create_table :gcp_clusters do |t| + # Order columns by best align scheme t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade } t.references :user, foreign_key: { on_delete: :nullify } t.references :service, foreign_key: { on_delete: :nullify } + t.integer :status + t.integer :gcp_cluster_size, null: false - # General + # Timestamps + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :updated_at, null: false + + # Enable/disable t.boolean :enabled, default: true - t.integer :status + + # General t.text :status_reason # k8s integration specific @@ -28,14 +36,10 @@ class CreateGcpClusters < ActiveRecord::Migration t.string :gcp_project_id, null: false t.string :gcp_cluster_zone, null: false t.string :gcp_cluster_name, null: false - t.integer :gcp_cluster_size, null: false t.string :gcp_machine_type t.string :gcp_operation_id t.text :encrypted_gcp_token t.string :encrypted_gcp_token_iv - - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :updated_at, null: false end end end diff --git a/db/schema.rb b/db/schema.rb index 00a52c1dffe..5f8f4bb7d5e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -583,8 +583,11 @@ ActiveRecord::Schema.define(version: 20171004121444) do t.integer "project_id", null: false t.integer "user_id" t.integer "service_id" - t.boolean "enabled", default: true t.integer "status" + t.integer "gcp_cluster_size", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false + t.boolean "enabled", default: true t.text "status_reason" t.string "project_namespace" t.string "endpoint" @@ -597,13 +600,10 @@ ActiveRecord::Schema.define(version: 20171004121444) do t.string "gcp_project_id", null: false t.string "gcp_cluster_zone", null: false t.string "gcp_cluster_name", null: false - t.integer "gcp_cluster_size", null: false t.string "gcp_machine_type" t.string "gcp_operation_id" t.text "encrypted_gcp_token" t.string "encrypted_gcp_token_iv" - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false end add_index "gcp_clusters", ["project_id"], name: "index_gcp_clusters_on_project_id", unique: true, using: :btree -- cgit v1.2.1