Update Helm release opentelemetry-operator to v0.75.0 #1964
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: E2E | |
on: | |
workflow_dispatch: | |
inputs: | |
install_monitoring: | |
description: With Monitoring (Grafana backend, Goldilocks, k8s Dashboard, Seq and Jaeger) | |
default: false | |
type: boolean | |
install_mesh : | |
description: With Mesh (LinkerD) | |
default: false | |
type: boolean | |
install_ingress: | |
description: With Ingress (Cert-Manager, Traefik and WhoAmI) | |
default: true | |
type: boolean | |
install_config: | |
description: With Config (Elastic Backend, Redis, Vault, Etc) | |
default: false | |
type: boolean | |
install_identityserver4admin: | |
description: With Auth (IdentityServer4) | |
default: false | |
type: boolean | |
install_keycloak: | |
description: With Auth (Keycloak) | |
default: false | |
type: boolean | |
install_storage: | |
description: With Storage (Minio, Azurite, DockerRegistry UI) | |
default: false | |
type: boolean | |
install_messaging: | |
description: With Messaging (RabbitMq, Localstack, Kafka) | |
default: false | |
type: boolean | |
install_deploy: | |
description: With Deployments (ArgoCD) | |
default: false | |
type: boolean | |
install_DBs: | |
description: With Databases (MySQL, MariaDB, Postgres, MSSQL, MongoDB) | |
default: false | |
type: boolean | |
workflow_call: | |
inputs: | |
install_monitoring: | |
description: With Monitoring (Grafana backend, Goldilocks, k8s Dashboard, Seq and Jaeger) | |
default: false | |
type: boolean | |
install_mesh : | |
description: With Mesh (LinkerD) | |
default: false | |
type: boolean | |
install_ingress: | |
description: With Ingress (Cert-Manager, Traefik and WhoAmI) | |
default: true | |
type: boolean | |
install_config: | |
description: With Config (Elastic Backend, Redis, Vault, Etc) | |
default: false | |
type: boolean | |
install_identityserver4admin: | |
description: With Auth (IdentityServer4) | |
default: false | |
type: boolean | |
install_keycloak: | |
description: With Auth (Keycloak) | |
default: false | |
type: boolean | |
install_storage: | |
description: With Storage (Minio, Azurite, DockerRegistry UI) | |
default: false | |
type: boolean | |
install_messaging: | |
description: With Messaging (RabbitMq, Localstack, Kafka) | |
default: false | |
type: boolean | |
install_deploy: | |
description: With Deployments (ArgoCD) | |
default: false | |
type: boolean | |
install_DBs: | |
description: With Databases (MySQL, MariaDB, Postgres, MSSQL, MongoDB) | |
default: false | |
type: boolean | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, synchronize, reopened] | |
permissions: | |
contents: write | |
jobs: | |
e2e: | |
strategy: | |
matrix: | |
cluster: [k3s, kind] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Add hosts to /etc/hosts | |
run: | | |
sudo echo "127.0.0.1 k8s.local infrastructure.k8s.local traefik.infrastructure.k8s.local traefik.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 jaeger.infrastructure.k8s.local prometheus.infrastructure.k8s.local seq.infrastructure.k8s.local grafana.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 consul.infrastructure.k8s.local vault.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 es.infrastructure.k8s.local kibana.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 login.k8s.local admin.login.k8s.local api.login.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 app1.k8s.local api.app1.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 argo.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 linkerd.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 whoami1.k8s.local whoami2.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 keycloak.k8s.local auth.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 etcd.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 minio.infrastructure.k8s.local console.minio.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 azurite.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 rabbitmq.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 localstack.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 flux.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 kafka.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 mysql.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 mariadb.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 postgres.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 mssql.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 oracle.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 mongo.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 oracle.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 redis.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 goldilocks.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 dashboard.infrastructure.k8s.local" | sudo tee -a /etc/hosts | |
- name: Installing prerequisites | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y apt-transport-https ca-certificates curl wget libnss3-tools cl-base64 | |
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg | |
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list | |
sudo apt update && sudo apt install terraform | |
- name: Install mkcert | |
run: | | |
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" | |
chmod +x mkcert-v*-linux-amd64 | |
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert | |
- name: Generate self-signed certificate | |
run: | | |
cd ./src/terraform | |
chmod +x ./generate_certificate.sh | |
./generate_certificate.sh | |
- name: Create env file for terraform validation | |
run: | | |
touch src/terraform/.env | |
echo GITHUB_OWNER=somebody >> src/terraform/.env | |
echo GITHUB_TOKEN=sometoken >> src/terraform/.env | |
echo ORACLE_EMAIL=someemail >> src/terraform/.env | |
echo ORACLE_PASSWORD=somepassword >> src/terraform/.env | |
echo DD_API_KEY=somekey >> src/terraform/.env | |
echo DD_SITE=somedomain >> src/terraform/.env | |
echo NEW_RELIC_ENDPOINT=someendpoint >> src/terraform/.env | |
echo NEW_RELIC_LICENSE_KEY=somekey >> src/terraform/.env | |
- name: Setup K3S Cluster | |
uses: nolar/setup-k3d-k3s@v1 | |
if: ${{ matrix.cluster == 'k3s' }} | |
with: | |
version: v1.25.4+k3s1 # E.g.: v1.21, v1.21.2, v1.21.2+k3s1 | |
k3d-args: '--config=src/tests/k3s/k3s-devinfra.yaml' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Setup Kind Cluster | |
if: ${{ matrix.cluster == 'kind' }} | |
uses: helm/kind-action@v1.7.0 | |
with: | |
cluster_name: kind-devinfra | |
config: src/tests/kind/kind-config.yaml | |
- name: Testing connectivity | |
run: | | |
kubectl cluster-info | |
kubectl get namespace | |
kubectl get pods --all-namespaces | |
echo "current-context:" $(kubectl config current-context) | |
echo "environment-kubeconfig:" ${KUBECONFIG} | |
kubectl cluster-info dump | |
- name: Terraform apply | |
run: | | |
cd ./src/terraform | |
terraform init --upgrade | |
terraform apply -var-file="../tests/${{ matrix.cluster }}/terraform.tfvars" --auto-approve | |
env: | |
TF_VAR_install_opentelemetry: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_loki: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_promtail: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_tempo: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_prometheus: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_grafana: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_goldilocks: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_vpa: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_dashboard: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_metrics: ${{ inputs.install_monitoring || false }} | |
TF_VAR_install_seq: ${{ inputs.install_monitoring || false}} | |
TF_VAR_install_jaeger: ${{ inputs.install_monitoring || false}} | |
TF_VAR_install_cadvisor: ${{ inputs.install_monitoring || false}} | |
TF_VAR_install_linkerd : ${{ inputs.install_mesh || false}} | |
TF_VAR_install_traefik: ${{ inputs.install_ingress || true}} | |
TF_VAR_install_cert_manager: ${{ inputs.install_ingress || true}} | |
TF_VAR_install_whoami: ${{ inputs.install_ingress || true}} | |
TF_VAR_install_elasticsearch: ${{ inputs.install_config || false}} | |
TF_VAR_install_kibana: ${{ inputs.install_config || false}} | |
TF_VAR_install_redis: ${{ inputs.install_config || false}} | |
TF_VAR_install_vault: ${{ inputs.install_config || false}} | |
TF_VAR_install_etcd: ${{ inputs.install_config || false}} | |
TF_VAR_install_identityserver4admin: ${{ inputs.install_identityserver4admin || false}} | |
TF_VAR_install_keycloak: ${{ inputs.install_keycloak || false}} | |
TF_VAR_install_minio: ${{ inputs.install_storage || false}} | |
TF_VAR_install_azurite: ${{ inputs.install_storage || false}} | |
TF_VAR_install_docker_registry: ${{ inputs.install_storage || false}} | |
TF_VAR_install_rabbitmq: ${{ inputs.install_messaging || false}} | |
TF_VAR_install_localstack: ${{ inputs.install_messaging || false}} | |
TF_VAR_install_kafka: ${{ inputs.install_messaging || false}} | |
TF_VAR_install_argocd: ${{ inputs.install_deploy || false}} | |
TF_VAR_install_flux2: false | |
TF_VAR_install_mysql: ${{ inputs.install_DBs || false}} | |
TF_VAR_install_mariadb: ${{ inputs.install_DBs || false}} | |
TF_VAR_install_postgres: ${{ inputs.install_DBs || false}} | |
TF_VAR_install_mssql: ${{ inputs.install_DBs || false}} | |
TF_VAR_install_mongodb: ${{ inputs.install_DBs || false}} | |
TF_VAR_install_oracle: false | |
- name: Await deployment cert-manager | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_ingress == true }} | |
with: | |
workloads: "" # all | |
namespace: "cert-manager" | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment linkerd | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_mesh == true }} | |
with: | |
workloads: "" # all | |
namespace: "linkerd" | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment traefik | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: always() | |
with: | |
workloads: "" # all | |
namespace: "traefik" | |
timeout: 300 | |
max-restarts: -1 | |
- name: Kubernetes namespace report (traefik) | |
uses: jupyterhub/action-k8s-namespace-report@v1 | |
if: always() | |
with: | |
namespace: traefik | |
- name: Await deployment whoami | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
with: | |
workloads: "" # all | |
namespace: "whoami" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Kubernetes namespace report (whoami) | |
uses: jupyterhub/action-k8s-namespace-report@v1 | |
if: always() | |
with: | |
namespace: whoami | |
- name: Await deployment etcd | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_config == true }} | |
with: | |
workloads: "" # all | |
namespace: "etcd" # default | |
timeout: 300 | |
max-restarts: -1 | |
# - name: Await deployment vault | |
# uses: jupyterhub/action-k8s-await-workloads@v2 | |
# if: ${{ inputs.install_config == true }} | |
# with: | |
# workloads: "" # all | |
# namespace: "vault" # default | |
# timeout: 300 | |
# max-restarts: -1 | |
- name: Await deployment redis | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_config == true }} | |
with: | |
workloads: "" # all | |
namespace: "redis" # default | |
timeout: 300 | |
max-restarts: -1 | |
# - name: Await deployment elasticsearch | |
# uses: jupyterhub/action-k8s-await-workloads@v2 | |
# if: ${{ inputs.install_config == true }} | |
# with: | |
# workloads: "" # all | |
# namespace: "elasticsearch" # default | |
# timeout: 300 | |
# max-restarts: -1 | |
- name: Await deployment azurite | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_storage == true }} | |
with: | |
workloads: "" # all | |
namespace: "azurite" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment docker_registry | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_storage == true }} | |
with: | |
workloads: "" # all | |
namespace: "default" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment minio | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_storage == true }} | |
with: | |
workloads: "" # all | |
namespace: "minio" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment kafka | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_messaging == true }} | |
with: | |
workloads: "" # all | |
namespace: "kafka" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment localstack | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_messaging == true }} | |
with: | |
workloads: "" # all | |
namespace: "localstack" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment rabbitmq | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_messaging == true }} | |
with: | |
workloads: "" # all | |
namespace: "rabbitmq" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment argocd | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_deploy == true }} | |
with: | |
workloads: "" # all | |
namespace: "argocd" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment mysql | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_DBs == true }} | |
with: | |
workloads: "" # all | |
namespace: "mysql" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment postgres | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_DBs == true }} | |
with: | |
workloads: "" # all | |
namespace: "postgres" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment mariadb | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_DBs == true }} | |
with: | |
workloads: "" # all | |
namespace: "mariadb" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment mssql | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_DBs == true }} | |
with: | |
workloads: "" # all | |
namespace: "mssql" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment mongodb | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_DBs == true }} | |
with: | |
workloads: "" # all | |
namespace: "mongodb" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment identityserver4admin | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_identityserver4admin == true }} | |
with: | |
workloads: "" # all | |
namespace: "identityserver4" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment keycloak | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_keycloak == true }} | |
with: | |
workloads: "" # all | |
namespace: "keycloak" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment loki | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "loki" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment tempo | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "tempo" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment cadvisor | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "cadvisor" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment prometheus | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "prometheus" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment opentelemetry | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "opentelemetry" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment goldilocks | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "goldilocks" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment vpa | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "vpa" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment metrics | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "kube-system" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment seq | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "seq" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Await deployment jaeger | |
uses: jupyterhub/action-k8s-await-workloads@v2 | |
if: ${{ inputs.install_monitoring == true }} | |
with: | |
workloads: "" # all | |
namespace: "jaeger" # default | |
timeout: 300 | |
max-restarts: -1 | |
- name: Run plain curl | |
run: | | |
curl https://whoami1.k8s.local | |
- name: Run newman tests | |
uses: matt-ball/newman-action@master | |
with: | |
collection: ./src/tests/k8s-dev-infrastructure.postman_collection.json | |
environment: ./src/tests/k8s.local.postman_environment.json | |
- name: Terraform destroy | |
run: | | |
cd ./src/terraform | |
terraform destroy -var-file="../tests/${{ matrix.cluster }}/terraform.tfvars" --auto-approve |