suite: external interface validation test templates: - common.yaml release: name: test-release-name namespace: test-release-namespace tests: - it: should fail with targetSelector not a list set: scaleExternalInterface: - targetSelector: "not a list" asserts: - failedTemplate: errorMessage: External Interface - Expected [targetSelector] to be a [list], but got [string] - it: should fail with empty hostInterface set: scaleExternalInterface: - hostInterface: "" asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [hostInterface] - it: should fail with empty ipam set: scaleExternalInterface: - hostInterface: enp0s3 ipam: {} asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [ipam] - it: should fail with empty ipam.type set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: "" asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [ipam.type] - it: should fail with invalid ipam.type set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: invalid asserts: - failedTemplate: errorMessage: External Interface - Expected [ipam.type] to be one of [dhcp, static], but got [invalid] - it: should fail with non-empty staticIPConfigurations on dhcp set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: dhcp staticIPConfigurations: - ipAddress: 1.2.3.4 asserts: - failedTemplate: errorMessage: External Interface - Expected empty [ipam.staticIPConfigurations] and [ipam.staticRoutes] when [ipam.type] is not [static] - it: should fail with non-empty staticRoutes on dhcp set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: dhcp staticRoutes: - gateway: 1.2.3.4 destination: 1.2.3.4 asserts: - failedTemplate: errorMessage: External Interface - Expected empty [ipam.staticIPConfigurations] and [ipam.staticRoutes] when [ipam.type] is not [static] - it: should fail with empty staticIPConfigurations on static set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: static staticIPConfigurations: [] asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [ipam.staticIPConfigurations] when [ipam.type] is [static] - it: should fail with empty gateway on staticRoutes on static set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: static staticIPConfigurations: - ipAddress: 1.2.3.4 staticRoutes: - gateway: "" destination: 1.2.3.4 asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [gateway] in [ipam.staticRoutes] - it: should fail with empty destination on staticRoutes on static set: scaleExternalInterface: - hostInterface: enp0s3 ipam: type: static staticIPConfigurations: - ipAddress: 1.2.3.4 staticRoutes: - gateway: 1.2.3.4 destination: "" asserts: - failedTemplate: errorMessage: External Interface - Expected non-empty [destination] in [ipam.staticRoutes] - it: should fail with empty ixExternalInterfaceConfigurationNames when interface is defined set: # Simulate middleware injection ixExternalInterfacesConfiguration: - '{"cniVersion": "0.3.1", "name": "ix-test-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}' ixExternalInterfacesConfigurationNames: [] scaleExternalInterface: - hostInterface: enp0s3 ipam: type: dhcp workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: {} asserts: - failedTemplate: errorMessage: External Interface - Expected non empty [ixExternalInterfaceConfigurationNames] - it: should fail with namespace longer than 63 characters set: # Simulate middleware injection ixExternalInterfacesConfiguration: - '{"cniVersion": "0.3.1", "name": "ix-test-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}' ixExternalInterfacesConfigurationNames: [] scaleExternalInterface: - hostInterface: enp0s3 ipam: type: dhcp global: namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters asserts: - failedTemplate: errorMessage: Network Attachment Definition - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters. - it: should fail with namespace not starting with [ix-] in TrueNAS SCALE set: global: namespace: my-namespace ixChartContext: iAmNotEmpty: true # Simulate middleware injection ixExternalInterfacesConfiguration: - '{"cniVersion": "0.3.1", "name": "ix-test-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}' ixExternalInterfacesConfigurationNames: [] scaleExternalInterface: - hostInterface: enp0s3 ipam: type: dhcp asserts: - failedTemplate: errorMessage: Network Attachment Definition - Namespace [my-namespace] expected to have [ix-] prefix when installed in TrueNAS SCALE