Giter VIP home page Giter VIP logo

infrastructure's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar lukeharjulin avatar sesispla avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

infrastructure's Issues

Improve unit testing capabilities

The current unit testing approach doesn't support evaluating Pulumi values.

This was due to a Pulumi limitation (or lack of documentation) on how Output<T> values could be evaluated.

As per this Pulumi documentation, looks like now Pulumi allows the evaluation of Outputs and is now possible to create more comprehensive Unit Tests:

It requires of a Extension method:

public static class TestingExtensions
{
    public static Task<T> GetValueAsync<T>(this Output<T> output)
    {
        var tcs = new TaskCompletionSource<T>();
        output.Apply(v => { tcs.SetResult(v); return v; });
        return tcs.Task;
    }
}

And now we can evaluate Output values:

[Fact]
public async Task ResourceGroupHasEnvironmentTag()
{
    var resources = await TestAsync();
    var resourceGroup = resources.OfType<ResourceGroup>().First();

    var tags = await resourceGroup.Tags.GetValueAsync();
    tags.Should().NotBeNull("Tags must be defined");
    tags.Should().ContainKey("Environment");
}

Add Azure Storage support

We need to provide basic support to Azure Storage, including

  • Tiers
  • Kinds
  • Public/Private
  • VNET Service Endpoints

Add Azure Networking support

Add Azure Networking support, including:

  • Network Security Groups
  • Security Rules
  • Network Interfaces
  • Application Security Groups

All these networking extensions should support the standard naming and tagging strategy for Stize

Add code coverage

We currently have some quality metrics using codacy, but we are still missing code coverage, which definitely help us check how thoroughly tested our code is.

We need to complete the setup to generate and push code coverage information to codacy.

The codacy documentation recommends using open cover or dotcover for this, but unfortunately it doesn't work with Unix systems, which breaks our multi-platform support.

Instead, we should use Coverlet and generate the code coverage reports in opencover format.

  • Add coverlet to the project and make sure it is able to generate code coverage information in opencover format
  • Update the cd pipeline to generate the code coverage information and push result to Codacy
  • Add the Codacy API key to the Github Actions environment (Request support to one of the project owners)

Fixing migration issues from moving to new Pulumi version

Pulumi migration issues:
Mock methods NewResourceAsync() and CallAsync have been updated to take new parameters.

This means the RunAsync() method in the Testing.cs class needs updating and ALL of the mocks need updating.

I've assigned myself this task, but I wanted to let people know that Mocks will be formatted slightly differently from now on.

See link for more information on the update.

Add Azure SQL Server Database Active geo-replication support

We have to add active geo-replication support.

Active geo-replication happens at database level. I would start focusing on the database-side of things (meaning users should create two SQL Servers manually). Once the geo-replication is working we can think if we add some extension methods that automatically creates a second SQL Server and adds the database into it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.