Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AppProtect gRPC automation tests #1603

Merged
merged 10 commits into from
Jun 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/data/appprotect/appprotect-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ metadata:
name: appprotect-secret
type: kubernetes.io/tls
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMakNDQWhZQ0NRREFPRjl0THNhWFdqQU5CZ2txaGtpRzl3MEJBUXNGQURCYU1Rc3dDUVlEVlFRR0V3SlYKVXpFTE1Ba0dBMVVFQ0F3Q1EwRXhJVEFmQmdOVkJBb01HRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MApaREViTUJrR0ExVUVBd3dTWTJGbVpTNWxlR0Z0Y0d4bExtTnZiU0FnTUI0WERURTRNRGt4TWpFMk1UVXpOVm9YCkRUSXpNRGt4TVRFMk1UVXpOVm93V0RFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ01Ba05CTVNFd0h3WUQKVlFRS0RCaEpiblJsY201bGRDQlhhV1JuYVhSeklGQjBlU0JNZEdReEdUQVhCZ05WQkFNTUVHTmhabVV1WlhoaApiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDcDZLbjdzeTgxCnAwanVKL2N5ayt2Q0FtbHNmanRGTTJtdVpOSzBLdGVjcUcyZmpXUWI1NXhRMVlGQTJYT1N3SEFZdlNkd0kyaloKcnVXOHFYWENMMnJiNENaQ0Z4d3BWRUNyY3hkam0zdGVWaVJYVnNZSW1tSkhQUFN5UWdwaW9iczl4N0RsTGM2SQpCQTBaalVPeWwwUHFHOVNKZXhNVjczV0lJYTVyRFZTRjJyNGtTa2JBajREY2o3TFhlRmxWWEgySTVYd1hDcHRDCm42N0pDZzQyZitrOHdnemNSVnA4WFprWldaVmp3cTlSVUtEWG1GQjJZeU4xWEVXZFowZXdSdUtZVUpsc202OTIKc2tPcktRajB2a29QbjQxRUUvK1RhVkVwcUxUUm9VWTNyemc3RGtkemZkQml6Rk8yZHNQTkZ4MkNXMGpYa05MdgpLbzI1Q1pyT2hYQUhBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFLSEZDY3lPalp2b0hzd1VCTWRMClJkSEliMzgzcFdGeW5acS9MdVVvdnNWQTU4QjBDZzdCRWZ5NXZXVlZycTVSSWt2NGxaODFOMjl4MjFkMUpINnIKalNuUXgrRFhDTy9USkVWNWxTQ1VwSUd6RVVZYVVQZ1J5anNNL05VZENKOHVIVmhaSitTNkZBK0NuT0Q5cm4yaQpaQmVQQ0k1ckh3RVh3bm5sOHl3aWozdnZRNXpISXV5QmdsV3IvUXl1aTlmalBwd1dVdlVtNG52NVNNRzl6Q1Y3ClBwdXd2dWF0cWpPMTIwOEJqZkUvY1pISWc4SHc5bXZXOXg5QytJUU1JTURFN2IvZzZPY0s3TEdUTHdsRnh2QTgKN1dqRWVxdW5heUlwaE1oS1JYVmYxTjM0OWVOOThFejM4Zk9USFRQYmRKakZBL1BjQytHeW1lK2lHdDVPUWRGaAp5UkU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcWVpcCs3TXZOYWRJN2lmM01wUHJ3Z0pwYkg0N1JUTnBybVRTdENyWG5LaHRuNDFrCkcrZWNVTldCUU5semtzQndHTDBuY0NObzJhN2x2S2wxd2k5cTIrQW1RaGNjS1ZSQXEzTVhZNXQ3WGxZa1YxYkcKQ0pwaVJ6ejBza0lLWXFHN1BjZXc1UzNPaUFRTkdZMURzcGRENmh2VWlYc1RGZTkxaUNHdWF3MVVoZHErSkVwRwp3SStBM0kreTEzaFpWVng5aU9WOEZ3cWJRcCt1eVFvT05uL3BQTUlNM0VWYWZGMlpHVm1WWThLdlVWQ2cxNWhRCmRtTWpkVnhGbldkSHNFYmltRkNaYkp1dmRySkRxeWtJOUw1S0Q1K05SQlAvazJsUkthaTAwYUZHTjY4NE93NUgKYzMzUVlzeFR0bmJEelJjZGdsdEkxNURTN3lxTnVRbWF6b1Z3QndJREFRQUJBb0lCQVFDUFNkU1luUXRTUHlxbApGZlZGcFRPc29PWVJoZjhzSStpYkZ4SU91UmF1V2VoaEp4ZG01Uk9ScEF6bUNMeUw1VmhqdEptZTIyM2dMcncyCk45OUVqVUtiL1ZPbVp1RHNCYzZvQ0Y2UU5SNThkejhjbk9SVGV3Y290c0pSMXBuMWhobG5SNUhxSkpCSmFzazEKWkVuVVFmY1hackw5NGxvOUpIM0UrVXFqbzFGRnM4eHhFOHdvUEJxalpzVjdwUlVaZ0MzTGh4bndMU0V4eUZvNApjeGI5U09HNU9tQUpvelN0Rm9RMkdKT2VzOHJKNXFmZHZ5dGdnOXhiTGFRTC94MGtwUTYyQm9GTUJEZHFPZVBXCktmUDV6WjYvMDcvdnBqNDh5QTFRMzJQem9idWJzQkxkM0tjbjMyamZtMUU3cHJ0V2wrSmVPRmlPem5CUUZKYk4KNHFQVlJ6NWhBb0dCQU50V3l4aE5DU0x1NFArWGdLeWNrbGpKNkY1NjY4Zk5qNUN6Z0ZScUowOXpuMFRsc05ybwpGVExaY3hEcW5SM0hQWU00MkpFUmgySi9xREZaeW5SUW8zY2czb2VpdlVkQlZHWTgrRkkxVzBxZHViL0w5K3l1CmVkT1pUUTVYbUdHcDZyNmpleHltY0ppbS9Pc0IzWm5ZT3BPcmxEN1NQbUJ2ek5MazRNRjZneGJYQW9HQkFNWk8KMHA2SGJCbWNQMHRqRlhmY0tFNzdJbUxtMHNBRzR1SG9VeDBlUGovMnFyblRuT0JCTkU0TXZnRHVUSnp5K2NhVQprOFJxbWRIQ2JIelRlNmZ6WXEvOWl0OHNaNzdLVk4xcWtiSWN1YytSVHhBOW5OaDFUanNSbmU3NFowajFGQ0xrCmhIY3FIMHJpN1BZU0tIVEU4RnZGQ3haWWRidUI4NENtWmlodnhicFJBb0dBSWJqcWFNWVBUWXVrbENkYTVTNzkKWVNGSjFKelplMUtqYS8vdER3MXpGY2dWQ0thMzFqQXdjaXowZi9sU1JxM0hTMUdHR21lemhQVlRpcUxmZVpxYwpSMGlLYmhnYk9jVlZrSkozSzB5QXlLd1BUdW14S0haNnpJbVpTMGMwYW0rUlk5WUdxNVQ3WXJ6cHpjZnZwaU9VCmZmZTNSeUZUN2NmQ21mb09oREN0enVrQ2dZQjMwb0xDMVJMRk9ycW40M3ZDUzUxemM1em9ZNDR1QnpzcHd3WU4KVHd2UC9FeFdNZjNWSnJEakJDSCtULzZzeXNlUGJKRUltbHpNK0l3eXRGcEFOZmlJWEV0LzQ4WGY2ME54OGdXTQp1SHl4Wlp4L05LdER3MFY4dlgxUE9ucTJBNWVpS2ErOGpSQVJZS0pMWU5kZkR1d29seHZHNmJaaGtQaS80RXRUCjNZMThzUUtCZ0h0S2JrKzdsTkpWZXN3WEU1Y1VHNkVEVXNEZS8yVWE3ZlhwN0ZjanFCRW9hcDFMU3crNlRYcDAKWmdybUtFOEFSek00NytFSkhVdmlpcS9udXBFMTVnMGtKVzNzeWhwVTl6WkxPN2x0QjBLSWtPOVpSY21Vam84UQpjcExsSE1BcWJMSjhXWUdKQ2toaVd4eWFsNmhZVHlXWTRjVmtDMHh0VGwvaFVFOUllTktvCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJakNDQWdvQ0NRQ0pqcjBWaG5mTFpEQU5CZ2txaGtpRzl3MEJBUXNGQURCVE1Rc3dDUVlEVlFRR0V3SlYKVXpFTE1Ba0dBMVVFQ0F3Q1EwRXhGakFVQmdOVkJBY01EVk5oYmlCR2NtRnVZMmx6WTI4eEh6QWRCZ05WQkFNTQpGbUZ3Y0hCeWIzUmxZM1F1WlhoaGJYQnNaUzVqYjIwd0hoY05NakV3TmpBeU1ERTFOVEkxV2hjTk16RXdOVE14Ck1ERTFOVEkxV2pCVE1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQXdDUTBFeEZqQVVCZ05WQkFjTURWTmgKYmlCR2NtRnVZMmx6WTI4eEh6QWRCZ05WQkFNTUZtRndjSEJ5YjNSbFkzUXVaWGhoYlhCc1pTNWpiMjB3Z2dFaQpNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURsc2dHc3pXcDNwRllyY0NNZlpTSDBsYnZ5Cnk5MWJJYjhLQ3JhUG5vUTBGdjZneFNmWGtlTVI3dHRHRVI2TTZJdGVKR3hsQTNDS3pESUFPWEtjMHFvTER0Z2YKSUdEQmdWa3dIbGZSa1pld1dIdW51MVU3UmxqTVpvMGVsQUQ0YzVtVDVIV1EvRDF5YmJIR2dCQ2JLR0tZQlM1LwpISXdlb05zZVJpREY3SVpVRUxyak8rdUVHMHA0TnJublAvN1V4aGwrZEd1VXN2ZkdiZERzTnBrYUpzcDlyRDZMCjNrRVJvdkpveDJaV0Q2alkxdisyeGpqTVlCaTFlV2xTQkFHSWZzYVgyUmhXRFM0V0lSS2xBY2txSmgxMkJPTGkKMU12SnJtSEdRVXVCK3lRakc0KzdUdkhPQ1U3OVZHYkRwdnRBd280d2dMV1RNWmRzNG1UNTJoVGFXUXlGQWdNQgpBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQU1EUmlxSzJtbGtLSTdKbFVZRjFHRzNveForZmpaUkdPU2s5CkJnWTNieXBUREQwU2QwVHJDUlZPN1ZXS3JhaU5uK2tDQkgwTEFsRHo0QWZ1QTJTRzhVZzJSVVpXcjhwSVBxRGkKdXhmZEl2SjFaTW9oRjlzWnhPL3d1K0tlbVg5M0hzTHlyMlNwQkx5YllYYlRKOFQ4WVp4L2FEZWpBOG44N2g5UAoxNUV4TTV0NFlZZ1h6NkdSRHJvRDVWbkVRbGRna29YbVk1WlQyT3hlb0JWM0FDcVNrOFZIdCswd05TTnd1dEVZCnRzSVQzY25VK0lpWFR3MHNpWTdaMnpscEFyYXYybjFLT2JkZjhkU1BvdFNGbjhFa045OEdoT1RWNG84QitudUQKMTJlb3pOM2VtMm5IakdWbzZiaDI0RnhNa0NGZ1RoVUhtU0RwaGFETVdjQkFmb015RDYwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRGxzZ0dzeldwM3BGWXIKY0NNZlpTSDBsYnZ5eTkxYkliOEtDcmFQbm9RMEZ2Nmd4U2ZYa2VNUjd0dEdFUjZNNkl0ZUpHeGxBM0NLekRJQQpPWEtjMHFvTER0Z2ZJR0RCZ1Zrd0hsZlJrWmV3V0h1bnUxVTdSbGpNWm8wZWxBRDRjNW1UNUhXUS9EMXliYkhHCmdCQ2JLR0tZQlM1L0hJd2VvTnNlUmlERjdJWlVFTHJqTyt1RUcwcDROcm5uUC83VXhobCtkR3VVc3ZmR2JkRHMKTnBrYUpzcDlyRDZMM2tFUm92Sm94MlpXRDZqWTF2KzJ4ampNWUJpMWVXbFNCQUdJZnNhWDJSaFdEUzRXSVJLbApBY2txSmgxMkJPTGkxTXZKcm1IR1FVdUIreVFqRzQrN1R2SE9DVTc5VkdiRHB2dEF3bzR3Z0xXVE1aZHM0bVQ1CjJoVGFXUXlGQWdNQkFBRUNnZ0VBUE1VaXNsQkttY3JOellKR21Kak9LZ0t2amlZbnMyT3pRbm5oSVJCRVUrKzkKZ0ZXSkcveUtBZ1dhMStmUm1HQXg5ejlWdWtmMXI1TWtxM0NIaFR3ckp1L1BlRFM5eEpSdlAwN1gxeWRZNVp3VApZeVlwLzV1MkJLWWhNZlRnYU50VXg0OExGOGZVamdDOXB4SGMwdUFWYmJqNU8wSVhSRWMwa2NibUJ0ZDBGcXN5Ckh4NjUwYldiSS9WUDVmWWE3ejh2OW5WcmZFMlFkaWczWnVvZUcrZTNWOHY2dXljVmFzZ1pPb2Z1OC9XQXZwSlEKUWdXQW1LNVJqR2sxZkdWMHF5NGY0S0RnK1R4cUV0QWN6bnZMN1V4UmNrT3NiQlpYUWtEM1BOUG43OW1aT016RApxbnhWcTFoOURRVDY5a1pVd3pkUEpZLytRaWc4VDNwUmMwQ0ZoQURNZ1FLQmdRRDN3YkZiRHROQ1VNc0IxUTRvCktuYTNCYzdLT0tiUHVuN0dxbDhFZWhXUllyZm1WdXhYWTNSSTZLMXhFZlMzcjNiRmlCYlZFWi9ybFFrM2kzK3UKaHVtOXRCRHFoZHVpZGEyVU5LRnZ2ZXR3OUdSMkJaNFVXTVpSUDFucCtJY0hqQVRaYXIvRG5hZk9tazhQSzZ6bAo0V3MvdXlONzFXSCthOUVPUWpNMURuVzJwUUtCZ1FEdFZubFNBMWFUdHF4UXZ1aWJ6eVUrYzR3eEswQVo0SHlqCklEc01TbGtFeVpWRXplKzc2YWtTMlpKQVZIRlZPOURXZ0wvTWFBcXdWNHJubnFPYjZ3NERianM2cEU3Wkl2TnkKcGU3R2cvdER0dnZETWZNODlpYmxCUElIbEwyTWU5VjJIWWlVRlRaSHZqaGFlOVRrTXVuMHVPakVQbjE4WlIzbgpnT1FlMFdQNFlRS0JnQWpUeHR6bXIxSTZqTEVaQlRNYktEV25LRkgrS0x0WCtySmJXWjFRT0RxQTJPcUZDRkNvCnczamhpV1J3N2xZcEUwTkFjUWZRWS9GQjB4MCtoQ01VdlhrNzFDcDI4SGRlVi92aTBDbXFDNXh2cUxDbnpKVVAKQUtuZVp2YTJHeUdDdEoyR2R5U2lGbHQvRmZnRloxaWRhblBQMkJqT1pucHBIdjZ5RHg4QnorSGRBb0dBTkFPKwpwUDI4VExVOVFKa0dhNWRUWjBOMWx4VU9nRjFWazM2dDBqeTlFN0tHTjBVVzVFMEtVK3BCQmo0N2RGMmVvRlFwCk5NZ2NoNWM0QnhrYWJFSndtTW5neXpKVllYc3FkWmJ1SksycU5LWDJ1VW5LTURNV1JSejNXamY3N3J6NUJHRG0Kbk9XbE5zWDJuY1lEMjF0Wk1Od1JqMmpPb2FPYmtUQUxUc0cvTWlFQ2dZRUF5aGFEVFh5RnNicEF3bU5yejRuawpoVjVDREVSdnp6MW5NRHp6bTdselhEQkpKZit3Q1VmUnhmY2pSRlV2RWV1cmJ5d2RncForeHBHSkhheE1Pd1FlCk5Bd2RvSjFtbDhHVGozRjYrTUpnZU5CdTgza09abXpXSzQ2MW54NGJhUmplVlBMWTN2WFgvZmVMNi92UnNjQmMKWnpaWkthTVI1REhtU3cwZ3MwSFN1VWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
32 changes: 32 additions & 0 deletions tests/data/appprotect/grpc/grpc-block-saygoodbye.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: appprotect.f5.com/v1beta1
kind: APPolicy
metadata:
name: grpc-block-saygoodbye
spec:
policy:
blocking-settings:
violations:
- name: VIOL_GRPC_METHOD
block: true
alarm: true
applicationLanguage: utf-8
bot-defense:
settings:
isEnabled: false
grpc-profiles:
- associateUrls: true
defenseAttributes:
allowUnknownFields: false
maximumDataLength: "10000"
description: My first profile
idlFiles:
- idlFile:
fileName: autheid.proto
name: gProf1
idl-files:
- isBase64: true
fileName: autheid.proto
contents: Ly8gVGhlIGdyZWV0aW5nIHNlcnZpY2UgZGVmaW5pdGlvbi4KCnN5bnRheCA9ICJwcm90bzMiOwoKcGFja2FnZSBoZWxsb3dvcmxkOwoKc2VydmljZSBHcmVldGVyIHsKICAvLyBTZW5kcyBhIGdyZWV0aW5nCiAgcnBjIFNheUhlbGxvIChIZWxsb1JlcXVlc3QpIHJldHVybnMgKEhlbGxvUmVwbHkpIHt9Cn0KCi8vIFRoZSByZXF1ZXN0IG1lc3NhZ2UgY29udGFpbmluZyB0aGUgdXNlcidzIG5hbWUuCm1lc3NhZ2UgSGVsbG9SZXF1ZXN0IHsKICBzdHJpbmcgbmFtZSA9IDE7Cn0KCi8vIFRoZSByZXNwb25zZSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGdyZWV0aW5ncwptZXNzYWdlIEhlbGxvUmVwbHkgewogIHN0cmluZyBtZXNzYWdlID0gMTsKfQo=
name: valid_string_encoding_policy
template:
name: POLICY_TEMPLATE_NGINX_BASE
32 changes: 32 additions & 0 deletions tests/data/appprotect/grpc/grpc-block-sayhello.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: appprotect.f5.com/v1beta1
kind: APPolicy
metadata:
name: grpc-block-sayhello
spec:
policy:
blocking-settings:
violations:
- name: VIOL_GRPC_METHOD
block: True
alarm: True
applicationLanguage: utf-8
bot-defense:
settings:
isEnabled: false
grpc-profiles:
- associateUrls: true
defenseAttributes:
allowUnknownFields: false
maximumDataLength: "10000"
description: My first profile
idlFiles:
- idlFile:
fileName: autheid.proto
name: gProf1
idl-files:
- isBase64: true
fileName: autheid.proto
contents: Ly8gVGhlIGdyZWV0aW5nIHNlcnZpY2UgZGVmaW5pdGlvbi4KCnN5bnRheCA9ICJwcm90bzMiOwoKcGFja2FnZSBoZWxsb3dvcmxkOwoKc2VydmljZSBHcmVldGVyIHsKICAvLyBTZW5kcyBhIGdyZWV0aW5nCiAgcnBjIFNheUdvb2RieWUgKEhlbGxvUmVxdWVzdCkgcmV0dXJucyAoSGVsbG9SZXBseSkge30KfQoKLy8gVGhlIHJlcXVlc3QgbWVzc2FnZSBjb250YWluaW5nIHRoZSB1c2VyJ3MgbmFtZS4KbWVzc2FnZSBIZWxsb1JlcXVlc3QgewogIHN0cmluZyBuYW1lID0gMTsKfQoKLy8gVGhlIHJlc3BvbnNlIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgZ3JlZXRpbmdzCm1lc3NhZ2UgSGVsbG9SZXBseSB7CiAgc3RyaW5nIG1lc3NhZ2UgPSAxOwp9Cg==
name: valid_string_encoding_policy
template:
name: POLICY_TEMPLATE_NGINX_BASE
25 changes: 25 additions & 0 deletions tests/data/appprotect/grpc/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: appprotect-ingress
annotations:
nginx.org/grpc-services: "grpc-svc"
kubernetes.io/ingress.class: "nginx"
appprotect.f5.com/app-protect-policy: "default/grpc"
appprotect.f5.com/app-protect-enable: "True"
appprotect.f5.com/app-protect-security-log-enable: "True"
appprotect.f5.com/app-protect-security-log: "default/logconf"
appprotect.f5.com/app-protect-security-log-destination: "syslog:server=172.17.0.10:514"
spec:
tls:
- hosts:
- appprotect.example.com
secretName: appprotect-secret
rules:
- host: appprotect.example.com
http:
paths:
- path: /helloworld.Greeter
backend:
serviceName: grpc-svc
servicePort: 50051
7 changes: 7 additions & 0 deletions tests/data/appprotect/grpc/nginx-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-config
namespace: nginx-ingress
data:
http2: "True"
32 changes: 32 additions & 0 deletions tests/data/common/app/grpc/app.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: grpc
spec:
replicas: 1
selector:
matchLabels:
app: greeter
template:
metadata:
labels:
app: greeter
spec:
containers:
- name: greeter
image: nginxkic/test-grpc-server:0.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we publish the sources similarly to how we published the sources for the TCP and UDP servers? so we don't loose it

