Add alpine mirrors while operating on k8s cluster
This commit is contained in:
parent
87f1736a73
commit
ce5723c849
6 changed files with 61 additions and 74 deletions
5
changelogs/unreleased/helm-add-alpine-mirrors.yml
Normal file
5
changelogs/unreleased/helm-add-alpine-mirrors.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Increase cluster applications installer availability using alpine linux mirrors
|
||||
merge_request:
|
||||
author:
|
||||
type: performance
|
|
@ -15,6 +15,9 @@ module Gitlab
|
|||
def generate_script
|
||||
<<~HEREDOC
|
||||
set -eo pipefail
|
||||
ALPINE_VERSION=$(cat /etc/alpine-release | cut -d '.' -f 1,2)
|
||||
echo http://mirror.clarkson.edu/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories
|
||||
echo http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v#{Gitlab::Kubernetes::Helm::HELM_VERSION}-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
|
|
|
@ -4,22 +4,10 @@ describe Gitlab::Kubernetes::Helm::BaseCommand do
|
|||
let(:application) { create(:clusters_applications_helm) }
|
||||
let(:base_command) { described_class.new(application.name) }
|
||||
|
||||
describe '#generate_script' do
|
||||
let(:helm_version) { Gitlab::Kubernetes::Helm::HELM_VERSION }
|
||||
let(:command) do
|
||||
<<~HEREDOC
|
||||
set -eo pipefail
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v#{helm_version}-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
HEREDOC
|
||||
end
|
||||
subject { base_command }
|
||||
|
||||
subject { base_command.generate_script }
|
||||
|
||||
it 'should return a command that prepares the environment for helm-cli' do
|
||||
expect(subject).to eq(command)
|
||||
end
|
||||
it_behaves_like 'helm commands' do
|
||||
let(:commands) { '' }
|
||||
end
|
||||
|
||||
describe '#pod_resource' do
|
||||
|
|
|
@ -2,23 +2,9 @@ require 'spec_helper'
|
|||
|
||||
describe Gitlab::Kubernetes::Helm::InitCommand do
|
||||
let(:application) { create(:clusters_applications_helm) }
|
||||
let(:init_command) { described_class.new(application.name) }
|
||||
let(:commands) { 'helm init >/dev/null' }
|
||||
|
||||
describe '#generate_script' do
|
||||
let(:command) do
|
||||
<<~MSG.chomp
|
||||
set -eo pipefail
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.7.0-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
helm init >/dev/null
|
||||
MSG
|
||||
end
|
||||
subject { described_class.new(application.name) }
|
||||
|
||||
subject { init_command.generate_script }
|
||||
|
||||
it 'should return the appropriate command' do
|
||||
is_expected.to eq(command)
|
||||
end
|
||||
end
|
||||
it_behaves_like 'helm commands'
|
||||
end
|
||||
|
|
|
@ -12,50 +12,36 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
|
|||
)
|
||||
end
|
||||
|
||||
describe '#generate_script' do
|
||||
let(:command) do
|
||||
<<~MSG
|
||||
set -eo pipefail
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.7.0-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
helm init --client-only >/dev/null
|
||||
helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
|
||||
MSG
|
||||
subject { install_command }
|
||||
|
||||
it_behaves_like 'helm commands' do
|
||||
let(:commands) do
|
||||
<<~EOS
|
||||
helm init --client-only >/dev/null
|
||||
helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
|
||||
EOS
|
||||
end
|
||||
end
|
||||
|
||||
context 'with an application with a repository' do
|
||||
let(:ci_runner) { create(:ci_runner) }
|
||||
let(:application) { create(:clusters_applications_runner, runner: ci_runner) }
|
||||
let(:install_command) do
|
||||
described_class.new(
|
||||
application.name,
|
||||
chart: application.chart,
|
||||
values: application.values,
|
||||
repository: application.repository
|
||||
)
|
||||
end
|
||||
|
||||
subject { install_command.generate_script }
|
||||
|
||||
it 'should return appropriate command' do
|
||||
is_expected.to eq(command)
|
||||
end
|
||||
|
||||
context 'with an application with a repository' do
|
||||
let(:ci_runner) { create(:ci_runner) }
|
||||
let(:application) { create(:clusters_applications_runner, runner: ci_runner) }
|
||||
let(:install_command) do
|
||||
described_class.new(
|
||||
application.name,
|
||||
chart: application.chart,
|
||||
values: application.values,
|
||||
repository: application.repository
|
||||
)
|
||||
end
|
||||
|
||||
let(:command) do
|
||||
<<~MSG
|
||||
set -eo pipefail
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.7.0-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
helm init --client-only >/dev/null
|
||||
helm repo add #{application.name} #{application.repository}
|
||||
helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
|
||||
MSG
|
||||
end
|
||||
|
||||
it 'should return appropriate command' do
|
||||
is_expected.to eq(command)
|
||||
it_behaves_like 'helm commands' do
|
||||
let(:commands) do
|
||||
<<~EOS
|
||||
helm init --client-only >/dev/null
|
||||
helm repo add #{application.name} #{application.repository}
|
||||
helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
|
||||
EOS
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
19
spec/support/shared_examples/helm_generated_script.rb
Normal file
19
spec/support/shared_examples/helm_generated_script.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
shared_examples 'helm commands' do
|
||||
describe '#generate_script' do
|
||||
let(:helm_setup) do
|
||||
<<~EOS
|
||||
set -eo pipefail
|
||||
ALPINE_VERSION=$(cat /etc/alpine-release | cut -d '.' -f 1,2)
|
||||
echo http://mirror.clarkson.edu/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories
|
||||
echo http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories
|
||||
apk add -U ca-certificates openssl >/dev/null
|
||||
wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.7.0-linux-amd64.tar.gz | tar zxC /tmp >/dev/null
|
||||
mv /tmp/linux-amd64/helm /usr/bin/
|
||||
EOS
|
||||
end
|
||||
|
||||
it 'should return appropriate command' do
|
||||
expect(subject.generate_script).to eq(helm_setup + commands)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue