|
|
@@ -19,6 +19,8 @@ import {
|
|
|
EKSNodeGroup,
|
|
|
EKS,
|
|
|
Cluster,
|
|
|
+ LoadBalancer,
|
|
|
+ LoadBalancerType,
|
|
|
} from "@porter-dev/api-contracts";
|
|
|
import { ClusterType } from "shared/types";
|
|
|
import Button from "./porter/Button";
|
|
|
@@ -89,6 +91,7 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
const [maxInstances, setMaxInstances] = useState(10);
|
|
|
const [cidrRange, setCidrRange] = useState("10.78.0.0/16");
|
|
|
const [clusterVersion, setClusterVersion] = useState("v1.24.0");
|
|
|
+ const [loadBalancer, setLoadBalancer] = useState<LoadBalancer | undefined>();
|
|
|
const [isReadOnly, setIsReadOnly] = useState(false);
|
|
|
const [errorMessage, setErrorMessage] = useState<string>(undefined);
|
|
|
const [isClicked, setIsClicked] = useState(false);
|
|
|
@@ -131,7 +134,8 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
};
|
|
|
const createCluster = async () => {
|
|
|
setIsClicked(true);
|
|
|
- var data = new Contract({
|
|
|
+
|
|
|
+ let data = new Contract({
|
|
|
cluster: new Cluster({
|
|
|
projectId: currentProject.id,
|
|
|
kind: EnumKubernetesKind.EKS,
|
|
|
@@ -144,6 +148,7 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
clusterVersion: clusterVersion || "v1.24.0",
|
|
|
cidrRange: cidrRange || "10.78.0.0/16",
|
|
|
region: awsRegion,
|
|
|
+ loadBalancer: loadBalancer,
|
|
|
nodeGroups: [
|
|
|
new EKSNodeGroup({
|
|
|
instanceType: "t3.medium",
|
|
|
@@ -249,8 +254,8 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
useEffect(() => {
|
|
|
setIsReadOnly(
|
|
|
props.clusterId &&
|
|
|
- (currentCluster.status === "UPDATING" ||
|
|
|
- currentCluster.status === "UPDATING_UNAVAILABLE")
|
|
|
+ (currentCluster.status === "UPDATING" ||
|
|
|
+ currentCluster.status === "UPDATING_UNAVAILABLE")
|
|
|
);
|
|
|
setClusterName(
|
|
|
`${currentProject.name}-cluster-${Math.random()
|
|
|
@@ -262,7 +267,11 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
useEffect(() => {
|
|
|
const contract = props.selectedClusterVersion as any;
|
|
|
if (contract?.cluster) {
|
|
|
- contract.cluster.eksKind.nodeGroups.map((nodeGroup: any) => {
|
|
|
+ let eksValues: EKS = contract.cluster?.eksKind as EKS;
|
|
|
+ if (eksValues == null) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ eksValues.nodeGroups.map((nodeGroup: any) => {
|
|
|
if (nodeGroup.nodeGroupType === "NODE_GROUP_TYPE_APPLICATION") {
|
|
|
setMachineType(nodeGroup.instanceType);
|
|
|
setMinInstances(nodeGroup.minInstances);
|
|
|
@@ -270,10 +279,11 @@ const ProvisionerSettings: React.FC<Props> = (props) => {
|
|
|
}
|
|
|
});
|
|
|
setCreateStatus("");
|
|
|
- setClusterName(contract.cluster.eksKind.clusterName);
|
|
|
- setAwsRegion(contract.cluster.eksKind.region);
|
|
|
- setClusterVersion(contract.cluster.eksKind.clusterVersion);
|
|
|
- setCidrRange(contract.cluster.eksKind.cidrRange);
|
|
|
+ setClusterName(eksValues.clusterName);
|
|
|
+ setAwsRegion(eksValues.region);
|
|
|
+ setClusterVersion(eksValues.clusterVersion);
|
|
|
+ setCidrRange(eksValues.cidrRange);
|
|
|
+ setLoadBalancer(eksValues.loadBalancer)
|
|
|
}
|
|
|
}, [props.selectedClusterVersion]);
|
|
|
|
|
|
@@ -398,7 +408,7 @@ const ExpandHeader = styled.div<{ isExpanded: boolean }>`
|
|
|
margin-right: 7px;
|
|
|
margin-left: -7px;
|
|
|
transform: ${(props) =>
|
|
|
- props.isExpanded ? "rotate(0deg)" : "rotate(-90deg)"};
|
|
|
+ props.isExpanded ? "rotate(0deg)" : "rotate(-90deg)"};
|
|
|
}
|
|
|
`;
|
|
|
|