diff options
author | Tiger <twatson@gitlab.com> | 2019-05-31 14:58:47 -0500 |
---|---|---|
committer | Tiger <twatson@gitlab.com> | 2019-06-12 13:56:39 +1000 |
commit | 68e625373fecd113ccf6a030413983e1d7fd84c1 (patch) | |
tree | ae2fa0599249148ee044d6ce4b2a59ab44a72680 | |
parent | 20bdbc3d0cd716ba49e64db37254ed249cd0c683 (diff) | |
download | gitlab-ce-52494-add-environment-id-to-clusters-kubernetes-namespaces.tar.gz |
Add environment_id to clusters_kubernetes_namespaces52494-add-environment-id-to-clusters-kubernetes-namespaces
Enables support for creating a Kubernetes namespace
per deployed environment while maintaining backwards
compatibility with environments that were deployed to
when a single namespace was used for all environments.
https://gitlab.com/gitlab-org/gitlab-ce/issues/52494
5 files changed, 66 insertions, 1 deletions
diff --git a/changelogs/unreleased/52494-add-environment-id-to-clusters-kubernetes-namespaces.yml b/changelogs/unreleased/52494-add-environment-id-to-clusters-kubernetes-namespaces.yml new file mode 100644 index 00000000000..c819bad43c4 --- /dev/null +++ b/changelogs/unreleased/52494-add-environment-id-to-clusters-kubernetes-namespaces.yml @@ -0,0 +1,5 @@ +--- +title: Add environment_id to clusters_kubernetes_namespaces +merge_request: 29038 +author: +type: other diff --git a/db/migrate/20190531191040_add_environment_id_to_clusters_kubernetes_namespaces.rb b/db/migrate/20190531191040_add_environment_id_to_clusters_kubernetes_namespaces.rb new file mode 100644 index 00000000000..c530225c9bc --- /dev/null +++ b/db/migrate/20190531191040_add_environment_id_to_clusters_kubernetes_namespaces.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddEnvironmentIdToClustersKubernetesNamespaces < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + add_reference :clusters_kubernetes_namespaces, :environment, + index: true, type: :integer, foreign_key: { on_delete: :cascade } + end +end diff --git a/db/migrate/20190531191129_index_clusters_kubernetes_namespaces_on_cluster_id_and_environment_id.rb b/db/migrate/20190531191129_index_clusters_kubernetes_namespaces_on_cluster_id_and_environment_id.rb new file mode 100644 index 00000000000..90643ece871 --- /dev/null +++ b/db/migrate/20190531191129_index_clusters_kubernetes_namespaces_on_cluster_id_and_environment_id.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class IndexClustersKubernetesNamespacesOnClusterIdAndEnvironmentId < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_clusters_kubernetes_namespaces_on_cluster_and_environment' + + disable_ddl_transaction! + + def up + add_concurrent_index :clusters_kubernetes_namespaces, [:cluster_id, :environment_id], + unique: true, name: INDEX_NAME + end + + def down + remove_concurrent_index :clusters_kubernetes_namespaces, name: INDEX_NAME + end +end diff --git a/db/migrate/20190531191429_remove_redundant_clusters_kubernetes_namespaces_index.rb b/db/migrate/20190531191429_remove_redundant_clusters_kubernetes_namespaces_index.rb new file mode 100644 index 00000000000..60410d840b4 --- /dev/null +++ b/db/migrate/20190531191429_remove_redundant_clusters_kubernetes_namespaces_index.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class RemoveRedundantClustersKubernetesNamespacesIndex < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + remove_concurrent_index :clusters_kubernetes_namespaces, :cluster_id + end + + def down + add_concurrent_index :clusters_kubernetes_namespaces, :cluster_id + end +end diff --git a/db/schema.rb b/db/schema.rb index 1755730bb72..63ffff00df8 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -794,9 +794,11 @@ ActiveRecord::Schema.define(version: 20190611161641) do t.string "encrypted_service_account_token_iv" t.string "namespace", null: false t.string "service_account_name" + t.integer "environment_id" + t.index ["cluster_id", "environment_id"], name: "index_clusters_kubernetes_namespaces_on_cluster_and_environment", unique: true, using: :btree t.index ["cluster_id", "namespace"], name: "kubernetes_namespaces_cluster_and_namespace", unique: true, using: :btree - t.index ["cluster_id"], name: "index_clusters_kubernetes_namespaces_on_cluster_id", using: :btree t.index ["cluster_project_id"], name: "index_clusters_kubernetes_namespaces_on_cluster_project_id", using: :btree + t.index ["environment_id"], name: "index_clusters_kubernetes_namespaces_on_environment_id", using: :btree t.index ["project_id"], name: "index_clusters_kubernetes_namespaces_on_project_id", using: :btree end @@ -2509,6 +2511,7 @@ ActiveRecord::Schema.define(version: 20190611161641) do add_foreign_key "clusters_applications_runners", "clusters", on_delete: :cascade add_foreign_key "clusters_kubernetes_namespaces", "cluster_projects", on_delete: :nullify add_foreign_key "clusters_kubernetes_namespaces", "clusters", on_delete: :cascade + add_foreign_key "clusters_kubernetes_namespaces", "environments", on_delete: :cascade add_foreign_key "clusters_kubernetes_namespaces", "projects", on_delete: :nullify add_foreign_key "container_repositories", "projects" add_foreign_key "deploy_keys_projects", "projects", name: "fk_58a901ca7e", on_delete: :cascade |