-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(Perforce): Updating documentation for Perforce Complete example …
…reference architecture
- Loading branch information
Showing
3 changed files
with
165 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
<mxfile host="Electron" modified="2024-12-12T23:19:31.827Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.2 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="BnUOjSSJ1oD5UVPat3Zl" version="22.0.2" type="device"> | ||
<diagram name="Page-1" id="q_XiVphevz-c0kLlP5f9"> | ||
<mxGraphModel dx="1103" dy="698" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0"> | ||
<root> | ||
<mxCell id="0" /> | ||
<mxCell id="1" parent="0" /> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-1" value="Perforce VPC" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_vpc;strokeColor=#248814;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#AAB7B8;dashed=0;" vertex="1" parent="1"> | ||
<mxGeometry x="480" y="240" width="880" height="560" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-2" value="Private Subnet 1" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#147EBA;fillColor=#E6F2F8;verticalAlign=top;align=left;spacingLeft=30;fontColor=#147EBA;dashed=0;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="40" y="280" width="320" height="170" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-6" value="Helix Core" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ED7100;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.ec2_c7g_instance;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-2"> | ||
<mxGeometry x="240" y="61" width="48" height="48" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-2" source="z3quKmZYuvxo1gOoUY7u-16" target="z3quKmZYuvxo1gOoUY7u-6"> | ||
<mxGeometry relative="1" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-16" value="Helix Swarm" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ED7100;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.ecs_service;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-2"> | ||
<mxGeometry x="70" y="31.5" width="31.69" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-20" value="Helix Authentication Service" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ED7100;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.ecs_service;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-2"> | ||
<mxGeometry x="70" y="99.5" width="31.69" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-11" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://plugins.jetbrains.com/files/69/372238/icon/pluginIcon.png;clipPath=inset(0% 18% 0% 17.33%);" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-2"> | ||
<mxGeometry x="248.24" y="68.75" width="31.53" height="32.5" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-3" value="Private Subnet 2" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#147EBA;fillColor=#E6F2F8;verticalAlign=top;align=left;spacingLeft=30;fontColor=#147EBA;dashed=0;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="400" y="280" width="320" height="170" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-21" value="Helix Swarm" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ED7100;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.ecs_service;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-3"> | ||
<mxGeometry x="220" y="26" width="31.69" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-22" value="Helix Authentication Service" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ED7100;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.ecs_service;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-3"> | ||
<mxGeometry x="220" y="99.5" width="31.69" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-3" source="z3quKmZYuvxo1gOoUY7u-28" target="z3quKmZYuvxo1gOoUY7u-21"> | ||
<mxGeometry relative="1" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-3" source="z3quKmZYuvxo1gOoUY7u-28" target="z3quKmZYuvxo1gOoUY7u-22"> | ||
<mxGeometry relative="1" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-28" value="Perforce ALB" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#8C4FFF;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.application_load_balancer;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-3"> | ||
<mxGeometry x="60" y="65" width="40" height="40" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-4" value="Public Subnet 1" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#248814;fillColor=#E9F3E6;verticalAlign=top;align=left;spacingLeft=30;fontColor=#248814;dashed=0;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="40" y="80" width="320" height="120" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-37" value="Perforce NLB" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#8C4FFF;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.network_load_balancer;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-4"> | ||
<mxGeometry x="90" y="39" width="39" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-5" value="Public Subnet 2" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_security_group;grStroke=0;strokeColor=#248814;fillColor=#E9F3E6;verticalAlign=top;align=left;spacingLeft=30;fontColor=#248814;dashed=0;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="400" y="80" width="320" height="120" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-44" value="Perforce NLB" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#8C4FFF;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.network_load_balancer;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-5"> | ||
<mxGeometry x="140.5" y="39" width="39" height="39" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-15" value="AWS Fargate" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.fargate;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="350" y="470" width="60" height="60" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-1" source="z3quKmZYuvxo1gOoUY7u-6" target="z3quKmZYuvxo1gOoUY7u-28"> | ||
<mxGeometry relative="1" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-1" source="z3quKmZYuvxo1gOoUY7u-37" target="z3quKmZYuvxo1gOoUY7u-6"> | ||
<mxGeometry relative="1" as="geometry"> | ||
<Array as="points"> | ||
<mxPoint x="380" y="138" /> | ||
<mxPoint x="380" y="240" /> | ||
<mxPoint x="304" y="240" /> | ||
</Array> | ||
</mxGeometry> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-41" value="perforce.example.com" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="z3quKmZYuvxo1gOoUY7u-38"> | ||
<mxGeometry x="0.3939" relative="1" as="geometry"> | ||
<mxPoint x="-47" y="-10" as="offset" /> | ||
</mxGeometry> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="z3quKmZYuvxo1gOoUY7u-1" source="z3quKmZYuvxo1gOoUY7u-37" target="z3quKmZYuvxo1gOoUY7u-28"> | ||
<mxGeometry relative="1" as="geometry"> | ||
<Array as="points"> | ||
<mxPoint x="380" y="138" /> | ||
<mxPoint x="380" y="365" /> | ||
</Array> | ||
</mxGeometry> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-40" value="swarm.perforce.example.com<br>auth.perforce.example.com" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="z3quKmZYuvxo1gOoUY7u-39"> | ||
<mxGeometry x="-0.679" y="-1" relative="1" as="geometry"> | ||
<mxPoint x="9" y="-20" as="offset" /> | ||
</mxGeometry> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-45" value="Amazon Route 53" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.route_53;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="460" y="470" width="60" height="60" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-46" value="AWS Secrets Manager" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#DD344C;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.secrets_manager;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="770" y="170" width="60" height="60" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="z3quKmZYuvxo1gOoUY7u-47" value="AWS Certificate Manager" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#DD344C;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.certificate_manager_3;" vertex="1" parent="z3quKmZYuvxo1gOoUY7u-1"> | ||
<mxGeometry x="770" y="270" width="60" height="60" as="geometry" /> | ||
</mxCell> | ||
</root> | ||
</mxGraphModel> | ||
</diagram> | ||
</mxfile> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,69 @@ | ||
# Perforce Complete Example | ||
|
||
This example provisions [Helix Core](https://www.perforce.com/products/helix-core), [Helix Swarm](https://www.perforce.com/products/helix-swarm), and the [Helix Authentication Service](https://www.perforce.com/downloads/helix-authentication-service). It also configures security groups for each of these modules to allow inter-service communication. This example takes a single input variable:`root_domain_name` is expected to correspond to an existing [AWS Route53 hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-hosted-zone). This hosted zone is used for provisioning DNS records used for external and internal routing, and enables this example to create validated SSL certificates on your behalf. | ||
This complete example configuration deploys [**Perforce Helix Core**](https://www.perforce.com/products/helix-core), | ||
[**Perforce Helix Swarm**](https://www.perforce.com/products/helix-swarm), and [**Perforce | ||
Helix Authentication Service**](https://www.perforce.com/downloads/helix-authentication-service) into a new Virtual | ||
Private Cloud. It is designed to be used as a starting point for | ||
your Perforce Helix Core deployment. | ||
|
||
If you do not have a domain yet you can [register one through Route53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section). | ||
## Architecture | ||
|
||
If you already have a domain with a different domain registrar you can leverage Route53 for DNS services. [Please review the documentation for migrating to Route53 as your DNS provider.](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) | ||
![Perforce Example Architecture](../../../media/images/perforce-complete-example.png) | ||
|
||
If you own the domain: "example.com" this example will deploy Helix Core to "core.helix.example.com" and Helix Swarm to "swarm.helix.example.com" - this can be modified from the `dns.tf` file. | ||
## Deployment | ||
|
||
## Deployment Architecture | ||
This example configuration can be used out of the box and takes only a single variable: `root_domain_name` corresponds | ||
to the fully qualified domain name of an existing public hosted zone in the AWS account where you are deploying this | ||
reference architecture. The deployment steps below will get you up and running. | ||
|
||
![Perforce Example Architecture](../../../media/images/perforce-complete-example.jpg) | ||
1. You will need the Cloud Game Development Toolkit's Perforce Helix Core Amazon Machine Image. This Amazon Machine | ||
Image (AMI) can be build using | ||
our [provided Packer template](https://github.com/aws-games/cloud-game-development-toolkit/tree/main/assets/packer/perforce/helix-core). | ||
This example uses the ARM64 version of this AMI, and | ||
leverages Amazon Graviton for the Helix Core instance. Follow our documentation for provisioning this AMI in your AWS | ||
account. | ||
2. Next, you will need to ensure you have an [Amazon Route 53](https://aws.amazon.com/route53/) hosted zone created in | ||
your account for a domain name | ||
that you already own. This example configuration creates DNS records and a private hosted zone for you, but this | ||
pre-requisite hosted zone is necessary for certificate creation. If you do not wish to use the provided DNS resources | ||
you will need to customize this example. | ||
3. Once you have completed these pre-requisites you are ready to deploy the infrastructure: | ||
|
||
```shell | ||
terraform apply -var "root_domain_name=<YOUR ROOT HOSTED ZONE NAME>" | ||
``` | ||
|
||
4. Review the plan provided by the above command. When you are ready to deploy you can confirm by typing "yes" on the | ||
command line. Terraform will take a few minutes to provision everything. When it completes, you are ready to proceed | ||
with testing. | ||
5. By default, none of the deployed resources are available on the public internet. This is to prevent unintended | ||
security violations. You can update the security group for the Perforce Network Load balancer through the console, or | ||
add the following rules to the example configuration in [ | ||
`security.tf`](https://github.com/aws-games/cloud-game-development-toolkit/blob/main/modules/perforce/examples/complete/security.tf): | ||
|
||
```terraform | ||
# Grants access on HTTPS port for Helix Swarm and Helix Authentication | ||
resource "aws_vpc_security_group_ingress_rule" "private_perforce_https_ingress" { | ||
security_group_id = aws_security_group.perforce_network_load_balancer.id | ||
description = "Enables private access to Perforce web services." | ||
from_port = 443 | ||
to_port = 443 | ||
ip_protocol = "TCP" | ||
cidr_ipv4 = "<YOUR IP>/32" | ||
} | ||
# Grants access on Helix Core port | ||
resource "aws_vpc_security_group_ingress_rule" "private_perforce_https_ingress" { | ||
security_group_id = aws_security_group.perforce_network_load_balancer.id | ||
description = "Enables private access to Perforce Helix Core." | ||
from_port = 1666 | ||
to_port = 1666 | ||
ip_protocol = "TCP" | ||
cidr_ipv4 = "<YOUR IP>/32" | ||
} | ||
``` | ||
6. You should now have access to your deployed resources. The URLs for Helix Swarm and Helix Authentication Service are | ||
provided as Terraform outputs and should be visible in your console after a successful deployment. The connection | ||
string for Helix Core is also provided as an output. Use the Helix Core CLI or the P4V application to connect to your | ||
Helix Core server. |