zabbix-community / helm-zabbix

Helm chart for Zabbix
https://artifacthub.io/packages/helm/zabbix-community/zabbix
Apache License 2.0
77 stars 45 forks source link

Improvements in services templates of Zabbix components #95

Closed aeciopires closed 1 month ago

aeciopires commented 1 month ago

What this PR does / why we need it:

New values:

zabbixServer:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. 
    #If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses 
    #(NodePorts, ExternalIPs, and LoadBalancer IPs). "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, 
    #depending on your network settings.
    #externalTrafficPolicy: Local
    # -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. 
    #These IPs are not managed by Kubernetes.
    externalIPs: []
    # -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying 
    #the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerIP: ""
    # -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer 
    #will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerSourceRanges: []
    # -- loadBalancerClass is the class of the load balancer implementation this Service belongs to. 
    #If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or 
    #"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. 
    #If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, 
    #but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services 
    #with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. 
    #This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. 
    #This field will be wiped when a service is updated to a non 'LoadBalancer' type.
    loadBalancerClass: ""
    # -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. 
    #Must be ClientIP or None. Defaults to None. More info: 
    #https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    sessionAffinity: None
    # -- Port of service in Kubernetes cluster
    port: 10051
    # -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
    nodePort: 31051
    # -- Annotations for the zabbix-server service

postgresql:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
    # More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, 
    #is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- Port of service in Kubernetes cluster
    port: 5432

zabbixProxy:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. 
    #If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses 
    #(NodePorts, ExternalIPs, and LoadBalancer IPs). "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, 
    #depending on your network settings.
    #externalTrafficPolicy: Local
    # -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. 
    #These IPs are not managed by Kubernetes.
    externalIPs: []
    # -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying 
    #the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerIP: ""
    # -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer 
    #will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerSourceRanges: []
    # -- loadBalancerClass is the class of the load balancer implementation this Service belongs to. 
    #If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or 
    #"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. 
    #If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, 
    #but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services 
    #with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. 
    #This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. 
    #This field will be wiped when a service is updated to a non 'LoadBalancer' type.
    loadBalancerClass: ""
    # -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. 
    #Must be ClientIP or None. Defaults to None. More info: 
    #https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    sessionAffinity: None
    # -- Port of service in Kubernetes cluster
    port: 10051
    # -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
    nodePort: 31053

zabbixAgent:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. 
    #If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses 
    #(NodePorts, ExternalIPs, and LoadBalancer IPs). "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, 
    #depending on your network settings.
    #externalTrafficPolicy: Local
    # -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. 
    #These IPs are not managed by Kubernetes.
    externalIPs: []
    # -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying 
    #the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerIP: ""
    # -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer 
    #will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerSourceRanges: []
    # -- loadBalancerClass is the class of the load balancer implementation this Service belongs to. 
    #If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or 
    #"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. 
    #If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, 
    #but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services 
    #with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. 
    #This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. 
    #This field will be wiped when a service is updated to a non 'LoadBalancer' type.
    loadBalancerClass: ""
    # -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. 
    #Must be ClientIP or None. Defaults to None. More info: 
    #https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    sessionAffinity: None
    # -- Port of service in Kubernetes cluster
    port: 10050
    # -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
    nodePort: 31050

zabbixWeb:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. 
    #If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses 
    #(NodePorts, ExternalIPs, and LoadBalancer IPs). "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, 
    #depending on your network settings.
    #externalTrafficPolicy: Local
    # -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. 
    #These IPs are not managed by Kubernetes.
    externalIPs: []
    # -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying 
    #the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerIP: ""
    # -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer 
    #will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerSourceRanges: []
    # -- loadBalancerClass is the class of the load balancer implementation this Service belongs to. 
    #If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or 
    #"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. 
    #If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, 
    #but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services 
    #with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. 
    #This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. 
    #This field will be wiped when a service is updated to a non 'LoadBalancer' type.
    loadBalancerClass: ""
    # -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. 
    #Must be ClientIP or None. Defaults to None. More info: 
    #https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    sessionAffinity: None    # -- Port of service in Kubernetes cluster
    port: 80
    # -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
    nodePort: 31080

zabbixWebService:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, 
    #is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- Port of service in Kubernetes cluster
    port: 10053

zabbixJavaGateway:
  service:
    # -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 
    #More details: https://kubernetes.io/docs/concepts/services-networking/service/
    type: ClusterIP
    # -- clusterIP is the IP address of the service and is usually assigned randomly. 
    #If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
    clusterIP:
    # -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses 
    #(NodePorts, ExternalIPs, and LoadBalancer IPs). "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, 
    #depending on your network settings.
    #externalTrafficPolicy: Local
    # -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. 
    #These IPs are not managed by Kubernetes.
    externalIPs: []
    # -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying 
    #the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerIP: ""
    # -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer 
    #will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
    loadBalancerSourceRanges: []
    # -- loadBalancerClass is the class of the load balancer implementation this Service belongs to. 
    #If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or 
    #"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. 
    #If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, 
    #but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services 
    #with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. 
    #This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. 
    #This field will be wiped when a service is updated to a non 'LoadBalancer' type.
    loadBalancerClass: ""
    # -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. 
    #Must be ClientIP or None. Defaults to None. More info: 
    #https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    sessionAffinity: None
    # -- Port of service in Kubernetes cluster
    port: 10052
    # -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
    nodePort: 31052

Which issue this PR fixes

Special notes for your reviewer:

Checklist

[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]