diff --git a/library/common/1.0.0/docs/service.md b/library/common/1.0.0/docs/service.md deleted file mode 100644 index 16318a679f..0000000000 --- a/library/common/1.0.0/docs/service.md +++ /dev/null @@ -1,185 +0,0 @@ -# Service - -| Key | Type | Required | Helm Template | Default | Description | -| :------------------------------------------------------------------- | :-------: | :-----------------------: | :----------------: | :----------------: | :------------------------------------------------------------------------------------------------------------------------------------ | -| service | `dict` | ❌ | ❌ | `{}` | Define the service as dicts | -| service.[service-name] | `dict` | ✅ | ❌ | `{}` | Holds service definition | -| service.[service-name].enabled | `boolean` | ✅ | ❌ | `false` | Enables or Disables the service | -| service.[service-name].labels | `dict` | ❌ | ✅ (On value only) | `{}` | Additional labels for service | -| service.[service-name].annotations | `dict` | ❌ | ✅ (On value only) | `{}` | Additional annotations for service | -| service.[service-name].type | `string` | ❌ | ✅ | `ClusterIP` | Define the service type (ClusterIP, LoadBalancer, NodePort, ExternalIP, ExternalName) | -| service.[service-name].publishNotReadyAddresses | `boolean` | ❌ | ❌ | `false` | Define whether to publishNotReadyAddresses or not | -| service.[service-name].externalIP | `string` | ✅ (Only ExternalIP type) | ✅ | | Define External IP for headless service | -| service.[service-name].addressType | `string` | ✅ (Only ExternalIP type) | ✅ | `IPv4` | Define the addressType for External IP | -| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | -| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | -| service.[service-name].sharedKey | `string` | ❌ | ✅ | `$FullName` | Custom Shared Key for MetalLB Annotation | -| service.[service-name].clusterIP | `string` | ❌ | ✅ | | Custom Cluster IP | -| service.[service-name].ipFamilyPolicy | `string` | ❌ | ✅ | | Define the ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack) | -| service.[service-name].ipFamilies | `list` | ❌ | ❌ | | Define the ipFamilies | -| service.[service-name].ipFamilies.[ipFamily] | `string` | ✅ | ✅ | | Define the ipFamily (IPv4, IPv6) | -| service.[service-name].loadBalancerIP | `string` | ❌ | ✅ | | Define the load balancer IP | -| service.[service-name].loadBalancerSourceRanges | `list` | ❌ | ❌ | | Define the load balancer source ranges | -| service.[service-name].loadBalancerSourceRanges.[source-range] | `string` | ✅ | ✅ | | Define the load balancer source range | -| service.[service-name].externalTrafficPolicy | `string` | ❌ | ✅ | | Define the external traffic policy (Cluster, Local) | -| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | -| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | -| service.[service-name].targetSelector | `string` | ❌ | ❌ | `""` | Define the pod to link the service, by default will use the primary pod | -| service.[service-name].ports | `list` | ✅ | ❌ | `{}` | Define the ports of the service | -| service.[service-name].ports.[port-name] | `dict` | ✅ | ❌ | `{}` | Define the port dict | -| service.[service-name].ports.[port-name].port | `int` | ✅ | ✅ | | Define the port that will be exposed by the service | -| service.[service-name].ports.[port-name].nodePort | `int` | ✅ (Only NodePort type) | ✅ | | Define the node port that will be exposed on the node | -| service.[service-name].ports.[port-name].targetPort | `int` | ❌ | ✅ | `[port-name].port` | Define the target port (No named ports, as this will be used to assign the containerPort to containers) | -| service.[service-name].ports.[port-name].protocol | `string` | ❌ | ✅ | `TCP` | Define the port protocol (HTTP, HTTPS, TCP, UDP). (Also used by the container probes, HTTP and HTTPS are converted to TCP on service) | -| service.[service-name].ports.[port-name].targetSelector | `string` | ❌ | ❌ | `TCP` | Define the container to link this port (Must be on under the pod linked above) | - ---- - -Appears in: - -- `.Values.service` - ---- - -Naming scheme: - -- Primary: `$FullName` (release-name-chart-name) -- Non-Primary: `$FullName-$ServiceName` (release-name-chart-name-ServiceName) - ---- - -Examples: - -```yaml -service: - service-clusterip: - enabled: true - primary: true - publishNotReadyAddresses: true - clusterIP: 172.16.20.233 - publishNotReadyAddresses: true - ipFamilyPolicy: SingleStack - ipFamilies: - - IPv4 - externalIPs: - - 10.200.230.34 - sessionAffinity: ClientIP - sessionAffinityConfig: - clientIP: - timeoutSeconds: 86400 - targetSelector: pod-name - ports: - port-name: - enabled: true - primary: true - targetSelector: container-name - port: 80 - protocol: HTTP - targetPort: 8080 - - service-lb: - enabled: true - primary: true - type: LoadBalancer - loadBalancerIP: 10.100.100.2 - loadBalancerSourceRanges: - - 10.100.100.0/24 - clusterIP: 172.16.20.233 - sharedKey: custom-shared-key - publishNotReadyAddresses: true - ipFamilyPolicy: SingleStack - ipFamilies: - - IPv4 - externalIPs: - - 10.200.230.34 - sessionAffinity: ClientIP - sessionAffinityConfig: - clientIP: - timeoutSeconds: 86400 - externalTrafficPolicy: Cluster - targetSelector: pod-name - ports: - port-name: - enabled: true - primary: true - targetSelector: container-name - port: 80 - protocol: HTTP - targetPort: 8080 - - service-nodeport: - enabled: true - primary: true - type: NodePort - clusterIP: 172.16.20.233 - publishNotReadyAddresses: true - externalIPs: - - 10.200.230.34 - sessionAffinity: ClientIP - sessionAffinityConfig: - clientIP: - timeoutSeconds: 86400 - externalTrafficPolicy: Cluster - targetSelector: pod-name - ports: - port-name: - enabled: true - primary: true - targetSelector: container-name - port: 80 - protocol: HTTP - targetPort: 8080 - nodePort: 30080 - - # Special type - service-externalname: - enabled: true - primary: true - type: ExternalName - externalName: external-name - clusterIP: 172.16.20.233 - publishNotReadyAddresses: true - externalIPs: - - 10.200.230.34 - sessionAffinity: ClientIP - sessionAffinityConfig: - clientIP: - timeoutSeconds: 86400 - externalTrafficPolicy: Cluster - ports: - port-name: - enabled: true - primary: true - targetSelector: container-name - port: 80 - protocol: HTTP - - # Special type - service-externalip: - enabled: true - primary: true - type: ExternalIP - externalIP: 1.1.1.1 - addressType: IPv4 - publishNotReadyAddresses: true - externalIPs: - - 10.200.230.34 - sessionAffinity: ClientIP - externalTrafficPolicy: Cluster - ports: - port-name: - enabled: true - primary: true - targetSelector: container-name - port: 80 - targetPort: 8080 - protocol: HTTP - - other-service-name: - enabled: true - type: ClusterIP - ports: - other-port-name: - enabled: true - primary: true -``` diff --git a/library/common/1.0.0/docs/service/ClusterIP.md b/library/common/1.0.0/docs/service/ClusterIP.md new file mode 100644 index 0000000000..2a761c4ffa --- /dev/null +++ b/library/common/1.0.0/docs/service/ClusterIP.md @@ -0,0 +1,50 @@ +# ClusterIP + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------------------- | :-------: | :------: | :-----------: | :-----: | :------------------------------------------------------------------------- | +| service.[service-name].clusterIP | `string` | ❌ | ✅ | | Custom Cluster IP | +| service.[service-name].ipFamilyPolicy | `string` | ❌ | ✅ | | Define the ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack) | +| service.[service-name].ipFamilies | `list` | ❌ | ❌ | | Define the ipFamilies | +| service.[service-name].ipFamilies.[ipFamily] | `string` | ✅ | ✅ | | Define the ipFamily (IPv4, IPv6) | +| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | +| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | +| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | +| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | + +--- + +Notes: + +View common `keys` of `service` in [service Documentation](README.md). + +--- + +Examples: + +```yaml +service: + service-clusterip: + enabled: true + primary: true + publishNotReadyAddresses: true + clusterIP: 172.16.20.233 + publishNotReadyAddresses: true + ipFamilyPolicy: SingleStack + ipFamilies: + - IPv4 + externalIPs: + - 10.200.230.34 + sessionAffinity: ClientIP + sessionAffinityConfig: + clientIP: + timeoutSeconds: 86400 + targetSelector: pod-name + ports: + port-name: + enabled: true + primary: true + targetSelector: container-name + port: 80 + protocol: HTTP + targetPort: 8080 +``` diff --git a/library/common/1.0.0/docs/service/ExternalIP.md b/library/common/1.0.0/docs/service/ExternalIP.md new file mode 100644 index 0000000000..c7fb7c394c --- /dev/null +++ b/library/common/1.0.0/docs/service/ExternalIP.md @@ -0,0 +1,45 @@ +# ExternalIP + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------------------- | :-------: | :------: | :-----------: | :-----: | :--------------------------------------------------------- | +| service.[service-name].externalIP | `string` | ✅ | ✅ | | Define External IP for headless service | +| service.[service-name].addressType | `string` | ❌ | ✅ | `IPv4` | Define the addressType for External IP | +| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | +| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | +| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | +| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | +| service.[service-name].externalTrafficPolicy | `string` | ❌ | ✅ | | Define the external traffic policy (Cluster, Local) | + +--- + +Notes: + +View common `keys` of `service` in [service Documentation](README.md). + +--- + +Examples: + +```yaml +service: + # Special type + service-externalip: + enabled: true + primary: true + type: ExternalIP + externalIP: 1.1.1.1 + addressType: IPv4 + publishNotReadyAddresses: true + externalIPs: + - 10.200.230.34 + sessionAffinity: ClientIP + externalTrafficPolicy: Cluster + ports: + port-name: + enabled: true + primary: true + targetSelector: container-name + port: 80 + targetPort: 8080 + protocol: HTTP +``` diff --git a/library/common/1.0.0/docs/service/ExternalName.md b/library/common/1.0.0/docs/service/ExternalName.md new file mode 100644 index 0000000000..12aea02188 --- /dev/null +++ b/library/common/1.0.0/docs/service/ExternalName.md @@ -0,0 +1,47 @@ +# ExternalName + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------------------- | :-------: | :------: | :-----------: | :-----: | :------------------------------------------------------------------------- | +| service.[service-name].externalName | `string` | ✅ | ✅ | `""` | Define the external name | +| service.[service-name].clusterIP | `string` | ❌ | ✅ | | Custom Cluster IP | +| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | +| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | +| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | +| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | +| service.[service-name].externalTrafficPolicy | `string` | ❌ | ✅ | | Define the external traffic policy (Cluster, Local) | + +--- + +Notes: + +View common `keys` of `service` in [service Documentation](README.md). + +--- + +Examples: + +```yaml +service: + # Special type + service-external-name: + enabled: true + primary: true + type: ExternalName + externalName: external-name + clusterIP: 172.16.20.233 + publishNotReadyAddresses: true + externalIPs: + - 10.200.230.34 + sessionAffinity: ClientIP + sessionAffinityConfig: + clientIP: + timeoutSeconds: 86400 + externalTrafficPolicy: Cluster + ports: + port-name: + enabled: true + primary: true + targetSelector: container-name + port: 80 + protocol: HTTP +``` diff --git a/library/common/1.0.0/docs/service/LoadBalancer.md b/library/common/1.0.0/docs/service/LoadBalancer.md new file mode 100644 index 0000000000..e91dd38426 --- /dev/null +++ b/library/common/1.0.0/docs/service/LoadBalancer.md @@ -0,0 +1,60 @@ +# LoadBalancer + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------------------- | :-------: | :------: | :-----------: | :---------: | :------------------------------------------------------------------------- | +| service.[service-name].sharedKey | `string` | ❌ | ✅ | `$FullName` | Custom Shared Key for MetalLB Annotation | +| service.[service-name].clusterIP | `string` | ❌ | ✅ | | Custom Cluster IP | +| service.[service-name].ipFamilyPolicy | `string` | ❌ | ✅ | | Define the ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack) | +| service.[service-name].ipFamilies | `list` | ❌ | ❌ | | Define the ipFamilies | +| service.[service-name].ipFamilies.[ipFamily] | `string` | ✅ | ✅ | | Define the ipFamily (IPv4, IPv6) | +| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | +| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | +| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | +| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | +| service.[service-name].loadBalancerIP | `string` | ❌ | ✅ | | Define the load balancer IP | +| service.[service-name].loadBalancerSourceRanges | `list` | ❌ | ❌ | | Define the load balancer source ranges | +| service.[service-name].loadBalancerSourceRanges.[source-range] | `string` | ✅ | ✅ | | Define the load balancer source range | +| service.[service-name].externalTrafficPolicy | `string` | ❌ | ✅ | | Define the external traffic policy (Cluster, Local) | + +--- + +Notes: + +View common `keys` of `service` in [service Documentation](README.md). + +--- + +Examples: + +```yaml +service: + service-lb: + enabled: true + primary: true + type: LoadBalancer + loadBalancerIP: 10.100.100.2 + loadBalancerSourceRanges: + - 10.100.100.0/24 + clusterIP: 172.16.20.233 + sharedKey: custom-shared-key + publishNotReadyAddresses: true + ipFamilyPolicy: SingleStack + ipFamilies: + - IPv4 + externalIPs: + - 10.200.230.34 + sessionAffinity: ClientIP + sessionAffinityConfig: + clientIP: + timeoutSeconds: 86400 + externalTrafficPolicy: Cluster + targetSelector: pod-name + ports: + port-name: + enabled: true + primary: true + targetSelector: container-name + port: 80 + protocol: HTTP + targetPort: 8080 +``` diff --git a/library/common/1.0.0/docs/service/NodePort.md b/library/common/1.0.0/docs/service/NodePort.md new file mode 100644 index 0000000000..4eda40f060 --- /dev/null +++ b/library/common/1.0.0/docs/service/NodePort.md @@ -0,0 +1,51 @@ +# NodePort + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------------------- | :-------: | :------: | :-----------: | :-----: | :------------------------------------------------------------------------- | +| service.[service-name].clusterIP | `string` | ❌ | ✅ | | Custom Cluster IP | +| service.[service-name].ipFamilyPolicy | `string` | ❌ | ✅ | | Define the ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack) | +| service.[service-name].ipFamilies | `list` | ❌ | ❌ | | Define the ipFamilies | +| service.[service-name].ipFamilies.[ipFamily] | `string` | ✅ | ✅ | | Define the ipFamily (IPv4, IPv6) | +| service.[service-name].sessionAffinity | `string` | ❌ | ✅ | | Define the session affinity (ClientIP, None) | +| service.[service-name].sessionAffinityConfig.clientIP.timeoutSeconds | `int` | ❌ | ✅ | | Define the timeout for ClientIP session affinity (0-86400) | +| service.[service-name].externalIPs | `list` | ❌ | ❌ | | Define externalIPs | +| service.[service-name].externalIPs.[externalIP] | `string` | ✅ | ✅ | | The external IP | +| service.[service-name].externalTrafficPolicy | `string` | ❌ | ✅ | | Define the external traffic policy (Cluster, Local) | +| service.[service-name].ports.[port-name].nodePort | `int` | ✅ | ✅ | | Define the node port that will be exposed on the node | + +--- + +Notes: + +View common `keys` of `service` in [service Documentation](README.md). + +--- + +Examples: + +```yaml +service: + service-nodeport: + enabled: true + primary: true + type: NodePort + clusterIP: 172.16.20.233 + publishNotReadyAddresses: true + externalIPs: + - 10.200.230.34 + sessionAffinity: ClientIP + sessionAffinityConfig: + clientIP: + timeoutSeconds: 86400 + externalTrafficPolicy: Cluster + targetSelector: pod-name + ports: + port-name: + enabled: true + primary: true + targetSelector: container-name + port: 80 + protocol: HTTP + targetPort: 8080 + nodePort: 30080 +``` diff --git a/library/common/1.0.0/docs/service/README.md b/library/common/1.0.0/docs/service/README.md new file mode 100644 index 0000000000..d85dda3dbb --- /dev/null +++ b/library/common/1.0.0/docs/service/README.md @@ -0,0 +1,44 @@ +# Service + +| Key | Type | Required | Helm Template | Default | Description | +| :------------------------------------------------------ | :-------: | :------: | :----------------: | :----------------: | :------------------------------------------------------------------------------------------------------------------------------------ | +| service | `dict` | ❌ | ❌ | `{}` | Define the service as dicts | +| service.[service-name] | `dict` | ✅ | ❌ | `{}` | Holds service definition | +| service.[service-name].enabled | `boolean` | ✅ | ❌ | `false` | Enables or Disables the service | +| service.[service-name].labels | `dict` | ❌ | ✅ (On value only) | `{}` | Additional labels for service | +| service.[service-name].annotations | `dict` | ❌ | ✅ (On value only) | `{}` | Additional annotations for service | +| service.[service-name].type | `string` | ❌ | ✅ | `ClusterIP` | Define the service type (ClusterIP, LoadBalancer, NodePort, ExternalIP, ExternalName) | +| service.[service-name].publishNotReadyAddresses | `boolean` | ❌ | ❌ | `false` | Define whether to publishNotReadyAddresses or not | +| service.[service-name].targetSelector | `string` | ❌ | ❌ | `""` | Define the pod to link the service, by default will use the primary pod | +| service.[service-name].ports | `list` | ✅ | ❌ | `{}` | Define the ports of the service | +| service.[service-name].ports.[port-name] | `dict` | ✅ | ❌ | `{}` | Define the port dict | +| service.[service-name].ports.[port-name].port | `int` | ✅ | ✅ | | Define the port that will be exposed by the service | +| service.[service-name].ports.[port-name].targetPort | `int` | ❌ | ✅ | `[port-name].port` | Define the target port (No named ports, as this will be used to assign the containerPort to containers) | +| service.[service-name].ports.[port-name].protocol | `string` | ❌ | ✅ | `TCP` | Define the port protocol (HTTP, HTTPS, TCP, UDP). (Also used by the container probes, HTTP and HTTPS are converted to TCP on service) | +| service.[service-name].ports.[port-name].targetSelector | `string` | ❌ | ❌ | `TCP` | Define the container to link this port (Must be on under the pod linked above) | + +> When `targetSelector`(s) is empty, it will define auto-select the primary pod/container + +--- + +Appears in: + +- `.Values.service` + +--- + +Naming scheme: + +- Primary: `$FullName` (release-name-chart-name) +- Non-Primary: `$FullName-$ServiceName` (release-name-chart-name-ServiceName) + +--- + +> Those are the common `keys` for all **service**. +> Additional keys, information and examples, see on the specific kind of service. + +- [ClusterIP](ClusterIP.md) +- [LoadBalancer](LoadBalancer.md) +- [NodePort](NodePort.md) +- [ExternalName](ExternalName.md) +- [ExternalIP](ExternalIP.md)