|
1 | | -# mapt (Multi Architecture Provisionig Tool) |
| 1 | +#  Multi Architecture Provisioning Tool |
2 | 2 |
|
3 | | -Mapt is a swiss army knife for provisioning environments, it could be used across multiple CI/CD systems: |
| 3 | + |
4 | 4 |
|
5 | | -* GitHub Actions: It is possible to spin the target machines as self-hosted runners on your GitHub repo to make use of them within actions. |
6 | | -* Tekton: Each target environment offered has its own tekton task spec which could be used as an external spec on tekton (with git resolver or even as a bundle) |
7 | | -* Run from anywhere: mapt functionality is offered as an OCI image, as so it allows to create environment from almost everywhere as long as you have a container runtime. |
| 5 | +Mapt is a swiss army knife for provisioning environments, the project is focused on cover 3 main purposes: |
8 | 6 |
|
9 | | -Also it includes out of the box some optimizations around provisioning: |
| 7 | +* Offer a set of target environments / services with different topologies across multiple cloud providers. |
| 8 | +* Implement best practices leading to increase cost savings, speed up times and security concerns. |
| 9 | +* Easily integrate targets with different CI/CD systems or with local envs to facilitate developers testing experience. |
10 | 10 |
|
11 | | -* Spot price option which allows to find the best option for the target machine on any location across the target provider. |
12 | | -* Implement optimization around boot time to reduce the amount of time required to spin the machines (i.e. pre created snapshots or change root volumes) |
| 11 | +### Instances |
13 | 12 |
|
14 | | -About the target environments offered it is not limited to a single machine or service but it takes care of the full infra allowing to request complex topologies: |
| 13 | +Mapt offers a set of instances categorize by the OS, instances can benefit from spot module which will allocate the machine on a region with a good relationship beetween cost / availability. Also and depending on the type of instances it will use specific best practices to boost the provisioning time (i.e Fast Launch, Root Volume Replacement, ...). |
15 | 14 |
|
16 | | -* Airgap |
17 | | -* Proxy (Coming...) |
18 | | -* VPN emulation (Coming... ) |
19 | | -* Domain Controller integration (Coming... ) |
| 15 | +Instances can be wrapped on specific topologies like airgap, in this case mapt will set the target isolated and will create a bastion to allow access to it. |
20 | 16 |
|
21 | | - |
22 | | - |
| 17 | +Instances can also define a timeout to avoid leftovers in case destoy operation is missing. Using this approach mapt will be execute as an unateneded execution using servless technologies. |
23 | 18 |
|
24 | | -## Supported environments |
25 | | - |
26 | | -### Virtual Machines |
27 | | - |
28 | | -| Platform | Archs | Provider | Type | Information | Tekton |
29 | | -| -------------- | ------------- | ------------- | ------------- | ---------------------------- | -------------------------------------------- |
30 | | -| Mac | x86, M1, M2 | AWS | Baremetal | [info](docs/aws/mac.md) | [task](tkn/infra-aws-mac.yaml) |
31 | | -| Windows Server | x86 | AWS | Baremetal | [info](docs/aws/windows.md) | [task](tkn/infra-aws-windows-server.yaml) |
32 | | -| Windows Desktop| x86 | Azure | Virtualized | [info](docs/azure/windows.md)| [task](tkn/infra-azure-windows-desktop.yaml) |
33 | | -| RHEL | x86, arm64 | AWS | Customizable | [info](docs/aws/rhel.md) | [task](tkn/infra-aws-rhel.yaml) |
34 | | -| RHEL | x86, arm64 | Azure | Virtualized | [info](docs/azure/rhel.md) | [task](tkn/infra-azure-rhel.yaml) |
35 | | -| Fedora | x86, arm64 | AWS | Customizable | [info](docs/aws/fedora.md) | [task](tkn/infra-aws-fedora.yaml) |
36 | | -| Fedora | x86, arm64 | Azure | Customizable | [info](docs/azure/fedora.md) | [task](tkn/infra-azure-fedora.yaml) |
37 | | -| Ubuntu | x86 | Azure | Virtualized | [info](docs/azure/ubuntu.md) | - |
| 19 | +[MacOS](docs/aws/mac.md)-[Windows Server](docs/aws/windows.md)-[Windows Desktop](docs/azure/windows.md)-[RHEL](docs/aws/rhel.md)-[Fedora](docs/azure/fedora.md)-[Ubuntu](docs/azure/ubuntu.md) |
38 | 20 |
|
39 | 21 | ### Services |
40 | 22 |
|
41 | | -| Service | Provider | Information | Tekton |
42 | | -| -------------- | ------------- | ------------- | ---------------------------- | |
43 | | -| AKS | Azure | [info](docs/azure/aks.md) | [task](tkn/infra-azure-aks.yaml) |
44 | | -| Mac-pool | AWS | [info](docs/aws/mac-pool.md) | - |
| 23 | +Mapt offers some managed services boosted with some of the features from the instances offerings (i.e spot) and also create some ad hoc services on top the instances offerings to improve reutilization of instances when there is no easy way to do it (i.e. Mac-Pool). |
45 | 24 |
|
46 | | -## CI/CD integrations |
| 25 | +[AKS](docs/azure/aks.md)-[Mac-Pool](docs/aws/mac-pool.md) - [OpenShift-SNC](docs/aws/openshift-snc.md) - [Kind](docs/aws/openshift-snc.md) |
47 | 26 |
|
48 | | -### GitHub Self hosted runner |
49 | 27 |
|
50 | | -`mapt` can setup a deployed machine as a Self Hosted runner on most of the Platform and Provider combinations |
51 | | -it supports. |
| 28 | +### Integrations |
52 | 29 |
|
53 | | -Use the following flags with `mapt <provider> <platform> create` command: |
| 30 | +Currently each target offered by Mapt can be added as: |
54 | 31 |
|
55 | | -``` |
56 | | ---install-ghactions-runner <bool> Install and setup Github Actions runner in the instance |
57 | | ---ghactions-runner-name <string> Name for the Github Actions Runner |
58 | | ---ghactions-runner-repo <string> Full URL of the repository where the Github Actions Runner should be registered |
59 | | ---ghactions-runner-token <string> Token needed for registering the Github Actions Runner token |
60 | | -``` |
| 32 | +* [Github Self Hosted Runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners) |
| 33 | +* [Cirrus Persistent Worker](https://cirrus-ci.org/guide/persistent-workers/) |
61 | 34 |
|
| 35 | +And [Tekton taks](tkn) are offered to dynamically provision the remote target to use within tekton pipelines |
0 commit comments