Project

General

Profile

action #110722 ยป 0001-containers-remove-double-init-of-clients.patch

asmorodskyi, 2022-05-06 15:09

View differences:

lib/publiccloud/ecr.pm
=cut
sub delete_image {
my ($self, $tag) = @_;
record_info('INFO', "Deleting image $tag");
assert_script_run(
"aws ecr batch-delete-image --repository-name " . $self->container_registry . " --image-ids imageTag=" . $tag);
return;
lib/publiccloud/k8sbasetest.pm
Prepare the provider and install kubectl
=cut
sub init {
my ($self) = @_;
my ($self, $args) = @_;
my $service = $self->get_k8s_service_name();
$self->provider_factory(service => $service);
# we need to copy this to $self so it will be available for post_fail_hook / cleanup calls
$self->{provider} = $args->{provider};
$self->{image_tag} = $args->{image_tag};
$self->select_serial_terminal;
$self->install_kubectl();
}
......
Install kubectl from the k8s page
=cut
sub install_kubectl {
my ($self) = @_;
my $version = get_var('PUBLICCLOUD_KUBECTL_VERSION', 'v1.22.2');
$self->select_serial_terminal();
assert_script_run("curl -LO https://dl.k8s.io/release/$version/bin/linux/amd64/kubectl");
assert_script_run("chmod a+x kubectl");
assert_script_run("rm /usr/bin/kubectl");
......
}
=head2 get_k8s_service_name
Returns the name for the kubernetes service
=cut
sub get_k8s_service_name {
my ($self) = @_;
my $provider = get_required_var('PUBLIC_CLOUD_PROVIDER');
if ($provider eq 'EC2') {
return "EKS";
}
elsif ($provider eq 'GCE') {
return "GKE";
}
elsif ($provider eq 'AZURE') {
return "AKS";
}
else {
die('Unknown PUBLIC_CLOUD_PROVIDER given');
}
}
1;
tests/containers/push_container_image_to_acr.pm
$self->select_serial_terminal;
my $provider = $self->provider_factory(service => 'ACR');
my $provider = $self->{provider} = $args->{provider} = $self->provider_factory(service => 'ACR');
my $image = get_image_uri();
my $tag = $provider->get_default_tag();
my $tag = $args->{image_tag} = $provider->get_default_tag();
record_info('Pull', "Pulling $image");
assert_script_run("podman pull $image", 360);
......
my $image_build = script_output("podman image inspect $image --format='$image_build_format'");
record_info('Img version', $image_build);
my $image_name = $provider->push_container_image($image, $tag);
my $image_name = $args->{image_name} = $provider->push_container_image($image, $tag);
record_info('Registry',
"Image successfully uploaded to ACR:\n$image_name\n" . script_output("podman inspect $image_name"));
}
sub post_fail_hook {
my ($self) = @_;
record_info('INFO', "Deleting image $self->tag");
$self->{provider}->delete_image();
}
tests/containers/push_container_image_to_ecr.pm
$self->select_serial_terminal;
my $provider = $self->provider_factory(service => 'ECR');
$self->{provider} = $provider;
my $provider = $self->{provider} = $args->{provider} = $self->provider_factory(service => 'ECR');
my $image = get_image_uri();
my $tag = $provider->get_default_tag();
$self->{tag} = $tag;
my $tag = $self->{image_tag} = $args->{image_tag} = $provider->get_default_tag();
record_info('Pull', "Pulling $image");
assert_script_run("podman pull $image", 360);
......
my $image_build = script_output("podman image inspect $image --format='{{ index .Config.Labels \"org.opencontainers.image.version\"}}'");
record_info('Img version', $image_build);
my $image_name = $provider->push_container_image($image, $tag);
my $image_name = $args->{image_name} = $provider->push_container_image($image, $tag);
record_info('Registry', "Image successfully uploaded to ECR:\n$image_name\n" . script_output("podman inspect $image_name"));
}
sub post_fail_hook {
my ($self) = @_;
record_info('INFO', "Deleting image $self->tag");
$self->{provider}->delete_image($self->tag);
$self->{provider}->delete_image($self->{image_tag});
}
sub test_flags {
tests/containers/push_container_image_to_gcr.pm
$self->select_serial_terminal;
my $provider = $self->provider_factory(service => 'GCR');
my $provider = $self->{provider} = $args->{provider} = $self->provider_factory(service => 'GCR');
my $image = get_image_uri();
my $tag = $provider->get_default_tag();
my $tag = $args->{image_tag} = $provider->get_default_tag();
record_info('Pull', "Pulling $image");
assert_script_run("podman pull $image", 360);
......
my $image_build = script_output("podman image inspect $image --format='$image_build_format'");
record_info('Img version', $image_build);
my $image_name = $provider->push_container_image($image, $tag);
my $image_name = $args->{image_name} = $provider->push_container_image($image, $tag);
record_info('Registry',
"Image successfully uploaded to GCR:\n$image_name\n" . script_output("podman inspect $image_name"));
}
tests/containers/run_container_in_k8s.pm
use testapi;
sub run {
my ($self) = @_;
my ($self, $args) = @_;
$self->SUPER::init();
my $cmd = '"cat", "/etc/os-release"';
my $image_tag = $self->{provider}->get_default_tag();
$self->{image_tag} = $image_tag;
my $image = $self->{provider}->get_container_image_full_name($image_tag);
my $job_name = $image_tag =~ s/_/-/gr;
my $image = $args->{image_name};
my $job_name = $args->{image_tag} =~ s/_/-/gr;
$self->{job_name} = $job_name;
my $manifest = <<EOT;
    (1-1/1)