diff options
author | Shinya Maeda <shinya@gitlab.com> | 2017-12-15 22:43:25 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-01-08 16:22:17 +0900 |
commit | 8e6ffe358873ff56eb1d2b6354fac39ce2dfa80e (patch) | |
tree | 19e7298970e0309841b50d68e34fa2cdaa27b051 /spec/migrations | |
parent | 4dc14576d506218c71debb3a0600acdf855afe09 (diff) | |
download | gitlab-ce-8e6ffe358873ff56eb1d2b6354fac39ce2dfa80e.tar.gz |
Fix test
Diffstat (limited to 'spec/migrations')
-rw-r--r-- | spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb | 239 |
1 files changed, 52 insertions, 187 deletions
diff --git a/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb b/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb index 0f270dd37da..d3fa1fe9054 100644 --- a/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb +++ b/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb @@ -54,205 +54,70 @@ describe MigrateKubernetesServiceToNewClustersArchitectures, :migration do end context 'when unique KubernetesService spawned from Service Template' do - it 'migrates the KubernetesService to Platform::Kubernetes' do + let(:sample_num) { 2 } + let(:projects) { create_list(:project, sample_num) } + + let!(:kubernetes_service_template) do + create(:kubernetes_service, + project: nil, + template: true, + api_url: "https://sample.kubernetes.com", + token: "token-sample", + ca_pem: "ca_pem-sample") + end + + let!(:kubernetes_services) do + projects.map do |project| + create(:kubernetes_service, + project: project, + api_url: kubernetes_service_template.api_url, + token: kubernetes_service_template.token, + ca_pem: kubernetes_service_template.ca_pem) + end + end + + it 'migrates the KubernetesService to Platform::Kubernetes without template' do + expect{ migrate! }.to change { Clusters::Cluster.count }.by(sample_num) + projects.each do |project| + project.clusters.last.tap do |cluster| + expect(cluster.platform_kubernetes.api_url).to eq(project.kubernetes_service.api_url) + expect(cluster.platform_kubernetes.ca_pem).to eq(project.kubernetes_service.ca_pem) + expect(cluster.platform_kubernetes.token).to eq(project.kubernetes_service.token) + expect(project.kubernetes_service).not_to be_active + expect(project.kubernetes_service.properties['migrated']).to be_truthy + end + end end end context 'when synced KubernetesService exists' do + let(:project) { create(:project) } + let(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) } + let!(:platform_kubernetes) { cluster.platform_kubernetes } + + let!(:kubernetes_service) do + create(:kubernetes_service, + project: project, + active: cluster.enabled, + api_url: platform_kubernetes.api_url, + token: platform_kubernetes.token, + ca_pem: platform_kubernetes.ca_cert) + end + it 'does not migrate the KubernetesService' do # Because the corresponding Platform::Kubernetes already exists + expect{ migrate! }.not_to change { Clusters::Cluster.count } + expect(kubernetes_service).to be_active + expect(kubernetes_service.properties['migrated']).to be_falsy end end context 'when KubernetesService does not exist' do - it 'does not migrate the KubernetesService' do + let!(:project) { create(:project) } + it 'does not migrate the KubernetesService' do + expect{ migrate! }.not_to change { Clusters::Cluster.count } end end - - # context 'when user configured kubernetes from CI/CD > Clusters' do - # let(:project) { create(:project) } - # let(:user) { create(:user) } - - # # Platforms::Kubernetes (New archtecture) - # let!(:cluster) do - # create(:cluster, - # projects: [project], - # user: user, - # provider_type: :gcp, - # platform_type: :kubernetes, - # provider_gcp: provider_gcp, - # platform_kubernetes: platform_kubernetes) - # end - - # let(:provider_gcp) { create(:cluster_provider_gcp, :created) } - # let(:platform_kubernetes) { create(:cluster_platform_kubernetes, :configured) } - - # # KubernetesService (Automatically synchronized when Platforms::Kubernetes created) - # let!(:kubernetes_service) { create(:kubernetes_service, project: project) } - - # context 'when user is using the cluster' do - # it 'migrates' do - # expect{ migrate! }.not_to change { Clusters::Cluster.count } - # expect(cluster).to be_active - # expect(kubernetes_service).not_to be_active - # end - # end - - # context 'when user disabled cluster' do - # before do - # disable_cluster! - # end - - # context 'when user configured kubernetes from Integration > Kubernetes' do - # before do - # kubernetes_service.update( - # active: true, - # api_url: 'http://new.kube.com', - # ca_pem: nil, - # token: 'z' * 40).reload - # end - - # context 'when user is using the kubernetes service' do - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).to be_active - # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token) - # end - - # expect(kubernetes_service).not_to be_active - # end - # end - - # context 'when user stopped using the kubernetes service' do - # before do - # kubernetes_service.update(active: false) - # end - - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).not_to be_active - # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token) - # end - - # expect(kubernetes_service).not_to be_active - # end - # end - # end - # end - - # context 'when user deleted cluster' do - # before do - # destory_cluster! - # end - - # context 'when user configured kubernetes from Integration > Kubernetes' do - # let!(:new_kubernetes_service) do - # project.create_kubernetes_service( - # active: true, - # api_url: 'http://123.123.123.123', - # ca_pem: nil, - # token: 'a' * 40) - # end - - # context 'when user is using the kubernetes service' do - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).to be_active - # expect(c.platform_kubernetes.api_url).to eq(new_kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(new_kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(new_kubernetes_service.token) - # end - - # expect(new_kubernetes_service).not_to be_active - # end - # end - - # context 'when user stopped using the kubernetes service' do - # before do - # new_kubernetes_service.update(active: false) - # end - - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).not_to be_active - # expect(c.platform_kubernetes.api_url).to eq(new_kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(new_kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(new_kubernetes_service.token) - # end - - # expect(new_kubernetes_service).not_to be_active - # end - # end - # end - # end - # end - - # context 'when user configured kubernetes from Integration > Kubernetes' do - # let(:project) { create(:project) } - # let!(:kubernetes_service) { create(:kubernetes_service, project: project) } - - # context 'when user is using the kubernetes service' do - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).to be_active - # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token) - # end - - # expect(kubernetes_service).not_to be_active - # end - # end - - # context 'when user stopped using the kubernetes service' do - # before do - # kubernetes_service.update(active: false) - # end - - # it 'migrates' do - # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1) - - # Clusters::Cluster.last.tap do |c| - # expect(c).not_to be_active - # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url) - # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem) - # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token) - # end - - # expect(kubernetes_service).not_to be_active - # end - # end - # end - - # context 'when nothing is configured' do - # it 'migrates' do - # expect{ migrate! }.not_to change { Clusters::Cluster.count } - # end - # end - - # def disable_cluster! - # cluster.update!(enabled: false) - # kubernetes_service.update!(active: false) - # end - - # def destory_cluster! - # cluster.destroy! - # kubernetes_service.destroy! - # end end |