|
|
@@ -4,11 +4,16 @@ import Text from "components/porter/Text";
|
|
|
import Spacer from "components/porter/Spacer";
|
|
|
import TabSelector from "components/TabSelector";
|
|
|
import Checkbox from "components/porter/Checkbox";
|
|
|
+import { WebService } from "./serviceTypes";
|
|
|
|
|
|
interface Props {
|
|
|
+ service: WebService
|
|
|
+ editService: (service: WebService) => void
|
|
|
}
|
|
|
|
|
|
const WebTabs: React.FC<Props> = ({
|
|
|
+ service,
|
|
|
+ editService
|
|
|
}) => {
|
|
|
const [currentTab, setCurrentTab] = React.useState<string>('main');
|
|
|
|
|
|
@@ -16,25 +21,25 @@ const WebTabs: React.FC<Props> = ({
|
|
|
return (
|
|
|
<>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Start command"
|
|
|
placeholder="ex: sh start.sh"
|
|
|
- value=""
|
|
|
+ value={service.startCommand}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, startCommand: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Container port"
|
|
|
placeholder="ex: 80"
|
|
|
- value=""
|
|
|
+ value={service.port}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, port: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
<Checkbox
|
|
|
- checked={true}
|
|
|
- toggleChecked={() => {}}
|
|
|
+ checked={service.generateUrlForExternalTraffic}
|
|
|
+ toggleChecked={() => { editService({ ...service, generateUrlForExternalTraffic: !service.generateUrlForExternalTraffic }) }}
|
|
|
>
|
|
|
<Text color="helper">Generate a Porter URL for external traffic</Text>
|
|
|
</Checkbox>
|
|
|
@@ -46,67 +51,67 @@ const WebTabs: React.FC<Props> = ({
|
|
|
return (
|
|
|
<>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="CPUs"
|
|
|
placeholder="ex: 0.5"
|
|
|
- value=""
|
|
|
+ value={service.cpu}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, cpu: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="RAM (GB)"
|
|
|
placeholder="ex: 1"
|
|
|
- value=""
|
|
|
+ value={service.ram}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, ram: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Replicas"
|
|
|
placeholder="ex: 1"
|
|
|
- value=""
|
|
|
+ value={service.replicas}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, replicas: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
<Checkbox
|
|
|
- checked={true}
|
|
|
- toggleChecked={() => {}}
|
|
|
+ checked={service.autoscalingOn}
|
|
|
+ toggleChecked={() => { editService({ ...service, autoscalingOn: !service.autoscalingOn }) }}
|
|
|
>
|
|
|
<Text color="helper">Enable autoscaling (overrides replicas)</Text>
|
|
|
</Checkbox>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Min replicas"
|
|
|
placeholder="ex: 1"
|
|
|
- value=""
|
|
|
+ value={service.minReplicas}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, minReplicas: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Max replicas"
|
|
|
placeholder="ex: 10"
|
|
|
- value=""
|
|
|
+ value={service.maxReplicas}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, maxReplicas: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Target CPU utilization (%)"
|
|
|
placeholder="ex: 50"
|
|
|
- value=""
|
|
|
+ value={service.targetCPUUtilizationPercentage}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, targetCPUUtilizationPercentage: e }) }}
|
|
|
/>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Target RAM utilization (%)"
|
|
|
placeholder="ex: 50"
|
|
|
- value=""
|
|
|
+ value={service.targetRAMUtilizationPercentage}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, targetRAMUtilizationPercentage: e }) }}
|
|
|
/>
|
|
|
</>
|
|
|
)
|
|
|
@@ -116,12 +121,12 @@ const WebTabs: React.FC<Props> = ({
|
|
|
return (
|
|
|
<>
|
|
|
<Spacer y={1} />
|
|
|
- <Input
|
|
|
+ <Input
|
|
|
label="Custom domain"
|
|
|
placeholder="ex: my-app.my-domain.com"
|
|
|
- value=""
|
|
|
+ value={service.customDomain ?? ''}
|
|
|
width="300px"
|
|
|
- setValue={(e) => {}}
|
|
|
+ setValue={(e) => { editService({ ...service, customDomain: e }) }}
|
|
|
/>
|
|
|
</>
|
|
|
);
|