Enterprise Testing System (#463)
authorDavid Shulman <david.shulman@microsoft.com>
Thu, 5 Dec 2019 23:32:13 +0000 (15:32 -0800)
committerGitHub <noreply@github.com>
Thu, 5 Dec 2019 23:32:13 +0000 (15:32 -0800)
commit24062e30d77e5b0fbc1c3b518bd76a8edee09478
tree94736038083a9edaa675b25aab47b17f6cbeec97
parentbc4fbd2b5027b2f605dd8f352710c2f492b34e91
Enterprise Testing System (#463)

This is the first of several PRs that add Enterprise Scenarios Testing capability to
the repo. This PR focusses on Linux which allows for docker containers to be used
in an enterprise network configuration.

I focussed on 2 workflows: 1) The 'dev' workflow, and 2) The PR/CI workflow. The dev
workflow works well since it's using containers in a docker-compose environment along
with volume mounting your current dev's repo enlistment. The PR/CI workflow gives us
an Azure DevOps pipeline to automate verification.

I still need to work with the infra team to add a real pipeline that will run. I can't
do that until this is merged. In the meantime, I have my own DevOps pipeline that verified this PR.

See: https://dev.azure.com/systemnetncl/Enterprise%20Testing/_build/results?buildId=141

I will be linking a follow-up GitHub issue describing the roadmap for building on this system
including adding Windows environments, NTLM protocol, proxies, and other libraries such as
System.Net.Mail and System.Data.SqlClient. Those libraries also use Negotiate/Kerberos/NTLM
enterprise-oriented protocols.

Contributes to:
https://github.com/dotnet/corefx/issues/41652
https://github.com/dotnet/corefx/issues/41489
https://github.com/dotnet/corefx/issues/36896
https://github.com/dotnet/corefx/issues/30150
https://github.com/dotnet/corefx/issues/24707
https://github.com/dotnet/corefx/issues/10041
https://github.com/dotnet/corefx/issues/6606
https://github.com/dotnet/corefx/issues/6161

* Address PR feedback

* Change pipeline *.yml to only run on selected filepaths for PRs
* Change kdc container Dockerfile to be based on ubuntu:18.04
* Fix typo in README.md

* Update .yml file

* Link (instead of copy) apache kerb module to the right place
23 files changed:
eng/pipelines/libraries/enterprise/linux.yml [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/EnterpriseTestConfiguration.cs [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/README.md [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/run.sh [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/common/krb5.conf [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/docker-compose.yml [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/kadm5.acl [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/kdc.conf [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/run.sh [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/setup-kdc.sh [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/Dockerfile [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/run.sh [new file with mode: 0644]
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/test-webserver.sh [new file with mode: 0644]
src/libraries/System.Net.Http/tests/EnterpriseTests/Configurations.props [new file with mode: 0644]
src/libraries/System.Net.Http/tests/EnterpriseTests/HttpClientAuthenticationTest.cs [new file with mode: 0644]
src/libraries/System.Net.Http/tests/EnterpriseTests/README.md [new file with mode: 0644]
src/libraries/System.Net.Http/tests/EnterpriseTests/System.Net.Http.Enterprise.Tests.csproj [new file with mode: 0644]
src/libraries/System.Net.Security/tests/EnterpriseTests/Configurations.props [new file with mode: 0644]
src/libraries/System.Net.Security/tests/EnterpriseTests/NegotiateStreamLoopbackTest.cs [new file with mode: 0644]
src/libraries/System.Net.Security/tests/EnterpriseTests/README.md [new file with mode: 0644]
src/libraries/System.Net.Security/tests/EnterpriseTests/System.Net.Security.Enterprise.Tests.csproj [new file with mode: 0644]