๐๏ธ CraftPort: A Cross-Platform Networking Tool
Simplifying Multi-Cloud Resource Management, One Step at a Time
Managing networking resources across different cloud providers can be complex and time-consuming. In multi-cloud environments, each provider offers unique tools and interfaces, resulting in a fragmented experience for users. Enter CraftPort, an exploratory project that seeks to simplify and unify cloud networking resource management.
The Challenge: Fragmented Multi-Cloud Management
In cloud computing, companies often utilize multiple providers like Azure, AWS, and others to meet their diverse needs. However, each cloud provider has its own tools and interfaces. This fragmentation can lead to inefficiencies, increased complexity, and a higher likelihood of errors in managing networking resources.
CraftPort's Vision
CraftPort sets out to explore a unified approach to cloud networking resource management. Our vision is to offer a consistent, streamlined experience, bridging the gap between various cloud providers. This means providing users with a single command center to manage their cloud networking resources, regardless of their provider.
Goal: Simplify, Standardize, and Enhance Efficiency
With CraftPort, the goal is to alleviate the challenges associated with multi-cloud networking management. We understand the frustration and productivity loss caused by fragmented tools and inconsistent configurations. To address these issues, we aim to achieve the following:
Centralized Management: Say goodbye to the hassle of switching between different cloud provider tools. CraftPort provides a unified interface for managing your cloud networking resources efficiently.
Consistent Configurations: Ensure compliance and minimize errors by enforcing uniform network configurations across multiple cloud platforms.
Enhanced Efficiency: CraftPort strives to be your single command center for common networking tasks, simplifying resource deployment, management, and troubleshooting.
Starting with DNS Management
CraftPort's initial release, v1alpha1, focuses on DNS management. Users can create, delete, update, and retrieve DNS zones and record sets across leading cloud providers such as Azure and AWS. We have plans to expand its capabilities to cover a broader range of networking resources, including:
- Firewalls
- Load Balancers
- Network Security Groups (NSGs)
- Route Tables
- Subnets
- Virtual Networks
- Gateways
Exploring CraftPort's Design Approach
To illustrate our design approach, CraftPort provides intuitive command examples that showcase the structure of its CLI commands:
Create a network resource
1Create a network resource.
2
3Usage:
4 craftport create [command]
5
6Available Commands:
7 dns DNS management
8 firewall Firewall management [PLANNED]
9 lb Load balancer management [PLANNED]
10 nsg Network security group management [PLANNED]
11 route-table Route table management [PLANNED]
12 subnet Subnet management [PLANNED]
13 vnet Virtual network management [PLANNED]
14 vpn VPN gateway management [PLANNED]
15
16Flags:
17 -h, --help help for create
18 -v, --version version for create
19
20Global Flags:
21 --config string Config file (default is $HOME/.craftport.yaml)
22 -p, --provider string Specify the cloud provider (azure, aws, gcp)
23
24Use "craftport create [command] --help" for more information about a command.
Manage DNS zones and record sets
1Manage DNS zones and record sets.
2
3Usage:
4 craftport create dns [command]
5
6Available Commands:
7 link Link to DNS zone
8 recordset Create Recordset
9 zone Create Zone
10
11Flags:
12 -h, --help help for dns
13 -v, --version version for dns
14
15Global Flags:
16 --config string Config file (default is $HOME/.craftport.yaml)
17 -p, --provider string Specify the cloud provider (azure, aws, gcp)
18
19Use "craftport create dns [command] --help" for more information about a command.
Create Zone
1CraftPort: Create Zone.
2
3Examples:
4 # Create azure public zone
5 craftport create dns zone example.com --resource-group sandbox --tags "key=value,key=value" --provider azure
6
7 # Create aws public zone
8 craftport create dns zone example.com --provider aws
9
10 # Create azure private zone
11 craftport create dns zone example.com --resource-group sandbox --private --tags "key=value,key=value" --provider azure
12
13 # Create aws private zone
14 craftport create dns zone example.com --private --vnet vpc-123456 --vnet-region us-east-1 --provider aws
15
16 # Create zone from YAML file
17 craftport create dns zone -f zone.yaml
18
19 # Sample YAML file
20 apiVersion: craftport.io/v1alpha1
21 kind: Zone
22 metadata:
23 name: example.com
24 provider: "azure"
25 spec:
26 type: public
27 resourceGroup: sandbox-mgmt
28 tags:
29 env: test
30 owner: craftport
31
32 # Note
33 - resource-group is required for azure provider
34 - tags is optional
35
36 for azure provider
37 - private zone (default: false) requires vnet and vnet-region for aws provider
38 - comment is optional for aws provider
39
40Usage:
41 craftport create dns zone NAME or -f FILE [flags]
42
43Flags:
44 -m, --comment string comment
45 -f, --file string yaml spec. file
46 -h, --help help for zone
47 --private private zone
48 -g, --resource-group string resource group
49 -t, --tags string tags (key=value,key=value)
50 --vnet string vnet name
51 --vnet-region string vnet region
52
53Global Flags:
54 --config string Config file (default is $HOME/.craftport.yaml)
55 -p, --provider string Specify the cloud provider (azure, aws, gcp)
Create Recordset
1CraftPort: Create Recordset.
2
3Supported Types: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV, TXT
4
5Examples:
6 # Create azure public recordset
7 craftport create dns recordset -z example.com -f azure_a.yaml
8
9 # Create aws public recordset
10 craftport create dns recordset -z example.com -f aws_a.yaml
11
12 # Create azure private recordset
13 craftport create dns recordset -z example.com -f azure_a.yaml --private
14
15 # Create aws private recordset
16 craftport create dns recordset -z example.com -f aws_a.yaml
17
18 # Sample YAML file
19 apiVersion: craftport.io/v1
20 kind: RecordSet
21 metadata:
22 name: www.example.com
23 provider: azure
24 spec:
25 type: A
26 TTL: 3600
27 zone: example.com
28 resourceGroup: sandbox-mgmt
29 records:
30 ARecords:
31 - ipv4Address: 192.168.0.1
32 ttl: 3600
33
34Usage:
35 craftport create dns recordset [flags]
36
37Flags:
38 -f, --file string Path to the recordset YAML specification file
39 -h, --help help for recordset
40 --private Enable private zone (default: false)
41 -z, --zone string Specify the DNS zone name for Azure or the zone ID for AWS
42
43Global Flags:
44 --config string Config file (default is $HOME/.craftport.yaml)
45 -p, --provider string Specify the cloud provider (azure, aws, gcp)
Conclusion
CraftPort v1alpha1 represents the beginning of an exploration into simplifying and unifying cloud networking resource management. We understand the challenges in managing networking resources across multiple cloud platforms and are committed to finding innovative solutions. Starting with DNS management, we aim to streamline and enhance the multi-cloud experience. Stay tuned as we expand our capabilities to cover a broader range of networking resources.