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

Functional and Declarative BDD Testing Examples #62

Closed
leefaus opened this issue Sep 15, 2020 · 12 comments
Closed

Functional and Declarative BDD Testing Examples #62

leefaus opened this issue Sep 15, 2020 · 12 comments
Assignees
Labels
bdd Items related to BDD activities

Comments

@leefaus
Copy link

leefaus commented Sep 15, 2020

Feature Request

Description of Problem:

When writing tests for IaC solutions, I want to have the ability to use standard language conventions that already exist in other languages so I can reuse my knowledge and best practices as part of the solution.

Potential Solutions:

Using Pulumi would allow us to use common conventions that we already know with languages like Typescript and Go with Gherkin and BDD. There are already existing documented approaches to using industry standard frameworks with Pulumi like Typescript and Mocha.

This is an alternative to using specific testing frameworks that are IaC implementation specific and require learning a new framework.

@mcleo-d
Copy link
Member

mcleo-d commented Oct 23, 2020

Hi @leefaus

Please note this issue was mentioned at #77 with the following investigation action taken ...

@eddie-knight to form an opinion and report the viability of Pulumi and BDD Tests #62 including @leefaus & @alfredtommy

Cheers 🚀 🚀 🚀

@eddie-knight
Copy link
Contributor

  1. Pulumi is very friendly for a developer's mindset (This from a Citihubber who prefers using Pulumi after using each technology on different projects)
  2. Terraform is designed for a more "human readable" approach that infrastructure engineers tend to prefer (This from multiple Citihubbers who use Terraform)
  3. Terraform is familiar for most (if not all) of our bank clients, who use it extensively
  4. Most of our clients have a strong Java development base, so many of their contributors would need to learn a new language to use Pulumi- which reduces the benefit of not needing to learn Terraform
  5. Terraform CDK provides a similar solution as Pulumi; it currently supports Python and Typescript
  6. Terratest and other ecosystem projects help fill in many of the gaps in "vanilla" Terraform that Pulumi seeks to resolve

In sum, if your target audience is developers who prefer to use one of the four supported Pulumi languages, there is benefit in taking that route. If you have a more generalized audience including Java developers and cloud infrastructure engineers, it will be profitable to use Terraform instead.

As an aside to something that may not have been discussed yet... I would suggest that Pulumi and Terraform not be provided as "options" within the project, as the perceived complexity could cause "analysis paralysis" and become a deterrent to any newcomers who are exploring the project.

@mcleo-d
Copy link
Member

mcleo-d commented Nov 18, 2020

Hi @leefaus and @eddie-knight,

During Cloud Service Certification tomorrow #79 we'll be pressing ahead with a review of the CSC Kanban Board, which means it would be great if you could attend to give an overview of work happening (or what you need to unblock and move forward) on the items below.

Please note the comment by @eddie-knight who has given feedback - #62 (comment)

Feel free to own the actions and call for support if needed.

Speak soon,

@mcleo-d

@leefaus leefaus changed the title Pulumi and BDD Tests Functional versus Declarative BDD Testing Examples Nov 19, 2020
@adamj-codethink
Copy link

adamj-codethink commented Nov 19, 2020

I was going to suggest a middle ground approach on the call, but i think we ran over.

But at Codethink we have used Jsonnet to abstract out the terraform modules, making it easier to read/test you can see some examples here.

@mcleo-d
Copy link
Member

mcleo-d commented Nov 20, 2020

@adamj-codethink - Great suggestion. Feel free to coordinate with @leefaus who is the owner of this issue 👍

@mcleo-d
Copy link
Member

mcleo-d commented Nov 20, 2020

@leefaus - Can you update the objectives and acceptance criteria of this issue so we know what to deliver back to the CSC project? The following are extracts from the 19th November CSC project meeting #79 to help.

  1. Evaluate and describe the deltas between Terraform and Pulumi to provide Recommended and Alternative scenarios depending on cloud team capabilities.

  2. Describe the differences between Functional versus Declarative BDD testing to enable internal team discussions for the purpose of providing feedback to Cloud Service Certification. Examples are also welcome.

@mcleo-d
Copy link
Member

mcleo-d commented Nov 26, 2020

Group Discussion : CIS Benchmarks, BDD Testing and Tools Provisioning

@mcleo-d mcleo-d changed the title Functional versus Declarative BDD Testing Examples Functional and Declarative BDD Testing Examples Dec 3, 2020
@mcleo-d mcleo-d moved this from Prioritised to In progress in Compliant Financial Infrastructure Dec 17, 2020
@mcleo-d mcleo-d added the bdd Items related to BDD activities label Feb 12, 2021
@mcleo-d mcleo-d moved this from In progress to Sprint 1 - 25th March (Sprint Start) to 22nd April (Sprint End) in Compliant Financial Infrastructure Mar 25, 2021
@mcleo-d mcleo-d moved this from Sprint 1 - 25th March (Start) to 22nd April (End) to Sprint 2 - 22nd April to ... in Compliant Financial Infrastructure Apr 22, 2021
@mcleo-d
Copy link
Member

mcleo-d commented Jun 11, 2021

Hi @leefaus and @eddie-knight,

I have extended CSC Sprint 2 until 17th June '21 due to team member annual leave and have added this item to the #127 agenda to discuss in relation to completion and Sprint 3.

It would be great to talk through if we can close this issue and create individual issues for Probr and conftest on the #127 call?

Cheers,

James 🚀

@mcleo-d mcleo-d moved this from Sprint 2 - 6th May to 17th June '21 to Sprint 3 - 17th June to 15th July '21 in Compliant Financial Infrastructure Jun 17, 2021
@eddie-knight
Copy link
Contributor

I suggest we close this issue as it is covered by individual action items #117, #124, and #128

@mcleo-d
Copy link
Member

mcleo-d commented Jul 1, 2021

@leefaus - The Armory CCLA is now signed and you have been added to the FINOS CLA Bot. You are also free to move forward according to the following comment ... #119 (comment)

cc @eddie-knight

@mcleo-d
Copy link
Member

mcleo-d commented Jul 15, 2021

@leefaus - The CSC project moved to backlog at the end of Sprint 3 #131

@leefaus to decide whether to bring into Sprint 4 https://github.com/orgs/finos/projects/1#column-15157368

@mcleo-d mcleo-d moved this from Sprint 3 - 17th June to 15th July '21 to Prioritised in Compliant Financial Infrastructure Jul 15, 2021
@mcleo-d
Copy link
Member

mcleo-d commented Feb 9, 2022

Closed issue as moved forward with OC-CDMC

@mcleo-d mcleo-d closed this as completed Feb 9, 2022
Compliant Financial Infrastructure automation moved this from Prioritised to Done Feb 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bdd Items related to BDD activities
Projects
Archived in project
Development

No branches or pull requests

4 participants