run.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/usr/bin/env bash
  2. # Copyright 2019 The Kubernetes Authors.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. set -euo pipefail
  16. if ! command -v kind --version &> /dev/null; then
  17. echo "kind is not installed. Use the package manager or visit the official site https://kind.sigs.k8s.io/"
  18. exit 1
  19. fi
  20. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  21. cd $DIR
  22. echo "Kubernetes cluster:"
  23. kubectl get nodes -o wide
  24. echo -e "Granting permissions to e2e service account..."
  25. kubectl create serviceaccount external-secrets-e2e || true
  26. kubectl create clusterrolebinding permissive-binding \
  27. --clusterrole=cluster-admin \
  28. --user=admin \
  29. --user=kubelet \
  30. --serviceaccount=default:external-secrets-e2e || true
  31. echo -e "Granting anonymous access to service account issuer discovery"
  32. kubectl create clusterrolebinding service-account-issuer-discovery-binding \
  33. --clusterrole=system:service-account-issuer-discovery \
  34. --group=system:unauthenticated || true
  35. echo -e "Cleaning cache before running tests"
  36. docker system prune --force
  37. go clean -cache
  38. go clean -modcache
  39. echo -e "Starting the e2e test pod ${E2E_IMAGE_NAME}:${VERSION}"
  40. kubectl run --rm \
  41. --attach \
  42. --restart=Never \
  43. --pod-running-timeout=5m \
  44. --labels="app=eso-e2e,azure.workload.identity/use=true" \
  45. --env="ACK_GINKGO_DEPRECATIONS=2.9.5" \
  46. --env="GINKGO_LABELS=${GINKGO_LABELS:-.*}" \
  47. --env="GCP_SERVICE_ACCOUNT_KEY=${GCP_SERVICE_ACCOUNT_KEY:-}" \
  48. --env="GCP_FED_PROJECT_ID=${GCP_FED_PROJECT_ID:-}" \
  49. --env="GCP_KSA_NAME=${GCP_KSA_NAME:-}" \
  50. --env="GCP_FED_REGION=${GCP_FED_REGION:-}" \
  51. --env="GCP_GKE_CLUSTER=${GCP_GKE_CLUSTER:-}" \
  52. --env="AWS_REGION=${AWS_REGION:-}" \
  53. --env="AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}" \
  54. --env="AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}" \
  55. --env="AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN:-}" \
  56. --env="AWS_SA_NAME=${AWS_SA_NAME:-}" \
  57. --env="AWS_SA_NAMESPACE=${AWS_SA_NAMESPACE:-}" \
  58. --env="TFC_AZURE_CLIENT_ID=${TFC_AZURE_CLIENT_ID:-}" \
  59. --env="TFC_AZURE_CLIENT_SECRET=${TFC_AZURE_CLIENT_SECRET:-}" \
  60. --env="TFC_AZURE_TENANT_ID=${TFC_AZURE_TENANT_ID:-}" \
  61. --env="TFC_VAULT_URL=${TFC_VAULT_URL:-}" \
  62. --env="AKEYLESS_ACCESS_ID=${AKEYLESS_ACCESS_ID:-}" \
  63. --env="AKEYLESS_ACCESS_TYPE=${AKEYLESS_ACCESS_TYPE:-}" \
  64. --env="AKEYLESS_ACCESS_TYPE_PARAM=${AKEYLESS_ACCESS_TYPE_PARAM:-}" \
  65. --env="GITLAB_TOKEN=${GITLAB_TOKEN:-}" \
  66. --env="GITLAB_PROJECT_ID=${GITLAB_PROJECT_ID:-}" \
  67. --env="GITLAB_ENVIRONMENT=${GITLAB_ENVIRONMENT:-}" \
  68. --env="ORACLE_USER_OCID=${ORACLE_USER_OCID:-}" \
  69. --env="ORACLE_TENANCY_OCID=${ORACLE_TENANCY_OCID:-}" \
  70. --env="ORACLE_REGION=${ORACLE_REGION:-}" \
  71. --env="ORACLE_FINGERPRINT=${ORACLE_FINGERPRINT:-}" \
  72. --env="ORACLE_KEY=${ORACLE_KEY:-}" \
  73. --env="SCALEWAY_API_URL=${SCALEWAY_API_URL:-}" \
  74. --env="SCALEWAY_REGION=${SCALEWAY_REGION:-}" \
  75. --env="SCALEWAY_PROJECT_ID=${SCALEWAY_PROJECT_ID:-}" \
  76. --env="SCALEWAY_ACCESS_KEY=${SCALEWAY_ACCESS_KEY:-}" \
  77. --env="SCALEWAY_SECRET_KEY=${SCALEWAY_SECRET_KEY:-}" \
  78. --env="DELINEA_TLD=${DELINEA_TLD:-}" \
  79. --env="DELINEA_URL_TEMPLATE=${DELINEA_URL_TEMPLATE:-}" \
  80. --env="DELINEA_TENANT=${DELINEA_TENANT:-}" \
  81. --env="DELINEA_CLIENT_ID=${DELINEA_CLIENT_ID:-}" \
  82. --env="DELINEA_CLIENT_SECRET=${DELINEA_CLIENT_SECRET:-}" \
  83. --env="SECRETSERVER_USERNAME=${SECRETSERVER_USERNAME:-}" \
  84. --env="SECRETSERVER_PASSWORD=${SECRETSERVER_PASSWORD:-}" \
  85. --env="SECRETSERVER_URL=${SECRETSERVER_URL:-}" \
  86. --env="GRAFANA_URL=${GRAFANA_URL:-}" \
  87. --env="GRAFANA_TOKEN=${GRAFANA_TOKEN:-}" \
  88. --env="VERSION=${VERSION}" \
  89. --env="TEST_SUITES=${TEST_SUITES}" \
  90. --overrides='{ "apiVersion": "v1", "spec":{"serviceAccountName": "external-secrets-e2e"}}' \
  91. e2e --image=${E2E_IMAGE_NAME}:${VERSION}