diff --git a/clouddriver-kubernetes/clouddriver-kubernetes.gradle b/clouddriver-kubernetes/clouddriver-kubernetes.gradle index eb628c0c9fe..93df28fd6e5 100644 --- a/clouddriver-kubernetes/clouddriver-kubernetes.gradle +++ b/clouddriver-kubernetes/clouddriver-kubernetes.gradle @@ -76,6 +76,7 @@ dependencies { implementation "io.spinnaker.kork:kork-secrets" implementation "io.spinnaker.kork:kork-security" implementation "io.kubernetes:client-java" + implementation "io.kubernetes:client-java-api-fluent:13.0.2" implementation "org.apache.commons:commons-lang3" implementation "org.springframework.boot:spring-boot-actuator" implementation "org.springframework.boot:spring-boot-starter-web" diff --git a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/model/KubernetesJobStatus.java b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/model/KubernetesJobStatus.java index b9b94195fa6..c4adea00513 100644 --- a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/model/KubernetesJobStatus.java +++ b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/model/KubernetesJobStatus.java @@ -68,7 +68,7 @@ public KubernetesJobStatus(V1Job job, String account) { this.account = account; this.name = job.getMetadata().getName(); this.location = job.getMetadata().getNamespace(); - this.createdTime = job.getMetadata().getCreationTimestamp().getMillis(); + this.createdTime = job.getMetadata().getCreationTimestamp().toInstant().toEpochMilli(); } @Override diff --git a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/provider/view/KubernetesJobProvider.java b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/provider/view/KubernetesJobProvider.java index ed3f44d35dd..eb57bbcfaa6 100644 --- a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/provider/view/KubernetesJobProvider.java +++ b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/provider/view/KubernetesJobProvider.java @@ -30,12 +30,12 @@ import com.netflix.spinnaker.clouddriver.security.AccountCredentialsProvider; import io.kubernetes.client.openapi.models.V1Job; import io.kubernetes.client.openapi.models.V1Pod; +import java.time.OffsetDateTime; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Nullable; import lombok.Getter; import org.apache.commons.lang3.NotImplementedException; -import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -82,12 +82,12 @@ public KubernetesJobStatus collectJob(String account, String location, String id .map(m -> KubernetesCacheDataConverter.getResource(m, V1Pod.class)) .sorted( (p1, p2) -> { - DateTime dtDefault = new DateTime(0); - DateTime time1 = + OffsetDateTime dtDefault = OffsetDateTime.now(); + OffsetDateTime time1 = p1.getStatus() != null ? Optional.ofNullable(p1.getStatus().getStartTime()).orElse(dtDefault) : dtDefault; - DateTime time2 = + OffsetDateTime time2 = p2.getStatus() != null ? Optional.ofNullable(p2.getStatus().getStartTime()).orElse(dtDefault) : dtDefault; diff --git a/clouddriver-web/clouddriver-web.gradle b/clouddriver-web/clouddriver-web.gradle index b89d378b544..ff8cb3a4ec6 100644 --- a/clouddriver-web/clouddriver-web.gradle +++ b/clouddriver-web/clouddriver-web.gradle @@ -48,7 +48,7 @@ dependencies { testImplementation "io.spinnaker.kork:kork-test" testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.spockframework:spock-core" - testImplementation "io.kubernetes:client-java" + testImplementation "io.kubernetes:client-java-api-fluent:13.0.2" testImplementation "org.codehaus.groovy:groovy-json" // Add each included cloud provider project as a runtime dependency diff --git a/clouddriver-web/src/test/java/com/netflix/spinnaker/clouddriver/config/ObjectMapperTest.java b/clouddriver-web/src/test/java/com/netflix/spinnaker/clouddriver/config/ObjectMapperTest.java index 8cf46577a64..b66d0c63a2a 100644 --- a/clouddriver-web/src/test/java/com/netflix/spinnaker/clouddriver/config/ObjectMapperTest.java +++ b/clouddriver-web/src/test/java/com/netflix/spinnaker/clouddriver/config/ObjectMapperTest.java @@ -26,8 +26,8 @@ import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.openapi.models.V1PodCondition; import io.kubernetes.client.openapi.models.V1PodStatus; +import java.time.OffsetDateTime; import java.util.List; -import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; @@ -53,14 +53,14 @@ public class ObjectMapperTest { public void testJodaTimeSerializationForKubernetesJob() { V1Job job = new V1Job(); V1ObjectMeta metadata = new V1ObjectMeta(); - metadata.setCreationTimestamp(DateTime.now()); + metadata.setCreationTimestamp(OffsetDateTime.now()); job.setMetadata(metadata); KubernetesJobStatus kubernetesJobStatus = new KubernetesJobStatus(job, "kubernetesAccount"); V1Pod pod = new V1Pod(); V1PodStatus status = new V1PodStatus(); V1PodCondition condition = new V1PodCondition(); - condition.setLastTransitionTime(DateTime.now()); + condition.setLastTransitionTime(OffsetDateTime.now()); status.setConditions(List.of(condition)); pod.setStatus(status); V1ObjectMeta metadataPod = new V1ObjectMeta();