Skip to content

Commit

Permalink
feat(common): add TTY, STDIN and IPFamily support (#1700)
Browse files Browse the repository at this point in the history
* feat(common): add TTY and STDIN support

Also fixes a mistake in the GUI for external interfaces

* bump minor on common

* add IP families as well
  • Loading branch information
Ornias1993 committed Jan 12, 2022
1 parent 203f4ec commit da35f12
Show file tree
Hide file tree
Showing 7 changed files with 124 additions and 63 deletions.
2 changes: 1 addition & 1 deletion charts/library/common/Chart.yaml
Expand Up @@ -15,4 +15,4 @@ maintainers:
name: common
sources: null
type: library
version: 8.11.0
version: 8.12.0
7 changes: 7 additions & 0 deletions charts/library/common/templates/classes/_service.tpl
Expand Up @@ -72,6 +72,13 @@ spec:
{{- if $values.publishNotReadyAddresses }}
publishNotReadyAddresses: {{ $values.publishNotReadyAddresses }}
{{- end }}
{{- if $values.ipFamilyPolicy }}
ipFamilyPolicy: {{ $values.ipFamilyPolicy }}
{{- end }}
{{- with $values.ipFamilies }}
ipFamilies:
{{ toYaml . | nindent 4 }}
{{- end }}
ports:
{{- range $name, $port := $values.ports }}
{{- if $port.enabled }}
Expand Down
2 changes: 2 additions & 0 deletions charts/library/common/templates/lib/controller/_container.tpl
Expand Up @@ -19,6 +19,8 @@
{{ toYaml . | nindent 4 }}
{{- end }}
{{- end }}
tty: {{ .Values.tty }}
stdin: {{ .Values.stdin }}
{{- with .Values.securityContext }}
securityContext:
{{- toYaml . | nindent 4 }}
Expand Down
12 changes: 12 additions & 0 deletions charts/library/common/values.yaml
Expand Up @@ -145,6 +145,12 @@ podLabelsList: []
# -- Set labels on the pod
podLabels: {}

# -- Determines whether containers in a pod runs with TTY enabled.
tty: false

# -- Determines whether containers in a pod runs with stdin enabled.
stdin: false

# -- Add a Horizontal Pod Autoscaler
# @default -- <disabled>
autoscaling:
Expand Down Expand Up @@ -448,6 +454,12 @@ service:
# @default -- See below
portsList: []

# -- Specify the ip policy. Options: SingleStack, PreferDualStack, RequireDualStack
ipFamilyPolicy: SingleStack

# -- The ip families that should be used. Options: IPv4, IPv6
ipFamilies: [ ]

# -- Configure the Service port information here.
# Additional ports can be added by adding a dictionary key similar to the 'http' service.
# @default -- See below
Expand Down
14 changes: 14 additions & 0 deletions templates/questions/containerConfig.yaml
Expand Up @@ -27,6 +27,20 @@
default: false
show_subquestions_if: true
subquestions:
- variable: tty
label: "Enable TTY"
description: "Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled."
group: "Workload Details"
schema:
type: boolean
default: false
- variable: stdin
label: "Enable STDIN"
description: "Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled."
group: "Workload Details"
schema:
type: boolean
default: false
- variable: termination
group: "Container Configuration"
label: "Termination settings"
Expand Down
124 changes: 62 additions & 62 deletions templates/questions/serviceExpert.yaml
@@ -1,78 +1,78 @@
- variable: externalInterfaces
description: "Add External Interfaces"
label: "Add external Interfaces"
group: "Networking"
schema:
type: list
items:
- variable: interfaceConfiguration
description: "Interface Configuration"
label: "Interface Configuration"
- variable: externalInterfaces
description: "Add External Interfaces"
label: "Add external Interfaces"
group: "Networking"
schema:
type: dict
$ref:
- "normalize/interfaceConfiguration"
attrs:
- variable: hostInterface
description: "Please specify host interface"
label: "Host Interface"
schema:
type: string
required: true
$ref:
- "definitions/interface"
- variable: ipam
description: "Define how IP Address will be managed"
label: "IP Address Management"
type: list
items:
- variable: interfaceConfiguration
description: "Interface Configuration"
label: "Interface Configuration"
schema:
type: dict
required: true
$ref:
- "normalize/interfaceConfiguration"
attrs:
- variable: type
description: "Specify type for IPAM"
label: "IPAM Type"
- variable: hostInterface
description: "Please specify host interface"
label: "Host Interface"
schema:
type: string
required: true
enum:
- value: "dhcp"
description: "Use DHCP"
- value: "static"
description: "Use static IP"
show_subquestions_if: "static"
subquestions:
- variable: staticIPConfigurations
label: "Static IP Addresses"
schema:
type: list
items:
- variable: staticIP
label: "Static IP"
schema:
type: ipaddr
cidr: true
- variable: staticRoutes
label: "Static Routes"
$ref:
- "definitions/interface"
- variable: ipam
description: "Define how IP Address will be managed"
label: "IP Address Management"
schema:
type: dict
required: true
attrs:
- variable: type
description: "Specify type for IPAM"
label: "IPAM Type"
schema:
type: list
items:
- variable: staticRouteConfiguration
label: "Static Route Configuration"
type: string
required: true
enum:
- value: "dhcp"
description: "Use DHCP"
- value: "static"
description: "Use static IP"
show_subquestions_if: "static"
subquestions:
- variable: staticIPConfigurations
label: "Static IP Addresses"
schema:
type: dict
attrs:
- variable: destination
label: "Destination"
type: list
items:
- variable: staticIP
label: "Static IP"
schema:
type: ipaddr
cidr: true
required: true
- variable: gateway
label: "Gateway"
- variable: staticRoutes
label: "Static Routes"
schema:
type: list
items:
- variable: staticRouteConfiguration
label: "Static Route Configuration"
schema:
type: ipaddr
cidr: false
required: true
type: dict
attrs:
- variable: destination
label: "Destination"
schema:
type: ipaddr
cidr: true
required: true
- variable: gateway
label: "Gateway"
schema:
type: ipaddr
cidr: false
required: true

- variable: dnsPolicy
group: "Networking and Services"
Expand Down
26 changes: 26 additions & 0 deletions templates/questions/serviceSelector.yaml
Expand Up @@ -38,6 +38,32 @@
label: "External IP"
schema:
type: string
- variable: ipFamilyPolicy
label: "IP Family Policy"
description: "(Advanced) Specify the ip policy"
schema:
show_if: [["type", "!=", "Simple"]]
type: string
default: "SingleStack"
enum:
- value: "SingleStack"
description: "SingleStack"
- value: "PreferDualStack"
description: "PreferDualStack"
- value: "RequireDualStack"
description: "RequireDualStack"
- variable: ipFamilies
label: "(advanced) IP families"
description: "(advanced) The ip families that should be used"
schema:
show_if: [["type", "!=", "Simple"]]
type: list
default: []
items:
- variable: ipFamily
label: "IP family"
schema:
type: string
- variable: ports
label: "Service's Port(s) Configuration"
schema:
Expand Down

0 comments on commit da35f12

Please sign in to comment.