suite: service nodePort test templates: - common.yaml tests: - it: should pass with type nodePort set: service: my-service: enabled: true primary: true type: NodePort ports: port-name: enabled: true primary: true port: 12345 nodePort: 30000 workload: my-workload: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: &serviceDoc 1 isKind: of: Service - documentIndex: *serviceDoc isAPIVersion: of: v1 - documentIndex: *serviceDoc equal: path: metadata.name value: release-name-common-test - documentIndex: *serviceDoc equal: path: spec value: type: NodePort publishNotReadyAddresses: false ports: - name: port-name port: 12345 protocol: TCP targetPort: 12345 nodePort: 30000 selector: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/name: common-test pod.name: my-workload - it: should pass with type NodePort and hostnetwork enabled set: service: my-service: enabled: true primary: true type: NodePort ports: port-name: enabled: true primary: true port: 12345 nodePort: 30000 workload: my-workload: enabled: true primary: true type: Deployment podSpec: hostNetwork: true asserts: - documentIndex: &serviceDoc 1 isKind: of: Service - documentIndex: *serviceDoc isAPIVersion: of: v1 - documentIndex: *serviceDoc equal: path: metadata.name value: release-name-common-test - documentIndex: *serviceDoc equal: path: spec value: type: ClusterIP publishNotReadyAddresses: false ports: - name: port-name port: 12345 protocol: TCP targetPort: 12345 selector: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/name: common-test pod.name: my-workload - documentIndex: *serviceDoc isNull: path: spec.ports[0].nodePort - it: should pass with type NodePort and available options set set: some_ip: 172.16.20.35 some_family: IPv6 some_policy: Local some_other_ip: 10.200.34.53 some_affinity: ClientIP some_timeout: 100 some_port: 12344 some_target_port: 12346 some_protocol: http some_nodePort: 30001 service: my-service: enabled: true primary: true type: NodePort clusterIP: "{{ .Values.some_ip }}" externalTrafficPolicy: "{{ .Values.some_policy }}" publishNotReadyAddresses: true ipFamilyPolicy: PreferDualStack ipFamilies: - IPv4 - "{{ .Values.some_family }}" externalIPs: - "{{ .Values.some_other_ip }}" - 10.200.34.54 sessionAffinity: "{{ .Values.some_affinity }}" sessionAffinityConfig: clientIP: timeoutSeconds: "{{ .Values.some_timeout }}" ports: port-name: enabled: true primary: true port: 12345 nodePort: 30000 port-name2: enabled: true port: "{{ .Values.some_port }}" targetPort: "{{ .Values.some_target_port }}" protocol: "{{ .Values.some_protocol }}" nodePort: "{{ .Values.some_nodePort }}" workload: my-workload: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: *serviceDoc equal: path: spec value: type: NodePort clusterIP: 172.16.20.35 externalTrafficPolicy: Local ipFamilyPolicy: PreferDualStack publishNotReadyAddresses: true ipFamilies: - IPv4 - IPv6 externalIPs: - 10.200.34.53 - 10.200.34.54 sessionAffinity: ClientIP sessionAffinityConfig: clientIP: timeoutSeconds: 100 ports: - name: port-name port: 12345 protocol: TCP targetPort: 12345 nodePort: 30000 - name: port-name2 port: 12344 protocol: TCP targetPort: 12346 nodePort: 30001 selector: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/name: common-test pod.name: my-workload