chart: appVersion: 0.1.0 version: 0.1.0 suite: Service http template (basic) release: name: prometheus-postgres-exporter-unittest namespace: testing templates: - templates/prometheus-postgres-exporter/serviceHTTP.yaml tests: - it: Skip service when disabled. set: services.http.enabled: false asserts: - hasDocuments: count: 0 - it: Rendering service with default values. asserts: - hasDocuments: count: 1 - containsDocument: apiVersion: v1 kind: Service name: prometheus-postgres-exporter-unittest-http namespace: testing - notExists: path: metadata.annotations - equal: path: metadata.labels value: app.kubernetes.io/instance: prometheus-postgres-exporter-unittest app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus-postgres-exporter app.kubernetes.io/service-name: http app.kubernetes.io/version: 0.1.0 helm.sh/chart: prometheus-postgres-exporter-0.1.0 - notExists: path: spec.externalIPs - notExists: path: spec.externalTrafficPolicy - equal: path: spec.internalTrafficPolicy value: Cluster - notExists: path: spec.ipFamilies - notExists: path: spec.loadBalancerClass - notExists: path: spec.loadBalancerIP - notExists: path: spec.loadBalancerSourceRanges - equal: path: spec.ports[0].name value: http - equal: path: spec.ports[0].protocol value: TCP - equal: path: spec.ports[0].port value: 9187 - equal: path: spec.selector value: app.kubernetes.io/instance: prometheus-postgres-exporter-unittest app.kubernetes.io/name: prometheus-postgres-exporter - equal: path: spec.sessionAffinity value: None - notExists: path: spec.sessionAffinityConfig - equal: path: spec.type value: ClusterIP - it: Require internalTrafficPolicy. set: services.http.internalTrafficPolicy: "" asserts: - failedTemplate: errorMessage: No internal traffic policy defined! - it: Require port. set: services.http.port: "" asserts: - failedTemplate: errorMessage: No service port defined! - it: Require sessionAffinity. set: services.http.sessionAffinity: "" asserts: - failedTemplate: errorMessage: No session affinity defined! - it: Require service type. set: services.http.type: "" asserts: - failedTemplate: errorMessage: No service type defined! - it: Render service with custom annotations and labels. set: services.http.annotations: foo: bar services.http.labels: bar: foo asserts: - equal: path: metadata.annotations value: foo: bar - equal: path: metadata.labels value: app.kubernetes.io/instance: prometheus-postgres-exporter-unittest app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus-postgres-exporter app.kubernetes.io/service-name: http app.kubernetes.io/version: 0.1.0 helm.sh/chart: prometheus-postgres-exporter-0.1.0 bar: foo - it: Change defaults set: services.http.externalIPs: - "10.11.12.13/32" services.http.externalTrafficPolicy: Local services.http.internalTrafficPolicy: Local services.http.ipFamilies: - IPv4 services.http.loadBalancerClass: aws services.http.loadBalancerIP: "11.12.13.14" services.http.loadBalancerSourceRanges: - "11.12.0.0/17" services.http.port: 10443 services.http.sessionAffinity: ClientIP services.http.type: LoadBalancer asserts: - equal: path: spec.externalIPs value: - 10.11.12.13/32 - equal: path: spec.externalTrafficPolicy value: Local - equal: path: spec.internalTrafficPolicy value: Local - equal: path: spec.ipFamilies value: - IPv4 - equal: path: spec.loadBalancerClass value: aws - equal: path: spec.loadBalancerIP value: "11.12.13.14" - equal: path: spec.loadBalancerSourceRanges value: - "11.12.0.0/17" - equal: path: spec.ports[0].port value: 10443 - equal: path: spec.sessionAffinity value: ClientIP - equal: path: spec.type value: LoadBalancer