diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-20 12:26:25 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-20 12:26:25 +0000 |
commit | a09983ae35713f5a2bbb100981116d31ce99826e (patch) | |
tree | 2ee2af7bd104d57086db360a7e6d8c9d5d43667a /spec/lib/gitlab/kubernetes | |
parent | 18c5ab32b738c0b6ecb4d0df3994000482f34bd8 (diff) | |
download | gitlab-ce-a09983ae35713f5a2bbb100981116d31ce99826e.tar.gz |
Add latest changes from gitlab-org/gitlab@13-2-stable-ee
Diffstat (limited to 'spec/lib/gitlab/kubernetes')
25 files changed, 93 insertions, 25 deletions
diff --git a/spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb b/spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb index e1106f7496a..02729d53da8 100644 --- a/spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb +++ b/spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::ClusterRoleBinding do +RSpec.describe Gitlab::Kubernetes::ClusterRoleBinding do let(:cluster_role_binding) { described_class.new(name, cluster_role_name, subjects) } let(:name) { 'cluster-role-binding-name' } let(:cluster_role_name) { 'cluster-admin' } diff --git a/spec/lib/gitlab/kubernetes/config_map_spec.rb b/spec/lib/gitlab/kubernetes/config_map_spec.rb index 0203772e069..2d0d205ffb1 100644 --- a/spec/lib/gitlab/kubernetes/config_map_spec.rb +++ b/spec/lib/gitlab/kubernetes/config_map_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::ConfigMap do +RSpec.describe Gitlab::Kubernetes::ConfigMap do let(:kubeclient) { double('kubernetes client') } let(:application) { create(:clusters_applications_prometheus) } let(:config_map) { described_class.new(application.name, application.files) } diff --git a/spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb b/spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb index f701643860a..9c3e41dfbff 100644 --- a/spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb +++ b/spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::ConfigMaps::AwsNodeAuth do +RSpec.describe Gitlab::Kubernetes::ConfigMaps::AwsNodeAuth do describe '#generate' do let(:role) { 'arn:aws:iam::123456789012:role/node-instance-role' } diff --git a/spec/lib/gitlab/kubernetes/default_namespace_spec.rb b/spec/lib/gitlab/kubernetes/default_namespace_spec.rb index 1fda547f35c..976fe4a0a87 100644 --- a/spec/lib/gitlab/kubernetes/default_namespace_spec.rb +++ b/spec/lib/gitlab/kubernetes/default_namespace_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::DefaultNamespace do +RSpec.describe Gitlab::Kubernetes::DefaultNamespace do let(:generator) { described_class.new(cluster, project: environment.project) } describe '#from_environment_name' do diff --git a/spec/lib/gitlab/kubernetes/generic_secret_spec.rb b/spec/lib/gitlab/kubernetes/generic_secret_spec.rb index fe1d4cc11e6..8b56d76410e 100644 --- a/spec/lib/gitlab/kubernetes/generic_secret_spec.rb +++ b/spec/lib/gitlab/kubernetes/generic_secret_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::GenericSecret do +RSpec.describe Gitlab::Kubernetes::GenericSecret do let(:secret) { described_class.new(name, data, namespace) } let(:name) { 'example-name' } let(:data) { 'example-data' } diff --git a/spec/lib/gitlab/kubernetes/helm/api_spec.rb b/spec/lib/gitlab/kubernetes/helm/api_spec.rb index 0e4179d5887..dabbab27b13 100644 --- a/spec/lib/gitlab/kubernetes/helm/api_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/api_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::API do +RSpec.describe Gitlab::Kubernetes::Helm::API do let(:client) { double('kubernetes client') } let(:helm) { described_class.new(client) } let(:gitlab_namespace) { Gitlab::Kubernetes::Helm::NAMESPACE } diff --git a/spec/lib/gitlab/kubernetes/helm/base_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/base_command_spec.rb index f9bcb8abdb1..57fafaebf98 100644 --- a/spec/lib/gitlab/kubernetes/helm/base_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/base_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::BaseCommand do +RSpec.describe Gitlab::Kubernetes::Helm::BaseCommand do subject(:base_command) do test_class.new(rbac) end diff --git a/spec/lib/gitlab/kubernetes/helm/certificate_spec.rb b/spec/lib/gitlab/kubernetes/helm/certificate_spec.rb index 04649353976..b446c5e1149 100644 --- a/spec/lib/gitlab/kubernetes/helm/certificate_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/certificate_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -describe Gitlab::Kubernetes::Helm::Certificate do +RSpec.describe Gitlab::Kubernetes::Helm::Certificate do describe '.generate_root' do subject { described_class.generate_root } diff --git a/spec/lib/gitlab/kubernetes/helm/delete_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/delete_command_spec.rb index 2bf8b294821..7b182478cc3 100644 --- a/spec/lib/gitlab/kubernetes/helm/delete_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/delete_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::DeleteCommand do +RSpec.describe Gitlab::Kubernetes::Helm::DeleteCommand do subject(:delete_command) { described_class.new(name: app_name, rbac: rbac, files: files, local_tiller_enabled: local_tiller_enabled) } let(:app_name) { 'app-name' } diff --git a/spec/lib/gitlab/kubernetes/helm/init_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/init_command_spec.rb index 61b8eb30b42..c982a417682 100644 --- a/spec/lib/gitlab/kubernetes/helm/init_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/init_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::InitCommand do +RSpec.describe Gitlab::Kubernetes::Helm::InitCommand do subject(:init_command) { described_class.new(name: application.name, files: files, rbac: rbac, local_tiller_enabled: false) } let(:application) { create(:clusters_applications_helm) } diff --git a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb index 6fc91300f5b..aad350256ec 100644 --- a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::InstallCommand do +RSpec.describe Gitlab::Kubernetes::Helm::InstallCommand do subject(:install_command) do described_class.new( name: 'app-name', diff --git a/spec/lib/gitlab/kubernetes/helm/parsers/list_v2_spec.rb b/spec/lib/gitlab/kubernetes/helm/parsers/list_v2_spec.rb index 0ad5dc189c0..435c296d5f1 100644 --- a/spec/lib/gitlab/kubernetes/helm/parsers/list_v2_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/parsers/list_v2_spec.rb @@ -2,7 +2,7 @@ require 'fast_spec_helper' -describe Gitlab::Kubernetes::Helm::Parsers::ListV2 do +RSpec.describe Gitlab::Kubernetes::Helm::Parsers::ListV2 do let(:valid_file_contents) do <<~EOF { diff --git a/spec/lib/gitlab/kubernetes/helm/patch_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/patch_command_spec.rb index 8d965a25f84..ea2ade18e37 100644 --- a/spec/lib/gitlab/kubernetes/helm/patch_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/patch_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::PatchCommand do +RSpec.describe Gitlab::Kubernetes::Helm::PatchCommand do let(:files) { { 'ca.pem': 'some file content' } } let(:repository) { 'https://repository.example.com' } let(:rbac) { false } diff --git a/spec/lib/gitlab/kubernetes/helm/pod_spec.rb b/spec/lib/gitlab/kubernetes/helm/pod_spec.rb index ea32ac96213..54e3289dd25 100644 --- a/spec/lib/gitlab/kubernetes/helm/pod_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/pod_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::Pod do +RSpec.describe Gitlab::Kubernetes::Helm::Pod do describe '#generate' do let(:app) { create(:clusters_applications_prometheus) } let(:command) { app.install_command } @@ -32,7 +32,7 @@ describe Gitlab::Kubernetes::Helm::Pod do it 'generates the appropriate specifications for the container' do container = subject.generate.spec.containers.first expect(container.name).to eq('helm') - expect(container.image).to eq('registry.gitlab.com/gitlab-org/cluster-integration/helm-install-image/releases/2.16.6-kube-1.13.12') + expect(container.image).to eq('registry.gitlab.com/gitlab-org/cluster-integration/helm-install-image/releases/2.16.9-kube-1.13.12') expect(container.env.count).to eq(3) expect(container.env.map(&:name)).to match_array([:HELM_VERSION, :TILLER_NAMESPACE, :COMMAND_SCRIPT]) expect(container.command).to match_array(["/bin/sh"]) diff --git a/spec/lib/gitlab/kubernetes/helm/reset_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/reset_command_spec.rb index 3773c428713..8d386d41ad5 100644 --- a/spec/lib/gitlab/kubernetes/helm/reset_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/reset_command_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Helm::ResetCommand do +RSpec.describe Gitlab::Kubernetes::Helm::ResetCommand do subject(:reset_command) { described_class.new(name: name, rbac: rbac, files: files, local_tiller_enabled: false) } let(:rbac) { true } diff --git a/spec/lib/gitlab/kubernetes/kube_client_spec.rb b/spec/lib/gitlab/kubernetes/kube_client_spec.rb index 32597aa4f5a..a15be42f393 100644 --- a/spec/lib/gitlab/kubernetes/kube_client_spec.rb +++ b/spec/lib/gitlab/kubernetes/kube_client_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::KubeClient do +RSpec.describe Gitlab::Kubernetes::KubeClient do include StubRequests include KubernetesHelpers diff --git a/spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb b/spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb index b65d7b9fdc6..e80bb3dfb07 100644 --- a/spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb +++ b/spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb @@ -2,7 +2,7 @@ require 'fast_spec_helper' -describe Gitlab::Kubernetes::KubectlCmd do +RSpec.describe Gitlab::Kubernetes::KubectlCmd do describe '.delete' do it 'constructs string properly' do args = %w(resource_type type --flag-1 --flag-2) diff --git a/spec/lib/gitlab/kubernetes/namespace_spec.rb b/spec/lib/gitlab/kubernetes/namespace_spec.rb index 467b10e21b1..5fe4e008469 100644 --- a/spec/lib/gitlab/kubernetes/namespace_spec.rb +++ b/spec/lib/gitlab/kubernetes/namespace_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Namespace do +RSpec.describe Gitlab::Kubernetes::Namespace do let(:name) { 'a_namespace' } let(:client) { double('kubernetes client') } let(:labels) { nil } diff --git a/spec/lib/gitlab/kubernetes/network_policy_spec.rb b/spec/lib/gitlab/kubernetes/network_policy_spec.rb index 5a920d78436..a8ca15f998b 100644 --- a/spec/lib/gitlab/kubernetes/network_policy_spec.rb +++ b/spec/lib/gitlab/kubernetes/network_policy_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::NetworkPolicy do +RSpec.describe Gitlab::Kubernetes::NetworkPolicy do let(:policy) do described_class.new( name: name, diff --git a/spec/lib/gitlab/kubernetes/node_spec.rb b/spec/lib/gitlab/kubernetes/node_spec.rb new file mode 100644 index 00000000000..732bf29bc44 --- /dev/null +++ b/spec/lib/gitlab/kubernetes/node_spec.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Kubernetes::Node do + include KubernetesHelpers + + describe '#all' do + let(:cluster) { create(:cluster, :provided_by_user, :group) } + let(:expected_nodes) { [] } + + before do + stub_kubeclient_nodes_and_nodes_metrics(cluster.platform.api_url) + end + + subject { described_class.new(cluster).all } + + context 'when connection to the cluster is successful' do + let(:expected_nodes) { [kube_node.merge(kube_node_metrics)] } + + it { is_expected.to eq(expected_nodes) } + end + + context 'when cluster cannot be reached' do + before do + allow(cluster.kubeclient.core_client).to receive(:discover) + .and_raise(SocketError) + end + + it { is_expected.to eq(expected_nodes) } + end + + context 'when cluster cannot be authenticated to' do + before do + allow(cluster.kubeclient.core_client).to receive(:discover) + .and_raise(OpenSSL::X509::CertificateError.new('Certificate error')) + end + + it { is_expected.to eq(expected_nodes) } + end + + context 'when Kubeclient::HttpError is raised' do + before do + allow(cluster.kubeclient.core_client).to receive(:discover) + .and_raise(Kubeclient::HttpError.new(403, 'Forbidden', nil)) + end + + it { is_expected.to eq(expected_nodes) } + end + + context 'when an uncategorised error is raised' do + before do + allow(cluster.kubeclient.core_client).to receive(:discover) + .and_raise(StandardError) + end + + it { is_expected.to eq(expected_nodes) } + + it 'notifies Sentry' do + expect(Gitlab::ErrorTracking).to receive(:track_exception) + .with(instance_of(StandardError), hash_including(cluster_id: cluster.id)) + .once + + subject + end + end + end +end diff --git a/spec/lib/gitlab/kubernetes/role_binding_spec.rb b/spec/lib/gitlab/kubernetes/role_binding_spec.rb index 4c200eb545f..3003fe25301 100644 --- a/spec/lib/gitlab/kubernetes/role_binding_spec.rb +++ b/spec/lib/gitlab/kubernetes/role_binding_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::RoleBinding, '#generate' do +RSpec.describe Gitlab::Kubernetes::RoleBinding, '#generate' do let(:role_name) { 'edit' } let(:role_kind) { 'ClusterRole' } let(:namespace) { 'my-namespace' } diff --git a/spec/lib/gitlab/kubernetes/role_spec.rb b/spec/lib/gitlab/kubernetes/role_spec.rb index 3a5cd3b6704..acb9b5d4e8e 100644 --- a/spec/lib/gitlab/kubernetes/role_spec.rb +++ b/spec/lib/gitlab/kubernetes/role_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::Role do +RSpec.describe Gitlab::Kubernetes::Role do let(:role) { described_class.new(name: name, namespace: namespace, rules: rules) } let(:name) { 'example-name' } let(:namespace) { 'example-namespace' } diff --git a/spec/lib/gitlab/kubernetes/service_account_spec.rb b/spec/lib/gitlab/kubernetes/service_account_spec.rb index 0d525966d18..998d1a6d954 100644 --- a/spec/lib/gitlab/kubernetes/service_account_spec.rb +++ b/spec/lib/gitlab/kubernetes/service_account_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::ServiceAccount do +RSpec.describe Gitlab::Kubernetes::ServiceAccount do let(:name) { 'a_service_account' } let(:namespace_name) { 'a_namespace' } let(:service_account) { described_class.new(name, namespace_name) } diff --git a/spec/lib/gitlab/kubernetes/service_account_token_spec.rb b/spec/lib/gitlab/kubernetes/service_account_token_spec.rb index 0d334bed45f..18423fdb2a3 100644 --- a/spec/lib/gitlab/kubernetes/service_account_token_spec.rb +++ b/spec/lib/gitlab/kubernetes/service_account_token_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::ServiceAccountToken do +RSpec.describe Gitlab::Kubernetes::ServiceAccountToken do let(:name) { 'token-name' } let(:service_account_name) { 'a_service_account' } let(:namespace_name) { 'a_namespace' } diff --git a/spec/lib/gitlab/kubernetes/tls_secret_spec.rb b/spec/lib/gitlab/kubernetes/tls_secret_spec.rb index 438a0dc79fc..b40ed3c88c9 100644 --- a/spec/lib/gitlab/kubernetes/tls_secret_spec.rb +++ b/spec/lib/gitlab/kubernetes/tls_secret_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::Kubernetes::TlsSecret do +RSpec.describe Gitlab::Kubernetes::TlsSecret do let(:secret) { described_class.new(name, cert, key, namespace) } let(:name) { 'example-name' } let(:cert) { 'example-cert' } |