コード例 #1
0
        public async Task GetHistoryTest()
        {
            using (Stream chartStream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
            {
                var chart = ChartPackage.Open(chartStream);

                var client = new TillerClient(() => TestConfiguration.GetStream().GetAwaiter().GetResult());
                await Assert.ThrowsAsync <RpcException>(() => client.GetHistory(nameof(GetHistoryTest).ToLower(), 1));

                await client.InstallRelease(chart.Serialize(), string.Empty, nameof(GetHistoryTest).ToLower(), true, wait : true);

                await Task.Delay(100);

                var history = await client.GetHistory(nameof(GetHistoryTest).ToLower(), 1);

                Assert.Single(history);

                var response = await client.UninstallRelease(nameof(GetHistoryTest).ToLower(), purge : false);

                Assert.Empty(response.Info);
                Assert.NotNull(response.Release);

                response = await client.UninstallRelease(nameof(GetHistoryTest).ToLower(), purge : true);

                Assert.Empty(response.Info);
                Assert.NotNull(response.Release);
            }
        }
コード例 #2
0
 public static void OpenTest()
 {
     using (Stream stream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
     {
         var chart = ChartPackage.Open(stream);
         Assert.NotNull(chart);
     }
 }
コード例 #3
0
        public async Task InstallReleaseTest()
        {
            using (Stream chartStream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
            {
                var chart  = ChartPackage.Open(chartStream);
                var client = new TillerClient(() => TestConfiguration.GetStream().GetAwaiter().GetResult());

                var result = await client.InstallRelease(chart.Serialize(), string.Empty, nameof(InstallReleaseTest).ToLower(), true).ConfigureAwait(false);

                Assert.NotNull(result);
                await client.UninstallRelease(nameof(InstallReleaseTest).ToLower(), purge : true);
            }
        }
コード例 #4
0
        public static void MetadataTest()
        {
            using (Stream stream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
            {
                var chart    = ChartPackage.Open(stream);
                var metadata = chart.Metadata;

                Assert.NotNull(metadata);
                Assert.Equal("v1", metadata.ApiVersion);
                Assert.Equal("A Helm chart for Kubernetes", metadata.Description);
                Assert.Equal("hello-world", metadata.Name);
                Assert.Equal("0.1.0", metadata.Version);
            }
        }
コード例 #5
0
        public async Task <IActionResult> Update(string name, IFormFile file)
        {
            var client = await GetClient();

            using (var stream = new MemoryStream())
            {
                await file.CopyToAsync(stream);

                var chart   = ChartPackage.Open(stream);
                var release = await client.UpdateRelease(chart.Serialize(), string.Empty, name);

                return(Ok(release.Manifest));
            }
        }
コード例 #6
0
        public async Task ListReleasesTest()
        {
            using (Stream chartStream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
            {
                var chart  = ChartPackage.Open(chartStream);
                var client = new TillerClient(() => TestConfiguration.GetStream().GetAwaiter().GetResult());

                var releases = await client.ListReleases(nameof(ListReleasesTest).ToLower(), limit : 0, @namespace : "default").ConfigureAwait(false);

                Assert.Empty(releases);

                var result = await client.InstallRelease(chart.Serialize(), string.Empty, nameof(ListReleasesTest).ToLower(), true).ConfigureAwait(false);

                releases = await client.ListReleases(nameof(ListReleasesTest).ToLower(), limit : 0, @namespace : "default").ConfigureAwait(false);

                var release = Assert.Single(releases);

                await client.UninstallRelease(nameof(ListReleasesTest).ToLower(), purge : true);
            }
        }
コード例 #7
0
        public void RoundtripTest()
        {
            using (Stream stream = File.OpenRead("charts/hello-world-0.1.0.tgz"))
                using (MemoryStream packageStream = new MemoryStream())
                {
                    var chart = ChartPackage.Open(stream);

                    var builder = new ChartPackageBuilder();
                    builder.Build(chart.Serialize(), packageStream);

                    packageStream.Position = 0;

                    using (GZipStream gzipStream = new GZipStream(packageStream, CompressionMode.Decompress, leaveOpen: true))
                        using (MemoryStream decompressedStream = new MemoryStream())
                        {
                            gzipStream.CopyTo(decompressedStream);
                            decompressedStream.Position = 0;

                            using (TarArchive archive = TarArchive.Open(decompressedStream, new ReaderOptions()
                            {
                                LeaveStreamOpen = true
                            }))
                            {
                                Assert.Equal(8, archive.Entries.Count);
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/.helmignore");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/Chart.yaml");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/values.yaml");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/templates/_helpers.tpl");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/templates/deployment.yaml");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/templates/ingress.yaml");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/templates/NOTES.txt");
                                Assert.Contains(archive.Entries, e => e.Key == "hello-world/templates/service.yaml");

                                foreach (var entry in archive.Entries)
                                {
                                    Assert.NotEqual(0, entry.Size);
                                }
                            }
                        }
                }
        }