private V1Pod Pod(string name)
        {
            V1Pod pod = new V1Pod();

            pod.Kind       = "Pod";
            pod.ApiVersion = "v1";
            pod.Metadata   = new V1ObjectMeta()
            {
                Name = name, Labels = new Dictionary <string, string>()
            };
            pod.Metadata.Labels.Add("run", name);

            pod.Spec = new V1PodSpec()
            {
                Containers = new List <V1Container>(),
            };
            var env1 = new V1EnvVar()
            {
                Name = "EULA", Value = "TRUE"
            };

            var port1 = new V1ContainerPort(25565);
            var port2 = new V1ContainerPort(25575);

            V1VolumeMount v1mount = new V1VolumeMount("/data", "volume");

            V1Container container = new V1Container()
            {
                Name         = name, Image = "openhack/minecraft-server:2.0",
                Env          = new List <V1EnvVar>(),
                Ports        = new List <V1ContainerPort>(),
                VolumeMounts = new List <V1VolumeMount>()
            };

            container.Ports.Add(port1);
            container.Ports.Add(port2);

            container.VolumeMounts.Add(v1mount);

            container.Env.Add(env1);
            pod.Spec.Containers.Add(container);

            V1Volume v1Volume = new V1Volume()
            {
                Name = "volume", PersistentVolumeClaim = new V1PersistentVolumeClaimVolumeSource()
                {
                    ClaimName = "volume-minecraft"
                }
            };

            pod.Spec.Volumes = new List <V1Volume>();
            pod.Spec.Volumes.Add(v1Volume);

            return(pod);
        }
Пример #2
0
 public KubernetesModuleVolumeSpec(V1Volume volume, IReadOnlyList <V1VolumeMount> volumeMounts)
 {
     this.Volume       = Option.Maybe(volume);
     this.VolumeMounts = Option.Maybe(volumeMounts);
 }