# VPC
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: VPC
metadata:
name: demo-vpc
spec:
forProvider:
region: ap-northeast-2
cidrBlock: 10.0.0.0/16
enableDnsSupport: true
enableDnsHostNames: true
instanceTenancy: default
tags:
- key: Name
value: demo-vpc
providerConfigRef:
name: aws-provider
---
# Public Subnets
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Subnet
metadata:
name: demo-public-subnet-a
spec:
forProvider:
region: ap-northeast-2
availabilityZone: ap-northeast-2a
cidrBlock: 10.0.0.0/24
vpcIdRef:
name: demo-vpc
mapPublicIPOnLaunch: true
tags:
- key: Name
value: demo-public-subnet-a
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Subnet
metadata:
name: demo-public-subnet-b
spec:
forProvider:
region: ap-northeast-2
availabilityZone: ap-northeast-2b
cidrBlock: 10.0.1.0/24
vpcIdRef:
name: demo-vpc
mapPublicIPOnLaunch: true
tags:
- key: Name
value: demo-public-subnet-b
providerConfigRef:
name: aws-provider
---
# Private Subnets
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Subnet
metadata:
name: demo-private-subnet-a
spec:
forProvider:
region: ap-northeast-2
availabilityZone: ap-northeast-2a
cidrBlock: 10.0.2.0/24
vpcIdRef:
name: demo-vpc
mapPublicIPOnLaunch: false
tags:
- key: Name
value: demo-private-subnet-a
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Subnet
metadata:
name: demo-private-subnet-b
spec:
forProvider:
region: ap-northeast-2
availabilityZone: ap-northeast-2b
cidrBlock: 10.0.3.0/24
vpcIdRef:
name: demo-vpc
mapPublicIPOnLaunch: false
tags:
- key: Name
value: demo-private-subnet-b
providerConfigRef:
name: aws-provider
---
# Internet Gateway
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: InternetGateway
metadata:
name: demo-igw
spec:
forProvider:
region: ap-northeast-2
vpcIdRef:
name: demo-vpc
tags:
- key: Name
value: demo-igw
providerConfigRef:
name: aws-provider
---
# EIPs for NAT
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Address
metadata:
name: demo-eip-a
spec:
forProvider:
region: ap-northeast-2
domain: vpc
tags:
- key: Name
value: demo-eip-a
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: Address
metadata:
name: demo-eip-b
spec:
forProvider:
region: ap-northeast-2
domain: vpc
tags:
- key: Name
value: demo-eip-b
providerConfigRef:
name: aws-provider
---
# NAT Gateways
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: NATGateway
metadata:
name: demo-natgw-a
spec:
forProvider:
region: ap-northeast-2
allocationIdRef:
name: demo-eip-a
subnetIdRef:
name: demo-public-subnet-a
tags:
- key: Name
value: demo-natgw-a
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: NATGateway
metadata:
name: demo-natgw-b
spec:
forProvider:
region: ap-northeast-2
allocationIdRef:
name: demo-eip-b
subnetIdRef:
name: demo-public-subnet-b
tags:
- key: Name
value: demo-natgw-b
providerConfigRef:
name: aws-provider
---
# Route Tables
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: RouteTable
metadata:
name: demo-public-rt
spec:
forProvider:
region: ap-northeast-2
vpcIdRef:
name: demo-vpc
routes:
- destinationCidrBlock: 0.0.0.0/0
gatewayIdRef:
name: demo-igw
associations:
- subnetIdRef:
name: demo-public-subnet-a
- subnetIdRef:
name: demo-public-subnet-b
tags:
- key: Name
value: demo-public-rt
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: RouteTable
metadata:
name: demo-private-rt-a
spec:
forProvider:
region: ap-northeast-2
vpcIdRef:
name: demo-vpc
routes:
- destinationCidrBlock: 0.0.0.0/0
natGatewayIdRef:
name: demo-natgw-a
associations:
- subnetIdRef:
name: demo-private-subnet-a
tags:
- key: Name
value: demo-private-rt-a
providerConfigRef:
name: aws-provider
---
apiVersion: ec2.aws.crossplane.io/v1beta1
kind: RouteTable
metadata:
name: demo-private-rt-b
spec:
forProvider:
region: ap-northeast-2
vpcIdRef:
name: demo-vpc
routes:
- destinationCidrBlock: 0.0.0.0/0
natGatewayIdRef:
name: demo-natgw-b
associations:
- subnetIdRef:
name: demo-private-subnet-b
tags:
- key: Name
value: demo-private-rt-b
providerConfigRef:
name: aws-provider
---
# Endpoint
apiVersion: ec2.aws.crossplane.io/v1alpha1
kind: VPCEndpoint
metadata:
name: demo-s3-vpc-endpoint
spec:
forProvider:
region: ap-northeast-2
routeTableIdRefs:
- name: demo-private-rt-a
- name: demo-private-rt-b
serviceName: com.amazonaws.ap-northeast-2.s3
vpcEndpointType: Gateway
vpcIdRef:
name: demo-vpc
tags:
Name: demo-s3-vpc-endpoint
providerConfigRef:
name: aws-provider
YAML
복사
kubectl apply -f vpc.yaml
Shell
복사