diff --git a/eks-anywhere-common/Addons/Partner/Solo.io/namespace.yaml b/eks-anywhere-common/Addons/Partner/Solo.io/namespace.yaml new file mode 100644 index 00000000..541b2f65 --- /dev/null +++ b/eks-anywhere-common/Addons/Partner/Solo.io/namespace.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: istio-system + labels: + aws.conformance.vendor: solo.io + aws.conformance.vendor-solution: solo-istiod diff --git a/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod-source.yaml b/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod-source.yaml new file mode 100644 index 00000000..4089eb46 --- /dev/null +++ b/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod-source.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: solo-istiod-charts + namespace: flux-system +spec: + interval: 30s + url: https://solo-io.github.io/eks-anywhere-istio-charts diff --git a/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod.yaml b/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod.yaml new file mode 100644 index 00000000..e055c25c --- /dev/null +++ b/eks-anywhere-common/Addons/Partner/Solo.io/solo-istiod.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: solo-istiod + namespace: istio-system +spec: + chart: + spec: + chart: solo-istiod + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: solo-istiod-charts + namespace: flux-system + version: 1.18.3-eks-a + interval: 1m0s diff --git a/eks-anywhere-common/Testers/Solo.io/solo-istiod-testJob.yaml b/eks-anywhere-common/Testers/Solo.io/solo-istiod-testJob.yaml new file mode 100644 index 00000000..4985f2fb --- /dev/null +++ b/eks-anywhere-common/Testers/Solo.io/solo-istiod-testJob.yaml @@ -0,0 +1,29 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: solo-istiod-health-test + namespace: istio-system +spec: + schedule: "10 10 * * *" + jobTemplate: + spec: + template: + spec: + containers: + - name: solo-istiod-healthtest + image: 'alpine/k8s:1.26.2' + imagePullPolicy: Always + command: + - /bin/run-functional-tests.sh + volumeMounts: + - name: functional-tests-volume + mountPath: /bin/run-functional-tests.sh + readOnly: true + subPath: run-functional-tests.sh + volumes: + - name: functional-tests-volume + configMap: + defaultMode: 0700 + name: tetsjob-script + restartPolicy: Never + \ No newline at end of file diff --git a/eks-anywhere-common/Testers/Solo.io/solo-istiod-testjob-script.yaml b/eks-anywhere-common/Testers/Solo.io/solo-istiod-testjob-script.yaml new file mode 100644 index 00000000..9673913f --- /dev/null +++ b/eks-anywhere-common/Testers/Solo.io/solo-istiod-testjob-script.yaml @@ -0,0 +1,142 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: tetsjob-script + namespace: istio-system +data: + run-functional-tests.sh: |- + #!/bin/sh + + # Cleanup function to remove resources + cleanup() { + echo "Cleaning up resources..." + kubectl delete gateway httpbin-gateway -n istio-system + kubectl delete deployment custom-ingressgateway -n istio-system + # Any additional cleanup commands go here + echo "Cleanup completed." + } + + # Trap statement to ensure cleanup runs on exit of the script + trap cleanup EXIT + + + error_exit() + { + echo "Test Failed: $1" 1>&2 + exit 1 + } + + deploy_custom_gateway() { + # Create a custom Istio ingress gateway + cat <