Skip to content

Commit 0bb88cc

Browse files
committed
1 parent 6138232 commit 0bb88cc

File tree

510 files changed

+403200
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

510 files changed

+403200
-4
lines changed

ExampleTDTB.sln

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27130.2010
4+
VisualStudioVersion = 15.0.27130.2020
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web", "src\Web\Web.csproj", "{B27DD2E5-C587-444A-A535-CA8AC3605AE2}"
77
EndProject
@@ -13,7 +13,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BD7B76F7
1313
EndProject
1414
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{261F76A5-DF6B-4B25-9A88-8BDA0D797C34}"
1515
EndProject
16-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DockerHubChecker", "src\DockerHubChecker\DockerHubChecker.csproj", "{E2D0FEB8-70BF-409B-85C5-4A58420F7A19}"
16+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DockerHubChecker", "src\DockerHubChecker\DockerHubChecker.csproj", "{E2D0FEB8-70BF-409B-85C5-4A58420F7A19}"
17+
EndProject
18+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient", "src\k8sApi\KubernetesClient.csproj", "{BA08576C-3F8F-44E8-B335-C71CD353D211}"
1719
EndProject
1820
Global
1921
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -29,6 +31,10 @@ Global
2931
{E2D0FEB8-70BF-409B-85C5-4A58420F7A19}.Debug|Any CPU.Build.0 = Debug|Any CPU
3032
{E2D0FEB8-70BF-409B-85C5-4A58420F7A19}.Release|Any CPU.ActiveCfg = Release|Any CPU
3133
{E2D0FEB8-70BF-409B-85C5-4A58420F7A19}.Release|Any CPU.Build.0 = Release|Any CPU
34+
{BA08576C-3F8F-44E8-B335-C71CD353D211}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35+
{BA08576C-3F8F-44E8-B335-C71CD353D211}.Debug|Any CPU.Build.0 = Debug|Any CPU
36+
{BA08576C-3F8F-44E8-B335-C71CD353D211}.Release|Any CPU.ActiveCfg = Release|Any CPU
37+
{BA08576C-3F8F-44E8-B335-C71CD353D211}.Release|Any CPU.Build.0 = Release|Any CPU
3238
EndGlobalSection
3339
GlobalSection(SolutionProperties) = preSolution
3440
HideSolutionNode = FALSE
@@ -38,6 +44,7 @@ Global
3844
{92641CE6-1981-4B33-B778-7A23A4E68FCA} = {BD6146CB-DDB4-42C1-934A-102E5D5DC104}
3945
{261F76A5-DF6B-4B25-9A88-8BDA0D797C34} = {BD6146CB-DDB4-42C1-934A-102E5D5DC104}
4046
{E2D0FEB8-70BF-409B-85C5-4A58420F7A19} = {261F76A5-DF6B-4B25-9A88-8BDA0D797C34}
47+
{BA08576C-3F8F-44E8-B335-C71CD353D211} = {261F76A5-DF6B-4B25-9A88-8BDA0D797C34}
4148
EndGlobalSection
4249
GlobalSection(ExtensibilityGlobals) = postSolution
4350
SolutionGuid = {60475545-BB2D-4640-BE30-0A4289C1C368}

src/DockerHubChecker/DockerHubChecker.csproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="KubernetesClient" Version="0.3.0-beta" />
10-
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
9+
<PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="2.0.0" />
1110
<PackageReference Include="RestSharp" Version="106.2.1" />
1211
</ItemGroup>
1312

13+
<ItemGroup>
14+
<ProjectReference Include="..\k8sApi\KubernetesClient.csproj" />
15+
</ItemGroup>
16+
1417
</Project>

src/DockerHubChecker/Program.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.IO;
34
using System.Linq;
45
using System.Runtime.InteropServices;
56
using System.Text.RegularExpressions;
67
using System.Threading;
78
using k8s;
9+
using k8s.Models;
10+
using Microsoft.AspNetCore.JsonPatch;
811

12+
//using Marvin.JsonPatch;
13+
14+
//Install-Package KubernetesClient -Version 0.3.0-beta
915

1016
namespace DockerHubChecker
1117
{
@@ -18,14 +24,21 @@ private static string DetectNamespace()
1824
{
1925

2026
var envHost = Environment.GetEnvironmentVariable(EnvName);
27+
if(string.IsNullOrWhiteSpace(envHost))
28+
throw new ArgumentNullException(nameof(envHost));
2129
return envHost;
2230
//return new Regex("kubernetes.(?<name>.*).svc.cluster.local").Match(envHost).Groups["name"].Value;
2331
}
2432

2533

2634
private static void CheckNamespace(string k8Namespace)
2735
{
36+
#if DEBUG
37+
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
38+
#else
2839
var config = KubernetesClientConfiguration.InClusterConfig();
40+
#endif
41+
2942
IKubernetes client = new Kubernetes(config);
3043
Console.WriteLine("Starting Request to Kubernetes!");
3144

@@ -55,6 +68,22 @@ private static void CheckNamespace(string k8Namespace)
5568
Console.WriteLine($"\t\t\tFound!");
5669
var images = item.Spec.Template.Spec.Containers.Select(x => x.Image);
5770
Console.WriteLine($"\t\t\tImages = {string.Join("; ", images)}");
71+
72+
//client.PatchNamespacedDeployment(new
73+
//{
74+
// op = "replace",
75+
// path = "/spec/template/metadata/labels/" + ciLabel.Key,
76+
// value = DateTime.UtcNow.ToString("O")
77+
//}, item.Metadata.Name, "default"); //fail!
78+
79+
var newlables = new Dictionary<string, string>(item.Spec.Template.Metadata.Labels)
80+
{
81+
//todo: get time from docker
82+
[ciLabel.Key] = DateTime.UtcNow.ToString("O").Replace(".","").Replace(":","").Replace("-","") //some symbols is not allowed
83+
};
84+
var patch = new JsonPatchDocument<Appsv1beta1Deployment>();
85+
patch.Replace(e => e.Spec.Template.Metadata.Labels, newlables);
86+
client.PatchNamespacedDeployment(patch, item.Metadata.Name, k8Namespace);
5887
}
5988

6089
foreach (var container in item.Spec.Template.Spec.Containers)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Any comments, input: @KevinDockx
2+
// Any issues, requests: https://github.com/KevinDockx/JsonPatch
3+
//
4+
// Enjoy :-)
5+
6+
using Marvin.JsonPatch.Operations;
7+
8+
namespace Marvin.JsonPatch.Adapters
9+
{
10+
public interface IObjectAdapter
11+
{
12+
void Add(Operation operation, object objectToApplyTo);
13+
void Copy(Operation operation, object objectToApplyTo);
14+
void Move(Operation operation, object objectToApplyTo);
15+
void Remove(Operation operation, object objectToApplyTo);
16+
void Replace(Operation operation, object objectToApplyTo);
17+
}
18+
19+
20+
}

0 commit comments

Comments
 (0)