Prechádzať zdrojové kódy

feat: 固定节点部署

wanghongkai 5 rokov pred
rodič
commit
c35ea051c6

+ 3 - 0
src/main/java/cn/seecoder/paas/service/facade/k8s/model/Deployment.java

@@ -38,6 +38,7 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
 
 
     private List<V1Volume> volumes = new ArrayList<>();
     private List<V1Volume> volumes = new ArrayList<>();
 
 
+    private Map<String, String> nodeSelectors = new HashMap<>();
     @Range(min = 1, max = 3)
     @Range(min = 1, max = 3)
     private int replicas;
     private int replicas;
 
 
@@ -64,6 +65,7 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
         this.timeout = v1Deployment.getSpec().getProgressDeadlineSeconds();
         this.timeout = v1Deployment.getSpec().getProgressDeadlineSeconds();
         this.revisionHistoryLimit = v1Deployment.getSpec().getRevisionHistoryLimit();
         this.revisionHistoryLimit = v1Deployment.getSpec().getRevisionHistoryLimit();
         this.volumes =  v1Deployment.getSpec().getTemplate().getSpec().getVolumes();
         this.volumes =  v1Deployment.getSpec().getTemplate().getSpec().getVolumes();
+        this.nodeSelectors = v1Deployment.getSpec().getTemplate().getSpec().getNodeSelector();
         this.status = v1Deployment.getStatus();
         this.status = v1Deployment.getStatus();
     }
     }
 
 
@@ -86,6 +88,7 @@ public class Deployment extends K8sAbstractObject<V1Deployment> {
                 .addAllToContainers(containers == null ? null : containers.stream().map(Container::toK8sObject).collect(Collectors.toList()))
                 .addAllToContainers(containers == null ? null : containers.stream().map(Container::toK8sObject).collect(Collectors.toList()))
                 .withImagePullSecrets(references)
                 .withImagePullSecrets(references)
                 .withVolumes(volumes)
                 .withVolumes(volumes)
+                .withNodeSelector(nodeSelectors)
                 .build();
                 .build();
         V1PodTemplateSpec v1PodTemplateSpec = new V1PodTemplateSpecBuilder()
         V1PodTemplateSpec v1PodTemplateSpec = new V1PodTemplateSpecBuilder()
                 .withMetadata(v1ObjectMeta)
                 .withMetadata(v1ObjectMeta)

+ 1 - 0
src/main/java/cn/seecoder/paas/service/impl/EnvironmentServiceImpl.java

@@ -562,6 +562,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
                     .timeout(Deployment.DEFAULT_PROGRESS_DEADLINE_SECONDS)
                     .timeout(Deployment.DEFAULT_PROGRESS_DEADLINE_SECONDS)
                     .revisionHistoryLimit(Deployment.DEFAULT_REVISION_HISTORY_LIMIT)
                     .revisionHistoryLimit(Deployment.DEFAULT_REVISION_HISTORY_LIMIT)
                     .replicas(configContent.getReplicas() == null ? 1 : configContent.getReplicas())
                     .replicas(configContent.getReplicas() == null ? 1 : configContent.getReplicas())
+                    .nodeSelectors(configContent.getNodeIp() == null ? null : Collections.singletonMap("paas.seecoder.cn/ip", configContent.getNodeIp()))
                     .volumes(volumes)
                     .volumes(volumes)
                     .containers(Collections.singletonList(
                     .containers(Collections.singletonList(
                             Container.builder()
                             Container.builder()

+ 4 - 1
src/main/java/cn/seecoder/paas/service/model/vo/ConfigVO.java

@@ -27,7 +27,7 @@ public class ConfigVO {
     private static final ConfigContent EMPTY_CONFIG_CONTENT;
     private static final ConfigContent EMPTY_CONFIG_CONTENT;
 
 
     static {
     static {
-        EMPTY_CONFIG_CONTENT = new ConfigContent(null, null, Collections.emptyMap(), null, null, Collections.emptyMap(), Collections.emptyMap(), null, null, Collections.emptyMap(), Collections.emptyMap());
+        EMPTY_CONFIG_CONTENT = new ConfigContent(null, null, Collections.emptyMap(), null, null, Collections.emptyMap(), Collections.emptyMap(), null, null, Collections.emptyMap(), Collections.emptyMap(), null);
     }
     }
 
 
     public static ConfigVO getEmptyConfigVO(ConfigBelongsToType configBelongs, Integer entityId) {
     public static ConfigVO getEmptyConfigVO(ConfigBelongsToType configBelongs, Integer entityId) {
@@ -105,6 +105,9 @@ public class ConfigVO {
         @JsonProperty("pvcPaths")
         @JsonProperty("pvcPaths")
         private Map<String, String> pvcPaths;
         private Map<String, String> pvcPaths;
 
 
+        @JsonProperty("nodeIp")
+        private String nodeIp;
+
         @JsonIgnore()
         @JsonIgnore()
         public boolean isValid() {
         public boolean isValid() {
             return servicePort != null && hostPrefix != null;
             return servicePort != null && hostPrefix != null;