Copy link
Contributor Author

@vepatel vepatel May 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not too sure about publishing sources for this one as the code isn't written by our team members unlike TCP/UDP server one which @soneillf5 wrote. Also If we're to add source in the tests, i'd prefer adding them to examples/ first.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the case of the backend, it's just a Dockerfile, right? we don't really modify the backend code?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where does the test-grpc-server come from then ?

ports:
- containerPort: 50051
---
apiVersion: v1
kind: Service
metadata:
name: grpc-svc
spec:
ports:
- port: 50051
targetPort: 50051
protocol: TCP
name: grpc
selector:
app: greeter
4 changes: 3 additions & 1 deletion tests/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ urllib3==1.26.5
pytest-html==3.1.1
pytest-profiling==1.7.0
more-itertools==8.8.0
mock==4.0.3
mock==4.0.3
grpcio==1.38.0
grpcio-tools==1.38.0
134 changes: 134 additions & 0 deletions tests/suite/grpc/helloworld_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 48 additions & 0 deletions tests/suite/grpc/helloworld_pb2_grpc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from suite.grpc.helloworld_pb2 import (
HelloRequest,
HelloReply,
)


class GreeterStub(object):
"""The greeting service definition.
"""

def __init__(self, channel):
"""Constructor.
Args:
channel: A grpc.Channel.
"""
self.SayHello = channel.unary_unary(
'/helloworld.Greeter/SayHello',
request_serializer=HelloRequest.SerializeToString,
response_deserializer=HelloReply.FromString,
)


class GreeterServicer(object):
"""The greeting service definition.
"""

def SayHello(self, request, context):
"""Sends a greeting
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')


def add_GreeterServicer_to_server(servicer, server):
rpc_method_handlers = {
'SayHello': grpc.unary_unary_rpc_method_handler(
servicer.SayHello,
request_deserializer=HelloRequest.FromString,
response_serializer=HelloReply.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'helloworld.Greeter', rpc_method_handlers)
server.add_generic_rpc_handlers((generic_handler,))