/// <summary> /// Maps a list of k8s.Models.V1DaemonSet to DaemonSet /// </summary> /// <param name="list">The list to be mapped</param> private static IList <DeployedResource> MapDaemonSets(IList <V1DaemonSet> list) { IList <DeployedResource> mappedList = new List <DeployedResource>(); if (list == null || list.Count == 0) { return(mappedList); } foreach (V1DaemonSet element in list) { IList <V1Container> containers = element.Spec?.Template?.Spec?.Containers; if (containers != null && containers.Count > 0) { DaemonSet daemonSet = new DaemonSet { Release = element.Metadata?.Name }; string[] splittedVersion = containers[0].Image?.Split(":"); if (splittedVersion != null && splittedVersion.Length > 1) { daemonSet.Version = splittedVersion[1]; } mappedList.Add(daemonSet); } } return(mappedList); }
internal DaemonSetInfo(DaemonSet obj) { _object = obj; }
private async Task ResolveOwnerReferenceAsync(HttpClient httpClient, PodInfo podInfo, OwnerReference ownerReference) { JsonReader reader; IMetaV1Object?obj = default; switch (ownerReference.Kind) { case "StatefulSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/statefulsets/{ownerReference.Name}"); var statefulSet = new StatefulSet(ref reader); obj = statefulSet; podInfo.StatefulSet = new StatefulSetInfo(statefulSet); break; case "DaemonSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/daemonsets/{ownerReference.Name}"); var daemonSet = new DaemonSet(ref reader); obj = daemonSet; podInfo.DaemonSet = new DaemonSetInfo(daemonSet); break; case "ReplicaSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/replicasets/{ownerReference.Name}"); var replicaSet = new ReplicaSet(ref reader); obj = replicaSet; podInfo.ReplicaSet = new ReplicaSetInfo(replicaSet); break; case "Deployment" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/deployments/{ownerReference.Name}"); var deployment = new Deployment(ref reader); obj = deployment; podInfo.Deployment = new DeploymentInfo(deployment); break; case "Job" when ownerReference.ApiVersion == "batch/v1": reader = await GetJsonAsync(httpClient, $"/apis/batch/v1/namespaces/{podInfo.Namespace}/jobs/{ownerReference.Name}"); var job = new Job(ref reader); obj = job; podInfo.Job = new JobInfo(job); break; case "CronJob" when ownerReference.ApiVersion == "batch/v1beta1": reader = await GetJsonAsync(httpClient, $"/apis/{ownerReference.ApiVersion}/namespaces/{podInfo.Namespace}/cronjobs/{ownerReference.Name}"); var cronJob = new CronJob(ref reader); obj = cronJob; podInfo.CronJob = new CronJobInfo(cronJob); break; } if (obj != null) { await ResolveOwnerReferencesAsync(httpClient, podInfo, obj.Metadata.OwnerReferences); } }