diff --git a/404.html b/404.html index 55a59c533f..c632daa1a2 100644 --- a/404.html +++ b/404.html @@ -26,7 +26,7 @@ - + @@ -39,7 +39,7 @@ - + diff --git a/c8223350.1716822b.js b/c8223350.1716822b.js new file mode 100644 index 0000000000..74b4d10ee7 --- /dev/null +++ b/c8223350.1716822b.js @@ -0,0 +1,2 @@ +/*! For license information please see c8223350.1716822b.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[229],{381:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return b})),n.d(t,"rightToc",(function(){return s})),n.d(t,"default",(function(){return d}));var r=n(1),a=n(9),o=(n(0),n(445)),i=n(452),c=n(444),l=n(449),u=(n(453),{last_modified_on:"2024-07-12",$schema:"/.meta/.schemas/guides.json",title:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",author_github:"https://github.com/l0ck3",tags:["type: tutorial","installation_guide: aws"],hide_pagination:!0}),b={categories:[{name:"tutorial",title:"Tutorial",description:"Additional step-by-step resources to leverage even more Qovery",permalink:"/guides/tutorial"}],coverLabel:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",permalink:"/guides/tutorial/aws-vpc-peering-with-qovery",readingTime:"6 min read",source:"@site/guides/tutorial/aws-vpc-peering-with-qovery.md",tags:[{label:"type: tutorial",permalink:"/guides/tags/type-tutorial"},{label:"installation_guide: aws",permalink:"/guides/tags/installation-guide-aws"}],title:"Setup VPC peering on AWS with Qovery",truncated:!1,prevItem:{title:"Setting up Cloudflare and Custom Domain on Qovery",permalink:"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},nextItem:{title:"Terraform",permalink:"/guides/advanced/terraform"}},s=[{value:"Goal",id:"goal",children:[]}],p={rightToc:s};function d(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(o.b)("wrapper",Object(r.a)({},p,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications.\nThis tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account."),Object(o.b)(l.a,{name:"guide",mdxType:"Assumptions"},Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"You have an existing AWS VPC with a resource you need to access, like an RDS database"),Object(o.b)("li",{parentName:"ul"},"You have a ",Object(o.b)("a",Object(r.a)({parentName:"li"},{href:"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),"Qovery cluster ready on your AWS account")))),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(o.b)("br",null),Object(o.b)("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(o.b)("h2",{id:"goal"},"Goal"),Object(o.b)("p",null,"In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster.\nWe should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC."),Object(o.b)(i.a,{headingDepth:3,mdxType:"Steps"},Object(o.b)("ol",null,Object(o.b)("li",null,Object(o.b)("h4",{id:"gather-the-necessary-information"},"Gather the necessary information"),Object(o.b)("p",null,"Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience."),Object(o.b)("p",null,"At the end of this step 1, you should have those elements:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"y.y.y.y/y")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-yyy")))),Object(o.b)("p",null,"Keep in mind the following convention:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Existing VPC: your current VPC infrastructure (not managed by Qovery)"),Object(o.b)("li",{parentName:"ul"},"Qovery VPC: the VPC deployed and managed by Qovery")),Object(o.b)("p",null),Object(o.b)("h5",{id:"your-existing-vpc-id"},"Your existing VPC ID"),Object(o.b)("p",null,"To get your existing VPC ID in your AWS console, go to: ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Your VPCs"),", find the VPC you would like to use as a peering target, and copy its ID"),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(o.b)("h5",{id:"the-qovery-vpc-id"},"The Qovery VPC ID"),Object(o.b)("p",null,"You can use the same method to get the Qovery VPC ID. It should be named ",Object(o.b)("inlineCode",{parentName:"p"},"qovery-eks-workers"),"."),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",null)),Object(o.b)("li",null,Object(o.b)("h5",{id:"the-cidr-ranges-of-both-vpcs"},"The CIDR ranges of both VPCs"),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"create-a-peering-connection"},"Create a peering connection"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.")),Object(o.b)("p",null,"In the AWS console, go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Peering connections")," and click on ",Object(o.b)("inlineCode",{parentName:"p"},"Create peering connection")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Give it a name"),Object(o.b)("li",{parentName:"ul"},"As a requester, select your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As an accepter, select your existing VPC"),Object(o.b)("li",{parentName:"ul"},"Click on ",Object(o.b)("inlineCode",{parentName:"li"},"Create peering connection"))),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"accept-the-peering-request"},"Accept the peering request"),Object(o.b)("p",null,"Once created, the peering connection needs to be accepted.\nOn the peering connection view, click on ",Object(o.b)("inlineCode",{parentName:"p"},"Actions")," then ",Object(o.b)("inlineCode",{parentName:"p"},"Accept request")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(o.b)("p",null,"You should see your peering connection marked as ",Object(o.b)("inlineCode",{parentName:"p"},"Active")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(o.b)(c.a,{type:"info",mdxType:"Alert"},Object(o.b)("b",null,"Take note of the peering connection ID. You will need it later."))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-existing-vpc-route-table"},"Update existing VPC route table"),Object(o.b)("p",null,"In the AWS console of your ",Object(o.b)("strong",{parentName:"p"},"Qovery VPC"),", go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Route Tables"),".\nYou can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC."),Object(o.b)("p",null,"For your existing VPC edit the route table:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(o.b)("p",null,"Click on the ",Object(o.b)("inlineCode",{parentName:"p"},"Edit routes")," button then ",Object(o.b)("inlineCode",{parentName:"p"},"Add route"),"."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, select the ",Object(o.b)("inlineCode",{parentName:"li"},"Peering connection")," you created earlier")),Object(o.b)("p",null,"Click ",Object(o.b)("inlineCode",{parentName:"p"},"Save changes"),"."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-qovery-vpc-route-table"},"Update Qovery VPC route table"),Object(o.b)("p",null,"This part needs to be done through the Qovery console."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(o.b)("p",null,"In the cluster settings, under the ",Object(o.b)("inlineCode",{parentName:"p"},"Network")," tab, click ",Object(o.b)("inlineCode",{parentName:"p"},"Add Network")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your existing VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, enter the ID of the peering connection you created earlier"),Object(o.b)("li",{parentName:"ul"},"You can put anything you want as a description.")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},Object(o.b)("p",null,'You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".'))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-the-security-groups"},"Update the security groups"),Object(o.b)("p",null,"Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources."),Object(o.b)("p",null,"What rules to put on your security groups depends on what you are trying to achieve.\nIn our case, we would like to access an RDS instance from our Qovery applications."),Object(o.b)("p",null,"We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"deploy-an-application"},"Deploy an application"),Object(o.b)("p",null,"You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster.\nRefer to ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"/guides/getting-started/deploy-your-first-application/"}),"this guide")," if you need help deploying an application on Qovery.")))),Object(o.b)("p",null,"You can learn more about VPC peering on AWS here: ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html")))}d.isMDXComponent=!0},443:function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),b=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},s=function(e){var t=b(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=b(n),d=r,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||o;return n?a.a.createElement(m,c({ref:t},u,{components:n})):a.a.createElement(m,c({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u1?arguments[1]:void 0,n),l=i>2?arguments[2]:void 0,u=void 0===l?n:a(l,n);u>c;)t[c++]=e;return t}},448:function(e,t,n){var r=n(28).f,a=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in a||n(10)&&r(a,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},449:function(e,t,n){"use strict";n(448);var r=n(0),a=n.n(r),o=n(444);t.a=function(e){var t=e.children,n=e.name;return a.a.createElement(o.a,{type:"info",fill:!0,icon:!1,rounded:!0,className:"list--icons list--icons--arrow list--tight list--indent margin-bottom--lg"},a.a.createElement("p",{class:"text--lg margin-bottom--sm",style:{marginTop:"-0.25em"}},"Before you begin, this ",n||"page"," assumes the following:"),t)}},450:function(e,t,n){"use strict";var r=n(1),a=n(0),o=n.n(a),i=n(39),c=n(454),l=n(20),u=n.n(l);t.a=function(e){var t,n=e.to,l=e.href,b=n||l,s=Object(c.a)(b),p=Object(a.useRef)(!1),d=u.a.canUseIntersectionObserver;return Object(a.useEffect)((function(){return!d&&s&&window.docusaurus.prefetch(b),function(){d&&t&&t.disconnect()}}),[b,d,s]),b&&s?o.a.createElement(i.b,Object(r.a)({},e,{onMouseEnter:function(){p.current||(window.docusaurus.preload(b),p.current=!0)},innerRef:function(e){var n,r;d&&e&&s&&(n=e,r=function(){window.docusaurus.prefetch(b)},(t=new window.IntersectionObserver((function(e){e.forEach((function(e){n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(t.unobserve(n),t.disconnect(),r())}))}))).observe(n))},to:b})):o.a.createElement("a",Object(r.a)({},e,{href:b}))}},451:function(e,t,n){"use strict";var r=n(455),a=n(51);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(a),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return o(r,t);if(Array.isArray(a)){var i=[];return a.slice().forEach((function(e){void 0!==e&&i.push(n(r,e,i.length))})),i.join("&")}return o(r,t)+"="+o(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},452:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=(n(443),n(451)),i=n.n(o);n(133);t.a=function(e){var t=e.children,n=e.headingDepth,o=e.hideFeedbackQuestion,c="undefined"!=typeof window?window.location:null,l={title:"Tutorial on "+c+" failed",body:"The tutorial on:\n\n"+c+"\n\nHere's what went wrong:\n\n\x3c!-- Insert command output and details. Thank you for reporting! :) --\x3e"},u="https://github.com/qovery/documentation/issues/new?"+i.a.stringify(l),b=Object(r.useState)(null),s=b[0],p=b[1];return a.a.createElement("div",{className:"steps steps--h"+n},t,!o&&!s&&a.a.createElement("div",{className:"steps--feedback"},"How was it? Did this tutorial work?\xa0\xa0",a.a.createElement("span",{className:"button button--sm button--primary",onClick:function(){return p("yes")}},"Yes"),"\xa0\xa0",a.a.createElement("a",{href:u,target:"_blank",className:"button button--sm button--primary"},"No")),"yes"==s&&a.a.createElement("div",{className:"steps--feedback steps--feedback--success"},"Thanks! If you're enjoying Qovery please consider ",a.a.createElement("a",{href:"https://github.com/qovery/documentation/",target:"_blank"},"starring our Github repo"),"."))}},453:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(450),i=n(443),c=n.n(i);n(134);t.a=function(e){var t=e.children,n=e.className,r=e.badge,i=e.leftIcon,l=e.rightIcon,u=e.size,b=e.target,s=e.to,p=c()("jump-to","jump-to--"+u,n),d=a.a.createElement("div",{className:"jump-to--inner"},a.a.createElement("div",{className:"jump-to--inner-2"},i&&a.a.createElement("div",{className:"jump-to--left"},a.a.createElement("i",{className:"feather icon-"+i})),a.a.createElement("div",{className:"jump-to--main"},r?a.a.createElement("span",{className:"badge badge--primary badge--right"},r):"",t),a.a.createElement("div",{className:"jump-to--right"},a.a.createElement("i",{className:"feather icon-"+(l||"chevron-right")+" arrow"}))));return b?a.a.createElement("a",{href:s,target:b,className:p},d):a.a.createElement(o.a,{to:s,className:p},d)}},454:function(e,t,n){"use strict";function r(e){return!1===/^(https?:|\/\/)/.test(e)}n.d(t,"a",(function(){return r}))},455:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file diff --git a/c8223350.cfc3d0a7.js.LICENSE.txt b/c8223350.1716822b.js.LICENSE.txt similarity index 100% rename from c8223350.cfc3d0a7.js.LICENSE.txt rename to c8223350.1716822b.js.LICENSE.txt diff --git a/c8223350.cfc3d0a7.js b/c8223350.cfc3d0a7.js deleted file mode 100644 index c4a6b4f7f9..0000000000 --- a/c8223350.cfc3d0a7.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see c8223350.cfc3d0a7.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[229],{381:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return b})),n.d(t,"rightToc",(function(){return s})),n.d(t,"default",(function(){return d}));var r=n(1),a=n(9),o=(n(0),n(445)),i=n(452),c=n(444),l=n(449),u=(n(453),{last_modified_on:"2023-12-30",$schema:"/.meta/.schemas/guides.json",title:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",author_github:"https://github.com/l0ck3",tags:["type: tutorial","installation_guide: aws"],hide_pagination:!0}),b={categories:[{name:"tutorial",title:"Tutorial",description:"Additional step-by-step resources to leverage even more Qovery",permalink:"/guides/tutorial"}],coverLabel:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",permalink:"/guides/tutorial/aws-vpc-peering-with-qovery",readingTime:"6 min read",source:"@site/guides/tutorial/aws-vpc-peering-with-qovery.md",tags:[{label:"type: tutorial",permalink:"/guides/tags/type-tutorial"},{label:"installation_guide: aws",permalink:"/guides/tags/installation-guide-aws"}],title:"Setup VPC peering on AWS with Qovery",truncated:!1,prevItem:{title:"Setting up Cloudflare and Custom Domain on Qovery",permalink:"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},nextItem:{title:"Terraform",permalink:"/guides/advanced/terraform"}},s=[{value:"Goal",id:"goal",children:[]}],p={rightToc:s};function d(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(o.b)("wrapper",Object(r.a)({},p,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications.\nThis tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account."),Object(o.b)(l.a,{name:"guide",mdxType:"Assumptions"},Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"You have an existing AWS VPC with a resource you need to access, like an RDS database"),Object(o.b)("li",{parentName:"ul"},"You have a ",Object(o.b)("a",Object(r.a)({parentName:"li"},{href:"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),"Qovery cluster ready on your AWS account")))),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(o.b)("br",null),Object(o.b)("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(o.b)("h2",{id:"goal"},"Goal"),Object(o.b)("p",null,"In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster.\nWe should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC."),Object(o.b)(i.a,{headingDepth:3,mdxType:"Steps"},Object(o.b)("ol",null,Object(o.b)("li",null,Object(o.b)("h4",{id:"gather-the-necessary-information"},"Gather the necessary information"),Object(o.b)("p",null,"Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience."),Object(o.b)("p",null,"At the end of this step 1, you should have those elements:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"y.y.y.y/y")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-yyy")))),Object(o.b)("p",null,"Keep in mind the following convention:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Existing VPC: your current VPC infrastructure (not managed by Qovery)"),Object(o.b)("li",{parentName:"ul"},"Qovery VPC: the VPC deployed and managed by Qovery")),Object(o.b)("p",null),Object(o.b)("h5",{id:"your-existing-vpc-id"},"Your existing VPC ID"),Object(o.b)("p",null,"To get your existing VPC ID in your AWS console, go to: ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Your VPCs"),", find the VPC you would like to use as a peering target, and copy its ID"),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(o.b)("h5",{id:"the-qovery-vpc-id"},"The Qovery VPC ID"),Object(o.b)("p",null,"You can use the same method to get the Qovery VPC ID. It should be named ",Object(o.b)("inlineCode",{parentName:"p"},"qovery-eks-workers"),"."),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",null)),Object(o.b)("li",null,Object(o.b)("h5",{id:"the-cidr-ranges-of-both-vpcs"},"The CIDR ranges of both VPCs"),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"create-a-peering-connection"},"Create a peering connection"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.")),Object(o.b)("p",null,"In the AWS console, go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Peering connections")," and click on ",Object(o.b)("inlineCode",{parentName:"p"},"Create peering connection")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Give it a name"),Object(o.b)("li",{parentName:"ul"},"As a requester, select your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As an accepter, select your existing VPC"),Object(o.b)("li",{parentName:"ul"},"Click on ",Object(o.b)("inlineCode",{parentName:"li"},"Create peering connection"))),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"accept-the-peering-request"},"Accept the peering request"),Object(o.b)("p",null,"Once created, the peering connection needs to be accepted.\nOn the peering connection view, click on ",Object(o.b)("inlineCode",{parentName:"p"},"Actions")," then ",Object(o.b)("inlineCode",{parentName:"p"},"Accept request")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(o.b)("p",null,"You should see your peering connection marked as ",Object(o.b)("inlineCode",{parentName:"p"},"Active")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(o.b)(c.a,{type:"info",mdxType:"Alert"},Object(o.b)("b",null,"Take note of the peering connection ID. You will need it later."))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-existing-vpc-route-table"},"Update existing VPC route table"),Object(o.b)("p",null,"In the AWS console of your ",Object(o.b)("strong",{parentName:"p"},"non Qovery VPC"),", go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Route Tables"),".\nYou can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"Thanks Kevin M. for your contribution here \ud83d\ude0a")),Object(o.b)("p",null,"For your existing VPC edit the route table:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(o.b)("p",null,"Click on the ",Object(o.b)("inlineCode",{parentName:"p"},"Edit routes")," button then ",Object(o.b)("inlineCode",{parentName:"p"},"Add route"),"."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, select the ",Object(o.b)("inlineCode",{parentName:"li"},"Peering connection")," you created earlier")),Object(o.b)("p",null,"Click ",Object(o.b)("inlineCode",{parentName:"p"},"Save changes"),"."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-qovery-vpc-route-table"},"Update Qovery VPC route table"),Object(o.b)("p",null,"This part needs to be done through the Qovery console."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(o.b)("p",null,"In the cluster settings, under the ",Object(o.b)("inlineCode",{parentName:"p"},"Network")," tab, click ",Object(o.b)("inlineCode",{parentName:"p"},"ADD ROUTE")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your existing VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, enter the ID of the peering connection you created earlier"),Object(o.b)("li",{parentName:"ul"},"You can put anything you want as a description.")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},Object(o.b)("p",null,'You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".'))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-the-security-groups"},"Update the security groups"),Object(o.b)("p",null,"Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources."),Object(o.b)("p",null,"What rules to put on your security groups depends on what you are trying to achieve.\nIn our case, we would like to access an RDS instance from our Qovery applications."),Object(o.b)("p",null,"We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"deploy-an-application"},"Deploy an application"),Object(o.b)("p",null,"You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster.\nRefer to ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"/guides/getting-started/deploy-your-first-application/"}),"this guide")," if you need help deploying an application on Qovery.")))),Object(o.b)("p",null,"You can learn more about VPC peering on AWS here: ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html")))}d.isMDXComponent=!0},443:function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),b=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},s=function(e){var t=b(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=b(n),d=r,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||o;return n?a.a.createElement(m,c({ref:t},u,{components:n})):a.a.createElement(m,c({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u1?arguments[1]:void 0,n),l=i>2?arguments[2]:void 0,u=void 0===l?n:a(l,n);u>c;)t[c++]=e;return t}},448:function(e,t,n){var r=n(28).f,a=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in a||n(10)&&r(a,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},449:function(e,t,n){"use strict";n(448);var r=n(0),a=n.n(r),o=n(444);t.a=function(e){var t=e.children,n=e.name;return a.a.createElement(o.a,{type:"info",fill:!0,icon:!1,rounded:!0,className:"list--icons list--icons--arrow list--tight list--indent margin-bottom--lg"},a.a.createElement("p",{class:"text--lg margin-bottom--sm",style:{marginTop:"-0.25em"}},"Before you begin, this ",n||"page"," assumes the following:"),t)}},450:function(e,t,n){"use strict";var r=n(1),a=n(0),o=n.n(a),i=n(39),c=n(454),l=n(20),u=n.n(l);t.a=function(e){var t,n=e.to,l=e.href,b=n||l,s=Object(c.a)(b),p=Object(a.useRef)(!1),d=u.a.canUseIntersectionObserver;return Object(a.useEffect)((function(){return!d&&s&&window.docusaurus.prefetch(b),function(){d&&t&&t.disconnect()}}),[b,d,s]),b&&s?o.a.createElement(i.b,Object(r.a)({},e,{onMouseEnter:function(){p.current||(window.docusaurus.preload(b),p.current=!0)},innerRef:function(e){var n,r;d&&e&&s&&(n=e,r=function(){window.docusaurus.prefetch(b)},(t=new window.IntersectionObserver((function(e){e.forEach((function(e){n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(t.unobserve(n),t.disconnect(),r())}))}))).observe(n))},to:b})):o.a.createElement("a",Object(r.a)({},e,{href:b}))}},451:function(e,t,n){"use strict";var r=n(455),a=n(51);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(a),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return o(r,t);if(Array.isArray(a)){var i=[];return a.slice().forEach((function(e){void 0!==e&&i.push(n(r,e,i.length))})),i.join("&")}return o(r,t)+"="+o(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},452:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=(n(443),n(451)),i=n.n(o);n(133);t.a=function(e){var t=e.children,n=e.headingDepth,o=e.hideFeedbackQuestion,c="undefined"!=typeof window?window.location:null,l={title:"Tutorial on "+c+" failed",body:"The tutorial on:\n\n"+c+"\n\nHere's what went wrong:\n\n\x3c!-- Insert command output and details. Thank you for reporting! :) --\x3e"},u="https://github.com/qovery/documentation/issues/new?"+i.a.stringify(l),b=Object(r.useState)(null),s=b[0],p=b[1];return a.a.createElement("div",{className:"steps steps--h"+n},t,!o&&!s&&a.a.createElement("div",{className:"steps--feedback"},"How was it? Did this tutorial work?\xa0\xa0",a.a.createElement("span",{className:"button button--sm button--primary",onClick:function(){return p("yes")}},"Yes"),"\xa0\xa0",a.a.createElement("a",{href:u,target:"_blank",className:"button button--sm button--primary"},"No")),"yes"==s&&a.a.createElement("div",{className:"steps--feedback steps--feedback--success"},"Thanks! If you're enjoying Qovery please consider ",a.a.createElement("a",{href:"https://github.com/qovery/documentation/",target:"_blank"},"starring our Github repo"),"."))}},453:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(450),i=n(443),c=n.n(i);n(134);t.a=function(e){var t=e.children,n=e.className,r=e.badge,i=e.leftIcon,l=e.rightIcon,u=e.size,b=e.target,s=e.to,p=c()("jump-to","jump-to--"+u,n),d=a.a.createElement("div",{className:"jump-to--inner"},a.a.createElement("div",{className:"jump-to--inner-2"},i&&a.a.createElement("div",{className:"jump-to--left"},a.a.createElement("i",{className:"feather icon-"+i})),a.a.createElement("div",{className:"jump-to--main"},r?a.a.createElement("span",{className:"badge badge--primary badge--right"},r):"",t),a.a.createElement("div",{className:"jump-to--right"},a.a.createElement("i",{className:"feather icon-"+(l||"chevron-right")+" arrow"}))));return b?a.a.createElement("a",{href:s,target:b,className:p},d):a.a.createElement(o.a,{to:s,className:p},d)}},454:function(e,t,n){"use strict";function r(e){return!1===/^(https?:|\/\/)/.test(e)}n.d(t,"a",(function(){return r}))},455:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file diff --git a/community/index.html b/community/index.html index 998b46dca1..3a5010199d 100644 --- a/community/index.html +++ b/community/index.html @@ -26,7 +26,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/components/index.html b/components/index.html index 7bf26da076..f06fdcc8a5 100644 --- a/components/index.html +++ b/components/index.html @@ -26,7 +26,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/contact/index.html b/contact/index.html index 2b710e6c0c..d0f696c115 100644 --- a/contact/index.html +++ b/contact/index.html @@ -26,7 +26,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/docs/getting-started/basic-concepts/index.html b/docs/getting-started/basic-concepts/index.html index 7a115df39c..b62a958652 100644 --- a/docs/getting-started/basic-concepts/index.html +++ b/docs/getting-started/basic-concepts/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/deploy-my-app/index.html b/docs/getting-started/deploy-my-app/index.html index c19900ee3e..ea18988cc2 100644 --- a/docs/getting-started/deploy-my-app/index.html +++ b/docs/getting-started/deploy-my-app/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/how-qovery-works/index.html b/docs/getting-started/how-qovery-works/index.html index 22394b445d..630a839b0a 100644 --- a/docs/getting-started/how-qovery-works/index.html +++ b/docs/getting-started/how-qovery-works/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 7f3f69985b..fef23491dc 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/create-credentials/index.html b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/create-credentials/index.html index c41c2fe185..762fc8511a 100644 --- a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/create-credentials/index.html +++ b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/create-credentials/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/faq/index.html b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/faq/index.html index 0621fb89a9..3e511ccbb5 100644 --- a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/faq/index.html +++ b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/faq/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/index.html b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/index.html index 7e19d01046..bb30f1f1a4 100644 --- a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/index.html +++ b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/infrastructure/index.html b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/infrastructure/index.html index 5b3dc09fd9..00a6eade3c 100644 --- a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/infrastructure/index.html +++ b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/infrastructure/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/index.html b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/index.html index 8066789f27..5583f81d85 100644 --- a/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/index.html +++ b/docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/index.html b/docs/getting-started/install-qovery/aws/index.html index da717b8bdb..3f731eb41c 100644 --- a/docs/getting-started/install-qovery/aws/index.html +++ b/docs/getting-started/install-qovery/aws/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/aws/self-managed-cluster/index.html b/docs/getting-started/install-qovery/aws/self-managed-cluster/index.html index 9c2aee199a..6730aea01c 100644 --- a/docs/getting-started/install-qovery/aws/self-managed-cluster/index.html +++ b/docs/getting-started/install-qovery/aws/self-managed-cluster/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/index.html b/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/index.html index 2303c5d34b..1492b3c7fa 100644 --- a/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/index.html +++ b/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/quickstart/index.html b/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/quickstart/index.html index ed47847bdb..b39375bf61 100644 --- a/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/quickstart/index.html +++ b/docs/getting-started/install-qovery/azure/cluster-managed-by-qovery/quickstart/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/azure/index.html b/docs/getting-started/install-qovery/azure/index.html index 5c00423e1b..696fd4a404 100644 --- a/docs/getting-started/install-qovery/azure/index.html +++ b/docs/getting-started/install-qovery/azure/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/azure/self-managed-cluster/index.html b/docs/getting-started/install-qovery/azure/self-managed-cluster/index.html index c5dd1cc32a..9aeb279ec8 100644 --- a/docs/getting-started/install-qovery/azure/self-managed-cluster/index.html +++ b/docs/getting-started/install-qovery/azure/self-managed-cluster/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/create-credentials/index.html b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/create-credentials/index.html index 93d2abc77d..1938ff1c77 100644 --- a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/create-credentials/index.html +++ b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/create-credentials/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/index.html b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/index.html index 010a7c0e3d..14d61447f5 100644 --- a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/index.html +++ b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/quickstart/index.html b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/quickstart/index.html index c7a509fa58..3e796ed5d1 100644 --- a/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/quickstart/index.html +++ b/docs/getting-started/install-qovery/gcp/cluster-managed-by-qovery/quickstart/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/gcp/index.html b/docs/getting-started/install-qovery/gcp/index.html index aacd7c79df..a29dd9cfb3 100644 --- a/docs/getting-started/install-qovery/gcp/index.html +++ b/docs/getting-started/install-qovery/gcp/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/gcp/self-managed-cluster/index.html b/docs/getting-started/install-qovery/gcp/self-managed-cluster/index.html index c592ef8652..f06408d4a0 100644 --- a/docs/getting-started/install-qovery/gcp/self-managed-cluster/index.html +++ b/docs/getting-started/install-qovery/gcp/self-managed-cluster/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/install-qovery/index.html b/docs/getting-started/install-qovery/index.html index ecb800ce93..3248fcc8c2 100644 --- a/docs/getting-started/install-qovery/index.html +++ b/docs/getting-started/install-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/getting-started/install-qovery/kubernetes/byok-config/index.html b/docs/getting-started/install-qovery/kubernetes/byok-config/index.html index d9a039aa5f..edcdaecdfe 100644 --- a/docs/getting-started/install-qovery/kubernetes/byok-config/index.html +++ b/docs/getting-started/install-qovery/kubernetes/byok-config/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/install-qovery/kubernetes/faq/index.html b/docs/getting-started/install-qovery/kubernetes/faq/index.html index 01ac147db1..7a8733eb92 100644 --- a/docs/getting-started/install-qovery/kubernetes/faq/index.html +++ b/docs/getting-started/install-qovery/kubernetes/faq/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/kubernetes/index.html b/docs/getting-started/install-qovery/kubernetes/index.html index fee9617305..37b350c40a 100644 --- a/docs/getting-started/install-qovery/kubernetes/index.html +++ b/docs/getting-started/install-qovery/kubernetes/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/kubernetes/quickstart/index.html b/docs/getting-started/install-qovery/kubernetes/quickstart/index.html index df05c741ea..ac0bf4906a 100644 --- a/docs/getting-started/install-qovery/kubernetes/quickstart/index.html +++ b/docs/getting-started/install-qovery/kubernetes/quickstart/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/install-qovery/kubernetes/validate-installation/index.html b/docs/getting-started/install-qovery/kubernetes/validate-installation/index.html index 4eb5cf7ffb..82bd575d71 100644 --- a/docs/getting-started/install-qovery/kubernetes/validate-installation/index.html +++ b/docs/getting-started/install-qovery/kubernetes/validate-installation/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/getting-started/install-qovery/local/index.html b/docs/getting-started/install-qovery/local/index.html index 2db84510ad..c873eb5c02 100644 --- a/docs/getting-started/install-qovery/local/index.html +++ b/docs/getting-started/install-qovery/local/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/create-credentials/index.html b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/create-credentials/index.html index 473f20e5f0..43f88a15c2 100644 --- a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/create-credentials/index.html +++ b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/create-credentials/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/faq/index.html b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/faq/index.html index 596cda885b..cdde39411f 100644 --- a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/faq/index.html +++ b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/faq/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/index.html b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/index.html index 080d7bd206..f50a8c3238 100644 --- a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/index.html +++ b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/quickstart/index.html b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/quickstart/index.html index 08c3619e5b..284fb02561 100644 --- a/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/quickstart/index.html +++ b/docs/getting-started/install-qovery/scaleway/cluster-managed-by-qovery/quickstart/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/index.html b/docs/getting-started/install-qovery/scaleway/index.html index 2167543339..7f416a20d9 100644 --- a/docs/getting-started/install-qovery/scaleway/index.html +++ b/docs/getting-started/install-qovery/scaleway/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/install-qovery/scaleway/self-managed-cluster/index.html b/docs/getting-started/install-qovery/scaleway/self-managed-cluster/index.html index d43f548360..9de30bd0f4 100644 --- a/docs/getting-started/install-qovery/scaleway/self-managed-cluster/index.html +++ b/docs/getting-started/install-qovery/scaleway/self-managed-cluster/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/getting-started/what-is-qovery/index.html b/docs/getting-started/what-is-qovery/index.html index 88fda8afc2..3364fd1e01 100644 --- a/docs/getting-started/what-is-qovery/index.html +++ b/docs/getting-started/what-is-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/getting-started/whats-next/index.html b/docs/getting-started/whats-next/index.html index 4b808dea7b..31abb8f2de 100644 --- a/docs/getting-started/whats-next/index.html +++ b/docs/getting-started/whats-next/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/index.html b/docs/index.html index 67d2c0da44..194d7a6415 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ - + diff --git a/docs/security-and-compliance/backup-and-restore/index.html b/docs/security-and-compliance/backup-and-restore/index.html index 0285daebca..aabe69c8db 100644 --- a/docs/security-and-compliance/backup-and-restore/index.html +++ b/docs/security-and-compliance/backup-and-restore/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/security-and-compliance/encryption/index.html b/docs/security-and-compliance/encryption/index.html index db76b4c166..dfc708a0c6 100644 --- a/docs/security-and-compliance/encryption/index.html +++ b/docs/security-and-compliance/encryption/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/security-and-compliance/gdpr/index.html b/docs/security-and-compliance/gdpr/index.html index fbb300039c..1b3865dc7d 100644 --- a/docs/security-and-compliance/gdpr/index.html +++ b/docs/security-and-compliance/gdpr/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/security-and-compliance/index.html b/docs/security-and-compliance/index.html index d6a613c7ef..2554eb7561 100644 --- a/docs/security-and-compliance/index.html +++ b/docs/security-and-compliance/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/security-and-compliance/soc2/index.html b/docs/security-and-compliance/soc2/index.html index 65057b086c..53a5c4b6d5 100644 --- a/docs/security-and-compliance/soc2/index.html +++ b/docs/security-and-compliance/soc2/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/useful-resources/faq/index.html b/docs/useful-resources/faq/index.html index 690b4c9774..5785854daf 100644 --- a/docs/useful-resources/faq/index.html +++ b/docs/useful-resources/faq/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/useful-resources/help-and-support/index.html b/docs/useful-resources/help-and-support/index.html index 6e38185fa0..dcd3dc2067 100644 --- a/docs/useful-resources/help-and-support/index.html +++ b/docs/useful-resources/help-and-support/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/audit-logs/index.html b/docs/using-qovery/audit-logs/index.html index 58f4caa1b4..37f143b19c 100644 --- a/docs/using-qovery/audit-logs/index.html +++ b/docs/using-qovery/audit-logs/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/advanced-settings/index.html b/docs/using-qovery/configuration/advanced-settings/index.html index b03434a7a2..a20921d258 100644 --- a/docs/using-qovery/configuration/advanced-settings/index.html +++ b/docs/using-qovery/configuration/advanced-settings/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/application-health-checks/index.html b/docs/using-qovery/configuration/application-health-checks/index.html index 6b478eb3cf..5f699480e2 100644 --- a/docs/using-qovery/configuration/application-health-checks/index.html +++ b/docs/using-qovery/configuration/application-health-checks/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/docs/using-qovery/configuration/application/index.html b/docs/using-qovery/configuration/application/index.html index add056d2aa..4fcf58904e 100644 --- a/docs/using-qovery/configuration/application/index.html +++ b/docs/using-qovery/configuration/application/index.html @@ -26,7 +26,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/docs/using-qovery/configuration/cloud-service-provider/index.html b/docs/using-qovery/configuration/cloud-service-provider/index.html index 600aed9f58..819ff7412f 100644 --- a/docs/using-qovery/configuration/cloud-service-provider/index.html +++ b/docs/using-qovery/configuration/cloud-service-provider/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/cluster-advanced-settings/index.html b/docs/using-qovery/configuration/cluster-advanced-settings/index.html index 580e3d0ed4..168ddf7de4 100644 --- a/docs/using-qovery/configuration/cluster-advanced-settings/index.html +++ b/docs/using-qovery/configuration/cluster-advanced-settings/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/clusters/index.html b/docs/using-qovery/configuration/clusters/index.html index ec2547e813..4202fa8af4 100644 --- a/docs/using-qovery/configuration/clusters/index.html +++ b/docs/using-qovery/configuration/clusters/index.html @@ -26,7 +26,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/docs/using-qovery/configuration/cronjob/index.html b/docs/using-qovery/configuration/cronjob/index.html index 8e6c81310a..bf1a4d02d5 100644 --- a/docs/using-qovery/configuration/cronjob/index.html +++ b/docs/using-qovery/configuration/cronjob/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/docs/using-qovery/configuration/database/index.html b/docs/using-qovery/configuration/database/index.html index 93492c5689..dc08ebd828 100644 --- a/docs/using-qovery/configuration/database/index.html +++ b/docs/using-qovery/configuration/database/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/configuration/database/mongodb/index.html b/docs/using-qovery/configuration/database/mongodb/index.html index 5cae254d36..d518c5d328 100644 --- a/docs/using-qovery/configuration/database/mongodb/index.html +++ b/docs/using-qovery/configuration/database/mongodb/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/database/mysql/index.html b/docs/using-qovery/configuration/database/mysql/index.html index 3d78d8910e..4889682fb9 100644 --- a/docs/using-qovery/configuration/database/mysql/index.html +++ b/docs/using-qovery/configuration/database/mysql/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/database/postgresql/index.html b/docs/using-qovery/configuration/database/postgresql/index.html index 8422b337a9..1de99e6945 100644 --- a/docs/using-qovery/configuration/database/postgresql/index.html +++ b/docs/using-qovery/configuration/database/postgresql/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/database/redis/index.html b/docs/using-qovery/configuration/database/redis/index.html index 8792d4f46f..671c04484b 100644 --- a/docs/using-qovery/configuration/database/redis/index.html +++ b/docs/using-qovery/configuration/database/redis/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/deployment-rule/index.html b/docs/using-qovery/configuration/deployment-rule/index.html index 6f32065e29..3e52ccecb5 100644 --- a/docs/using-qovery/configuration/deployment-rule/index.html +++ b/docs/using-qovery/configuration/deployment-rule/index.html @@ -26,7 +26,7 @@ - + @@ -63,7 +63,7 @@ - + diff --git a/docs/using-qovery/configuration/environment-variable/index.html b/docs/using-qovery/configuration/environment-variable/index.html index c65faa2f26..4ee7b56684 100644 --- a/docs/using-qovery/configuration/environment-variable/index.html +++ b/docs/using-qovery/configuration/environment-variable/index.html @@ -26,7 +26,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/docs/using-qovery/configuration/environment/index.html b/docs/using-qovery/configuration/environment/index.html index 6d400eadeb..3024bd5ff2 100644 --- a/docs/using-qovery/configuration/environment/index.html +++ b/docs/using-qovery/configuration/environment/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/using-qovery/configuration/helm/index.html b/docs/using-qovery/configuration/helm/index.html index c80e85a1f0..09b5d0bbd0 100644 --- a/docs/using-qovery/configuration/helm/index.html +++ b/docs/using-qovery/configuration/helm/index.html @@ -26,7 +26,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/docs/using-qovery/configuration/index.html b/docs/using-qovery/configuration/index.html index eb53cebe02..8f614a8824 100644 --- a/docs/using-qovery/configuration/index.html +++ b/docs/using-qovery/configuration/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/lifecycle-job/index.html b/docs/using-qovery/configuration/lifecycle-job/index.html index ed35c26a61..68295d3d7f 100644 --- a/docs/using-qovery/configuration/lifecycle-job/index.html +++ b/docs/using-qovery/configuration/lifecycle-job/index.html @@ -26,7 +26,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/docs/using-qovery/configuration/object-storage/index.html b/docs/using-qovery/configuration/object-storage/index.html index 383d76fda3..f1d93c5ed5 100644 --- a/docs/using-qovery/configuration/object-storage/index.html +++ b/docs/using-qovery/configuration/object-storage/index.html @@ -26,7 +26,7 @@ - + @@ -66,7 +66,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/api-token/index.html b/docs/using-qovery/configuration/organization/api-token/index.html index d62f153583..f038097887 100644 --- a/docs/using-qovery/configuration/organization/api-token/index.html +++ b/docs/using-qovery/configuration/organization/api-token/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/container-registry/index.html b/docs/using-qovery/configuration/organization/container-registry/index.html index 6547aa9dbd..d047f5b209 100644 --- a/docs/using-qovery/configuration/organization/container-registry/index.html +++ b/docs/using-qovery/configuration/organization/container-registry/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/git-repository-access/index.html b/docs/using-qovery/configuration/organization/git-repository-access/index.html index 9835efbb9a..4a566d2965 100644 --- a/docs/using-qovery/configuration/organization/git-repository-access/index.html +++ b/docs/using-qovery/configuration/organization/git-repository-access/index.html @@ -26,7 +26,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/helm-repository/index.html b/docs/using-qovery/configuration/organization/helm-repository/index.html index df25017c90..ae2ed5222d 100644 --- a/docs/using-qovery/configuration/organization/helm-repository/index.html +++ b/docs/using-qovery/configuration/organization/helm-repository/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/index.html b/docs/using-qovery/configuration/organization/index.html index d1e4f2dc0b..2ebffcd94e 100644 --- a/docs/using-qovery/configuration/organization/index.html +++ b/docs/using-qovery/configuration/organization/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/labels-annotations/index.html b/docs/using-qovery/configuration/organization/labels-annotations/index.html index 6f09f726e5..23a9187156 100644 --- a/docs/using-qovery/configuration/organization/labels-annotations/index.html +++ b/docs/using-qovery/configuration/organization/labels-annotations/index.html @@ -26,7 +26,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/docs/using-qovery/configuration/organization/members-rbac/index.html b/docs/using-qovery/configuration/organization/members-rbac/index.html index eede973d77..45b996fcbd 100644 --- a/docs/using-qovery/configuration/organization/members-rbac/index.html +++ b/docs/using-qovery/configuration/organization/members-rbac/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/configuration/project/index.html b/docs/using-qovery/configuration/project/index.html index 4b17c72326..6a14ae53e2 100644 --- a/docs/using-qovery/configuration/project/index.html +++ b/docs/using-qovery/configuration/project/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/provider/index.html b/docs/using-qovery/configuration/provider/index.html index 5207c1fce0..160ea506b5 100644 --- a/docs/using-qovery/configuration/provider/index.html +++ b/docs/using-qovery/configuration/provider/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/configuration/service-health-checks/index.html b/docs/using-qovery/configuration/service-health-checks/index.html index 19ef3b6807..f73032eb30 100644 --- a/docs/using-qovery/configuration/service-health-checks/index.html +++ b/docs/using-qovery/configuration/service-health-checks/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/docs/using-qovery/configuration/user-account/index.html b/docs/using-qovery/configuration/user-account/index.html index 080f1b30b5..b5fd305ced 100644 --- a/docs/using-qovery/configuration/user-account/index.html +++ b/docs/using-qovery/configuration/user-account/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/using-qovery/deployment/deploying-with-auto-deploy/index.html b/docs/using-qovery/deployment/deploying-with-auto-deploy/index.html index cf70742d11..85ede13128 100644 --- a/docs/using-qovery/deployment/deploying-with-auto-deploy/index.html +++ b/docs/using-qovery/deployment/deploying-with-auto-deploy/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/docs/using-qovery/deployment/deploying-with-ci-cd/index.html b/docs/using-qovery/deployment/deploying-with-ci-cd/index.html index b272e9e06f..6a2066fe0f 100644 --- a/docs/using-qovery/deployment/deploying-with-ci-cd/index.html +++ b/docs/using-qovery/deployment/deploying-with-ci-cd/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/deployment/deployment-actions/index.html b/docs/using-qovery/deployment/deployment-actions/index.html index 797ad84e1b..357834ae2b 100644 --- a/docs/using-qovery/deployment/deployment-actions/index.html +++ b/docs/using-qovery/deployment/deployment-actions/index.html @@ -26,7 +26,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/docs/using-qovery/deployment/deployment-history/index.html b/docs/using-qovery/deployment/deployment-history/index.html index 0a7eeac0ea..9d8cde0602 100644 --- a/docs/using-qovery/deployment/deployment-history/index.html +++ b/docs/using-qovery/deployment/deployment-history/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/deployment/deployment-pipeline/index.html b/docs/using-qovery/deployment/deployment-pipeline/index.html index f7c4b6caeb..91bef684a4 100644 --- a/docs/using-qovery/deployment/deployment-pipeline/index.html +++ b/docs/using-qovery/deployment/deployment-pipeline/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/deployment/deployment-strategies/index.html b/docs/using-qovery/deployment/deployment-strategies/index.html index caf74efee4..a104d0ec04 100644 --- a/docs/using-qovery/deployment/deployment-strategies/index.html +++ b/docs/using-qovery/deployment/deployment-strategies/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/deployment/image-mirroring/index.html b/docs/using-qovery/deployment/image-mirroring/index.html index 493141f46e..360c8b3542 100644 --- a/docs/using-qovery/deployment/image-mirroring/index.html +++ b/docs/using-qovery/deployment/image-mirroring/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/deployment/index.html b/docs/using-qovery/deployment/index.html index f284f52b85..9a46703b42 100644 --- a/docs/using-qovery/deployment/index.html +++ b/docs/using-qovery/deployment/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/deployment/logs/index.html b/docs/using-qovery/deployment/logs/index.html index 16ec400c14..e188a96acc 100644 --- a/docs/using-qovery/deployment/logs/index.html +++ b/docs/using-qovery/deployment/logs/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/deployment/running-and-deployment-statuses/index.html b/docs/using-qovery/deployment/running-and-deployment-statuses/index.html index 24ffe080d3..8d1e563440 100644 --- a/docs/using-qovery/deployment/running-and-deployment-statuses/index.html +++ b/docs/using-qovery/deployment/running-and-deployment-statuses/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/index.html b/docs/using-qovery/index.html index db1b56d622..22eb57f25d 100644 --- a/docs/using-qovery/index.html +++ b/docs/using-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/api-integration/index.html b/docs/using-qovery/integration/api-integration/index.html index 5617c2a159..97196c0698 100644 --- a/docs/using-qovery/integration/api-integration/index.html +++ b/docs/using-qovery/integration/api-integration/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/container-registry/index.html b/docs/using-qovery/integration/container-registry/index.html index ed86f962c4..6bedda7e9d 100644 --- a/docs/using-qovery/integration/container-registry/index.html +++ b/docs/using-qovery/integration/container-registry/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/continuous-integration/circle-ci/index.html b/docs/using-qovery/integration/continuous-integration/circle-ci/index.html index 8b95e38744..0759b29468 100644 --- a/docs/using-qovery/integration/continuous-integration/circle-ci/index.html +++ b/docs/using-qovery/integration/continuous-integration/circle-ci/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/integration/continuous-integration/github-actions/index.html b/docs/using-qovery/integration/continuous-integration/github-actions/index.html index 14ac2008b5..8fdf9931f6 100644 --- a/docs/using-qovery/integration/continuous-integration/github-actions/index.html +++ b/docs/using-qovery/integration/continuous-integration/github-actions/index.html @@ -26,7 +26,7 @@ - + @@ -66,7 +66,7 @@ - + diff --git a/docs/using-qovery/integration/continuous-integration/gitlab-ci/index.html b/docs/using-qovery/integration/continuous-integration/gitlab-ci/index.html index e66f75970d..151bb96f1b 100644 --- a/docs/using-qovery/integration/continuous-integration/gitlab-ci/index.html +++ b/docs/using-qovery/integration/continuous-integration/gitlab-ci/index.html @@ -26,7 +26,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/docs/using-qovery/integration/continuous-integration/index.html b/docs/using-qovery/integration/continuous-integration/index.html index e400bef7fc..f5a00f81ee 100644 --- a/docs/using-qovery/integration/continuous-integration/index.html +++ b/docs/using-qovery/integration/continuous-integration/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/continuous-integration/jenkins/index.html b/docs/using-qovery/integration/continuous-integration/jenkins/index.html index 50354ae5c2..43819892ec 100644 --- a/docs/using-qovery/integration/continuous-integration/jenkins/index.html +++ b/docs/using-qovery/integration/continuous-integration/jenkins/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/integration/git-repository/index.html b/docs/using-qovery/integration/git-repository/index.html index de5d01d792..7cb2c6831c 100644 --- a/docs/using-qovery/integration/git-repository/index.html +++ b/docs/using-qovery/integration/git-repository/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/helm-repository/index.html b/docs/using-qovery/integration/helm-repository/index.html index 88042f2add..df72330c23 100644 --- a/docs/using-qovery/integration/helm-repository/index.html +++ b/docs/using-qovery/integration/helm-repository/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/index.html b/docs/using-qovery/integration/index.html index d420154a93..f8045bb25a 100644 --- a/docs/using-qovery/integration/index.html +++ b/docs/using-qovery/integration/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/monitoring/datadog/index.html b/docs/using-qovery/integration/monitoring/datadog/index.html index 3450d0c92b..96faf08d71 100644 --- a/docs/using-qovery/integration/monitoring/datadog/index.html +++ b/docs/using-qovery/integration/monitoring/datadog/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/integration/monitoring/index.html b/docs/using-qovery/integration/monitoring/index.html index 6c214f937e..0ab12ba9e8 100644 --- a/docs/using-qovery/integration/monitoring/index.html +++ b/docs/using-qovery/integration/monitoring/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/monitoring/new-relic/index.html b/docs/using-qovery/integration/monitoring/new-relic/index.html index 5c2de57dc1..c78deaede5 100644 --- a/docs/using-qovery/integration/monitoring/new-relic/index.html +++ b/docs/using-qovery/integration/monitoring/new-relic/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/secret-manager/aws-secrets-manager/index.html b/docs/using-qovery/integration/secret-manager/aws-secrets-manager/index.html index a397b950d6..b53dd935bd 100644 --- a/docs/using-qovery/integration/secret-manager/aws-secrets-manager/index.html +++ b/docs/using-qovery/integration/secret-manager/aws-secrets-manager/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/secret-manager/doppler/index.html b/docs/using-qovery/integration/secret-manager/doppler/index.html index 51731f527e..a5d3644c76 100644 --- a/docs/using-qovery/integration/secret-manager/doppler/index.html +++ b/docs/using-qovery/integration/secret-manager/doppler/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/secret-manager/index.html b/docs/using-qovery/integration/secret-manager/index.html index 64976a19dc..f9e1644843 100644 --- a/docs/using-qovery/integration/secret-manager/index.html +++ b/docs/using-qovery/integration/secret-manager/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/slack/index.html b/docs/using-qovery/integration/slack/index.html index 6a8ede7a3a..975a3e839a 100644 --- a/docs/using-qovery/integration/slack/index.html +++ b/docs/using-qovery/integration/slack/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/integration/terraform/index.html b/docs/using-qovery/integration/terraform/index.html index 5aa048c97b..3cf2343805 100644 --- a/docs/using-qovery/integration/terraform/index.html +++ b/docs/using-qovery/integration/terraform/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/using-qovery/integration/webhook/index.html b/docs/using-qovery/integration/webhook/index.html index 50fa59bde5..e53d82112c 100644 --- a/docs/using-qovery/integration/webhook/index.html +++ b/docs/using-qovery/integration/webhook/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/interface/cli/index.html b/docs/using-qovery/interface/cli/index.html index a43e65d982..0b85dfb3d0 100644 --- a/docs/using-qovery/interface/cli/index.html +++ b/docs/using-qovery/interface/cli/index.html @@ -26,7 +26,7 @@ - + @@ -89,7 +89,7 @@ - + diff --git a/docs/using-qovery/interface/index.html b/docs/using-qovery/interface/index.html index 0b31649fee..0eba2764a3 100644 --- a/docs/using-qovery/interface/index.html +++ b/docs/using-qovery/interface/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/interface/rest-api/index.html b/docs/using-qovery/interface/rest-api/index.html index c8088c792d..5e656d0c17 100644 --- a/docs/using-qovery/interface/rest-api/index.html +++ b/docs/using-qovery/interface/rest-api/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/interface/terraform-interface/index.html b/docs/using-qovery/interface/terraform-interface/index.html index 1b01b1b9cd..dceff9f805 100644 --- a/docs/using-qovery/interface/terraform-interface/index.html +++ b/docs/using-qovery/interface/terraform-interface/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/interface/web-interface/index.html b/docs/using-qovery/interface/web-interface/index.html index cb66fe09b8..28fe7e4b7d 100644 --- a/docs/using-qovery/interface/web-interface/index.html +++ b/docs/using-qovery/interface/web-interface/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/maintenance/index.html b/docs/using-qovery/maintenance/index.html index 35a7a5ee85..9f0a43881d 100644 --- a/docs/using-qovery/maintenance/index.html +++ b/docs/using-qovery/maintenance/index.html @@ -26,7 +26,7 @@ - + @@ -71,7 +71,7 @@ - + diff --git a/docs/using-qovery/troubleshoot/cluster-troubleshoot/index.html b/docs/using-qovery/troubleshoot/cluster-troubleshoot/index.html index c0ed32a9dd..97c8f9bda7 100644 --- a/docs/using-qovery/troubleshoot/cluster-troubleshoot/index.html +++ b/docs/using-qovery/troubleshoot/cluster-troubleshoot/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/troubleshoot/index.html b/docs/using-qovery/troubleshoot/index.html index cff44756ce..fd1569ee17 100644 --- a/docs/using-qovery/troubleshoot/index.html +++ b/docs/using-qovery/troubleshoot/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/docs/using-qovery/troubleshoot/service-deployment-troubleshoot/index.html b/docs/using-qovery/troubleshoot/service-deployment-troubleshoot/index.html index 8d295d6cda..14cc59bc5a 100644 --- a/docs/using-qovery/troubleshoot/service-deployment-troubleshoot/index.html +++ b/docs/using-qovery/troubleshoot/service-deployment-troubleshoot/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/using-qovery/troubleshoot/service-run-troubleshoot/index.html b/docs/using-qovery/troubleshoot/service-run-troubleshoot/index.html index c4715ee88b..dcb356e686 100644 --- a/docs/using-qovery/troubleshoot/service-run-troubleshoot/index.html +++ b/docs/using-qovery/troubleshoot/service-run-troubleshoot/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/e9c994cf.af24d871.js b/e9c994cf.af24d871.js deleted file mode 100644 index 052f748b18..0000000000 --- a/e9c994cf.af24d871.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see e9c994cf.af24d871.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[271],{423:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return b})),n.d(t,"rightToc",(function(){return s})),n.d(t,"default",(function(){return d}));var r=n(1),a=n(9),o=(n(0),n(445)),i=n(452),c=n(444),l=n(449),u=(n(453),{last_modified_on:"2023-12-30",$schema:"/.meta/.schemas/guides.json",title:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",author_github:"https://github.com/l0ck3",tags:["type: tutorial","installation_guide: aws"],hide_pagination:!0}),b={categories:[{name:"tutorial",title:"Tutorial",description:"Additional step-by-step resources to leverage even more Qovery",permalink:"/guides/tutorial"}],coverLabel:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",permalink:"/guides/tutorial/aws-vpc-peering-with-qovery",readingTime:"6 min read",source:"@site/guides/tutorial/aws-vpc-peering-with-qovery.md",tags:[{label:"type: tutorial",permalink:"/guides/tags/type-tutorial"},{label:"installation_guide: aws",permalink:"/guides/tags/installation-guide-aws"}],title:"Setup VPC peering on AWS with Qovery",truncated:!1,prevItem:{title:"Setting up Cloudflare and Custom Domain on Qovery",permalink:"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},nextItem:{title:"Terraform",permalink:"/guides/advanced/terraform"}},s=[{value:"Goal",id:"goal",children:[]}],p={rightToc:s};function d(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(o.b)("wrapper",Object(r.a)({},p,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications.\nThis tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account."),Object(o.b)(l.a,{name:"guide",mdxType:"Assumptions"},Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"You have an existing AWS VPC with a resource you need to access, like an RDS database"),Object(o.b)("li",{parentName:"ul"},"You have a ",Object(o.b)("a",Object(r.a)({parentName:"li"},{href:"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),"Qovery cluster ready on your AWS account")))),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(o.b)("br",null),Object(o.b)("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(o.b)("h2",{id:"goal"},"Goal"),Object(o.b)("p",null,"In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster.\nWe should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC."),Object(o.b)(i.a,{headingDepth:3,mdxType:"Steps"},Object(o.b)("ol",null,Object(o.b)("li",null,Object(o.b)("h4",{id:"gather-the-necessary-information"},"Gather the necessary information"),Object(o.b)("p",null,"Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience."),Object(o.b)("p",null,"At the end of this step 1, you should have those elements:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"y.y.y.y/y")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-yyy")))),Object(o.b)("p",null,"Keep in mind the following convention:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Existing VPC: your current VPC infrastructure (not managed by Qovery)"),Object(o.b)("li",{parentName:"ul"},"Qovery VPC: the VPC deployed and managed by Qovery")),Object(o.b)("p",null),Object(o.b)("h5",{id:"your-existing-vpc-id"},"Your existing VPC ID"),Object(o.b)("p",null,"To get your existing VPC ID in your AWS console, go to: ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Your VPCs"),", find the VPC you would like to use as a peering target, and copy its ID"),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(o.b)("h5",{id:"the-qovery-vpc-id"},"The Qovery VPC ID"),Object(o.b)("p",null,"You can use the same method to get the Qovery VPC ID. It should be named ",Object(o.b)("inlineCode",{parentName:"p"},"qovery-eks-workers"),"."),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",null)),Object(o.b)("li",null,Object(o.b)("h5",{id:"the-cidr-ranges-of-both-vpcs"},"The CIDR ranges of both VPCs"),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"create-a-peering-connection"},"Create a peering connection"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.")),Object(o.b)("p",null,"In the AWS console, go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Peering connections")," and click on ",Object(o.b)("inlineCode",{parentName:"p"},"Create peering connection")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Give it a name"),Object(o.b)("li",{parentName:"ul"},"As a requester, select your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As an accepter, select your existing VPC"),Object(o.b)("li",{parentName:"ul"},"Click on ",Object(o.b)("inlineCode",{parentName:"li"},"Create peering connection"))),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"accept-the-peering-request"},"Accept the peering request"),Object(o.b)("p",null,"Once created, the peering connection needs to be accepted.\nOn the peering connection view, click on ",Object(o.b)("inlineCode",{parentName:"p"},"Actions")," then ",Object(o.b)("inlineCode",{parentName:"p"},"Accept request")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(o.b)("p",null,"You should see your peering connection marked as ",Object(o.b)("inlineCode",{parentName:"p"},"Active")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(o.b)(c.a,{type:"info",mdxType:"Alert"},Object(o.b)("b",null,"Take note of the peering connection ID. You will need it later."))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-existing-vpc-route-table"},"Update existing VPC route table"),Object(o.b)("p",null,"In the AWS console of your ",Object(o.b)("strong",{parentName:"p"},"non Qovery VPC"),", go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Route Tables"),".\nYou can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"Thanks Kevin M. for your contribution here \ud83d\ude0a")),Object(o.b)("p",null,"For your existing VPC edit the route table:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(o.b)("p",null,"Click on the ",Object(o.b)("inlineCode",{parentName:"p"},"Edit routes")," button then ",Object(o.b)("inlineCode",{parentName:"p"},"Add route"),"."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, select the ",Object(o.b)("inlineCode",{parentName:"li"},"Peering connection")," you created earlier")),Object(o.b)("p",null,"Click ",Object(o.b)("inlineCode",{parentName:"p"},"Save changes"),"."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-qovery-vpc-route-table"},"Update Qovery VPC route table"),Object(o.b)("p",null,"This part needs to be done through the Qovery console."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(o.b)("p",null,"In the cluster settings, under the ",Object(o.b)("inlineCode",{parentName:"p"},"Network")," tab, click ",Object(o.b)("inlineCode",{parentName:"p"},"ADD ROUTE")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your existing VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, enter the ID of the peering connection you created earlier"),Object(o.b)("li",{parentName:"ul"},"You can put anything you want as a description.")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},Object(o.b)("p",null,'You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".'))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-the-security-groups"},"Update the security groups"),Object(o.b)("p",null,"Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources."),Object(o.b)("p",null,"What rules to put on your security groups depends on what you are trying to achieve.\nIn our case, we would like to access an RDS instance from our Qovery applications."),Object(o.b)("p",null,"We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"deploy-an-application"},"Deploy an application"),Object(o.b)("p",null,"You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster.\nRefer to ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"/guides/getting-started/deploy-your-first-application/"}),"this guide")," if you need help deploying an application on Qovery.")))),Object(o.b)("p",null,"You can learn more about VPC peering on AWS here: ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html")))}d.isMDXComponent=!0},443:function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),b=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},s=function(e){var t=b(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=b(n),d=r,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||o;return n?a.a.createElement(m,c({ref:t},u,{components:n})):a.a.createElement(m,c({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u1?arguments[1]:void 0,n),l=i>2?arguments[2]:void 0,u=void 0===l?n:a(l,n);u>c;)t[c++]=e;return t}},448:function(e,t,n){var r=n(28).f,a=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in a||n(10)&&r(a,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},449:function(e,t,n){"use strict";n(448);var r=n(0),a=n.n(r),o=n(444);t.a=function(e){var t=e.children,n=e.name;return a.a.createElement(o.a,{type:"info",fill:!0,icon:!1,rounded:!0,className:"list--icons list--icons--arrow list--tight list--indent margin-bottom--lg"},a.a.createElement("p",{class:"text--lg margin-bottom--sm",style:{marginTop:"-0.25em"}},"Before you begin, this ",n||"page"," assumes the following:"),t)}},450:function(e,t,n){"use strict";var r=n(1),a=n(0),o=n.n(a),i=n(39),c=n(454),l=n(20),u=n.n(l);t.a=function(e){var t,n=e.to,l=e.href,b=n||l,s=Object(c.a)(b),p=Object(a.useRef)(!1),d=u.a.canUseIntersectionObserver;return Object(a.useEffect)((function(){return!d&&s&&window.docusaurus.prefetch(b),function(){d&&t&&t.disconnect()}}),[b,d,s]),b&&s?o.a.createElement(i.b,Object(r.a)({},e,{onMouseEnter:function(){p.current||(window.docusaurus.preload(b),p.current=!0)},innerRef:function(e){var n,r;d&&e&&s&&(n=e,r=function(){window.docusaurus.prefetch(b)},(t=new window.IntersectionObserver((function(e){e.forEach((function(e){n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(t.unobserve(n),t.disconnect(),r())}))}))).observe(n))},to:b})):o.a.createElement("a",Object(r.a)({},e,{href:b}))}},451:function(e,t,n){"use strict";var r=n(455),a=n(51);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(a),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return o(r,t);if(Array.isArray(a)){var i=[];return a.slice().forEach((function(e){void 0!==e&&i.push(n(r,e,i.length))})),i.join("&")}return o(r,t)+"="+o(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},452:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=(n(443),n(451)),i=n.n(o);n(133);t.a=function(e){var t=e.children,n=e.headingDepth,o=e.hideFeedbackQuestion,c="undefined"!=typeof window?window.location:null,l={title:"Tutorial on "+c+" failed",body:"The tutorial on:\n\n"+c+"\n\nHere's what went wrong:\n\n\x3c!-- Insert command output and details. Thank you for reporting! :) --\x3e"},u="https://github.com/qovery/documentation/issues/new?"+i.a.stringify(l),b=Object(r.useState)(null),s=b[0],p=b[1];return a.a.createElement("div",{className:"steps steps--h"+n},t,!o&&!s&&a.a.createElement("div",{className:"steps--feedback"},"How was it? Did this tutorial work?\xa0\xa0",a.a.createElement("span",{className:"button button--sm button--primary",onClick:function(){return p("yes")}},"Yes"),"\xa0\xa0",a.a.createElement("a",{href:u,target:"_blank",className:"button button--sm button--primary"},"No")),"yes"==s&&a.a.createElement("div",{className:"steps--feedback steps--feedback--success"},"Thanks! If you're enjoying Qovery please consider ",a.a.createElement("a",{href:"https://github.com/qovery/documentation/",target:"_blank"},"starring our Github repo"),"."))}},453:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(450),i=n(443),c=n.n(i);n(134);t.a=function(e){var t=e.children,n=e.className,r=e.badge,i=e.leftIcon,l=e.rightIcon,u=e.size,b=e.target,s=e.to,p=c()("jump-to","jump-to--"+u,n),d=a.a.createElement("div",{className:"jump-to--inner"},a.a.createElement("div",{className:"jump-to--inner-2"},i&&a.a.createElement("div",{className:"jump-to--left"},a.a.createElement("i",{className:"feather icon-"+i})),a.a.createElement("div",{className:"jump-to--main"},r?a.a.createElement("span",{className:"badge badge--primary badge--right"},r):"",t),a.a.createElement("div",{className:"jump-to--right"},a.a.createElement("i",{className:"feather icon-"+(l||"chevron-right")+" arrow"}))));return b?a.a.createElement("a",{href:s,target:b,className:p},d):a.a.createElement(o.a,{to:s,className:p},d)}},454:function(e,t,n){"use strict";function r(e){return!1===/^(https?:|\/\/)/.test(e)}n.d(t,"a",(function(){return r}))},455:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file diff --git a/e9c994cf.b53cfd62.js b/e9c994cf.b53cfd62.js new file mode 100644 index 0000000000..c0eb34699c --- /dev/null +++ b/e9c994cf.b53cfd62.js @@ -0,0 +1,2 @@ +/*! For license information please see e9c994cf.b53cfd62.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[271],{423:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return b})),n.d(t,"rightToc",(function(){return s})),n.d(t,"default",(function(){return d}));var r=n(1),a=n(9),o=(n(0),n(445)),i=n(452),c=n(444),l=n(449),u=(n(453),{last_modified_on:"2024-07-12",$schema:"/.meta/.schemas/guides.json",title:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",author_github:"https://github.com/l0ck3",tags:["type: tutorial","installation_guide: aws"],hide_pagination:!0}),b={categories:[{name:"tutorial",title:"Tutorial",description:"Additional step-by-step resources to leverage even more Qovery",permalink:"/guides/tutorial"}],coverLabel:"Setup VPC peering on AWS with Qovery",description:"How to peer a Qovery VPC with an existing VPC on AWS",permalink:"/guides/tutorial/aws-vpc-peering-with-qovery",readingTime:"6 min read",source:"@site/guides/tutorial/aws-vpc-peering-with-qovery.md",tags:[{label:"type: tutorial",permalink:"/guides/tags/type-tutorial"},{label:"installation_guide: aws",permalink:"/guides/tags/installation-guide-aws"}],title:"Setup VPC peering on AWS with Qovery",truncated:!1,prevItem:{title:"Setting up Cloudflare and Custom Domain on Qovery",permalink:"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},nextItem:{title:"Terraform",permalink:"/guides/advanced/terraform"}},s=[{value:"Goal",id:"goal",children:[]}],p={rightToc:s};function d(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(o.b)("wrapper",Object(r.a)({},p,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications.\nThis tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account."),Object(o.b)(l.a,{name:"guide",mdxType:"Assumptions"},Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"You have an existing AWS VPC with a resource you need to access, like an RDS database"),Object(o.b)("li",{parentName:"ul"},"You have a ",Object(o.b)("a",Object(r.a)({parentName:"li"},{href:"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),"Qovery cluster ready on your AWS account")))),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(o.b)("br",null),Object(o.b)("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(o.b)("h2",{id:"goal"},"Goal"),Object(o.b)("p",null,"In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster.\nWe should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC."),Object(o.b)(i.a,{headingDepth:3,mdxType:"Steps"},Object(o.b)("ol",null,Object(o.b)("li",null,Object(o.b)("h4",{id:"gather-the-necessary-information"},"Gather the necessary information"),Object(o.b)("p",null,"Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience."),Object(o.b)("p",null,"At the end of this step 1, you should have those elements:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"y.y.y.y/y")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-yyy")))),Object(o.b)("p",null,"Keep in mind the following convention:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Existing VPC: your current VPC infrastructure (not managed by Qovery)"),Object(o.b)("li",{parentName:"ul"},"Qovery VPC: the VPC deployed and managed by Qovery")),Object(o.b)("p",null),Object(o.b)("h5",{id:"your-existing-vpc-id"},"Your existing VPC ID"),Object(o.b)("p",null,"To get your existing VPC ID in your AWS console, go to: ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Your VPCs"),", find the VPC you would like to use as a peering target, and copy its ID"),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC destination name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(o.b)("h5",{id:"the-qovery-vpc-id"},"The Qovery VPC ID"),Object(o.b)("p",null,"You can use the same method to get the Qovery VPC ID. It should be named ",Object(o.b)("inlineCode",{parentName:"p"},"qovery-eks-workers"),"."),Object(o.b)("p",null,"You will be able to have those information:"),Object(o.b)("table",null,Object(o.b)("thead",{parentName:"table"},Object(o.b)("tr",{parentName:"thead"},Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(o.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Content"))),Object(o.b)("tbody",{parentName:"table"},Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source CIDR")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"x.x.x.x/x")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(o.b)("strong",{parentName:"td"},"VPC source name")),Object(o.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"vpc-xxx")))),Object(o.b)("p",null)),Object(o.b)("li",null,Object(o.b)("h5",{id:"the-cidr-ranges-of-both-vpcs"},"The CIDR ranges of both VPCs"),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"create-a-peering-connection"},"Create a peering connection"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.")),Object(o.b)("p",null,"In the AWS console, go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Peering connections")," and click on ",Object(o.b)("inlineCode",{parentName:"p"},"Create peering connection")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Give it a name"),Object(o.b)("li",{parentName:"ul"},"As a requester, select your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As an accepter, select your existing VPC"),Object(o.b)("li",{parentName:"ul"},"Click on ",Object(o.b)("inlineCode",{parentName:"li"},"Create peering connection"))),Object(o.b)("br",null),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"accept-the-peering-request"},"Accept the peering request"),Object(o.b)("p",null,"Once created, the peering connection needs to be accepted.\nOn the peering connection view, click on ",Object(o.b)("inlineCode",{parentName:"p"},"Actions")," then ",Object(o.b)("inlineCode",{parentName:"p"},"Accept request")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(o.b)("p",null,"You should see your peering connection marked as ",Object(o.b)("inlineCode",{parentName:"p"},"Active")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(o.b)(c.a,{type:"info",mdxType:"Alert"},Object(o.b)("b",null,"Take note of the peering connection ID. You will need it later."))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-existing-vpc-route-table"},"Update existing VPC route table"),Object(o.b)("p",null,"In the AWS console of your ",Object(o.b)("strong",{parentName:"p"},"Qovery VPC"),", go to ",Object(o.b)("inlineCode",{parentName:"p"},"VPC > Route Tables"),".\nYou can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC."),Object(o.b)("p",null,"For your existing VPC edit the route table:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(o.b)("p",null,"Click on the ",Object(o.b)("inlineCode",{parentName:"p"},"Edit routes")," button then ",Object(o.b)("inlineCode",{parentName:"p"},"Add route"),"."),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your Qovery VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, select the ",Object(o.b)("inlineCode",{parentName:"li"},"Peering connection")," you created earlier")),Object(o.b)("p",null,"Click ",Object(o.b)("inlineCode",{parentName:"p"},"Save changes"),"."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-qovery-vpc-route-table"},"Update Qovery VPC route table"),Object(o.b)("p",null,"This part needs to be done through the Qovery console."),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(o.b)("p",null,"In the cluster settings, under the ",Object(o.b)("inlineCode",{parentName:"p"},"Network")," tab, click ",Object(o.b)("inlineCode",{parentName:"p"},"Add Network")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"As a destination, enter the CIDR of your existing VPC"),Object(o.b)("li",{parentName:"ul"},"As a target, enter the ID of the peering connection you created earlier"),Object(o.b)("li",{parentName:"ul"},"You can put anything you want as a description.")),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(o.b)(c.a,{type:"warning",mdxType:"Alert"},Object(o.b)("p",null,'You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".'))),Object(o.b)("li",null,Object(o.b)("h4",{id:"update-the-security-groups"},"Update the security groups"),Object(o.b)("p",null,"Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources."),Object(o.b)("p",null,"What rules to put on your security groups depends on what you are trying to achieve.\nIn our case, we would like to access an RDS instance from our Qovery applications."),Object(o.b)("p",null,"We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:"),Object(o.b)("p",{align:"center"},Object(o.b)("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(o.b)("li",null,Object(o.b)("h4",{id:"deploy-an-application"},"Deploy an application"),Object(o.b)("p",null,"You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster.\nRefer to ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"/guides/getting-started/deploy-your-first-application/"}),"this guide")," if you need help deploying an application on Qovery.")))),Object(o.b)("p",null,"You can learn more about VPC peering on AWS here: ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html")))}d.isMDXComponent=!0},443:function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),b=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},s=function(e){var t=b(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=b(n),d=r,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||o;return n?a.a.createElement(m,c({ref:t},u,{components:n})):a.a.createElement(m,c({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u1?arguments[1]:void 0,n),l=i>2?arguments[2]:void 0,u=void 0===l?n:a(l,n);u>c;)t[c++]=e;return t}},448:function(e,t,n){var r=n(28).f,a=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in a||n(10)&&r(a,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},449:function(e,t,n){"use strict";n(448);var r=n(0),a=n.n(r),o=n(444);t.a=function(e){var t=e.children,n=e.name;return a.a.createElement(o.a,{type:"info",fill:!0,icon:!1,rounded:!0,className:"list--icons list--icons--arrow list--tight list--indent margin-bottom--lg"},a.a.createElement("p",{class:"text--lg margin-bottom--sm",style:{marginTop:"-0.25em"}},"Before you begin, this ",n||"page"," assumes the following:"),t)}},450:function(e,t,n){"use strict";var r=n(1),a=n(0),o=n.n(a),i=n(39),c=n(454),l=n(20),u=n.n(l);t.a=function(e){var t,n=e.to,l=e.href,b=n||l,s=Object(c.a)(b),p=Object(a.useRef)(!1),d=u.a.canUseIntersectionObserver;return Object(a.useEffect)((function(){return!d&&s&&window.docusaurus.prefetch(b),function(){d&&t&&t.disconnect()}}),[b,d,s]),b&&s?o.a.createElement(i.b,Object(r.a)({},e,{onMouseEnter:function(){p.current||(window.docusaurus.preload(b),p.current=!0)},innerRef:function(e){var n,r;d&&e&&s&&(n=e,r=function(){window.docusaurus.prefetch(b)},(t=new window.IntersectionObserver((function(e){e.forEach((function(e){n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(t.unobserve(n),t.disconnect(),r())}))}))).observe(n))},to:b})):o.a.createElement("a",Object(r.a)({},e,{href:b}))}},451:function(e,t,n){"use strict";var r=n(455),a=n(51);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(a),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return o(r,t);if(Array.isArray(a)){var i=[];return a.slice().forEach((function(e){void 0!==e&&i.push(n(r,e,i.length))})),i.join("&")}return o(r,t)+"="+o(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},452:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=(n(443),n(451)),i=n.n(o);n(133);t.a=function(e){var t=e.children,n=e.headingDepth,o=e.hideFeedbackQuestion,c="undefined"!=typeof window?window.location:null,l={title:"Tutorial on "+c+" failed",body:"The tutorial on:\n\n"+c+"\n\nHere's what went wrong:\n\n\x3c!-- Insert command output and details. Thank you for reporting! :) --\x3e"},u="https://github.com/qovery/documentation/issues/new?"+i.a.stringify(l),b=Object(r.useState)(null),s=b[0],p=b[1];return a.a.createElement("div",{className:"steps steps--h"+n},t,!o&&!s&&a.a.createElement("div",{className:"steps--feedback"},"How was it? Did this tutorial work?\xa0\xa0",a.a.createElement("span",{className:"button button--sm button--primary",onClick:function(){return p("yes")}},"Yes"),"\xa0\xa0",a.a.createElement("a",{href:u,target:"_blank",className:"button button--sm button--primary"},"No")),"yes"==s&&a.a.createElement("div",{className:"steps--feedback steps--feedback--success"},"Thanks! If you're enjoying Qovery please consider ",a.a.createElement("a",{href:"https://github.com/qovery/documentation/",target:"_blank"},"starring our Github repo"),"."))}},453:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(450),i=n(443),c=n.n(i);n(134);t.a=function(e){var t=e.children,n=e.className,r=e.badge,i=e.leftIcon,l=e.rightIcon,u=e.size,b=e.target,s=e.to,p=c()("jump-to","jump-to--"+u,n),d=a.a.createElement("div",{className:"jump-to--inner"},a.a.createElement("div",{className:"jump-to--inner-2"},i&&a.a.createElement("div",{className:"jump-to--left"},a.a.createElement("i",{className:"feather icon-"+i})),a.a.createElement("div",{className:"jump-to--main"},r?a.a.createElement("span",{className:"badge badge--primary badge--right"},r):"",t),a.a.createElement("div",{className:"jump-to--right"},a.a.createElement("i",{className:"feather icon-"+(l||"chevron-right")+" arrow"}))));return b?a.a.createElement("a",{href:s,target:b,className:p},d):a.a.createElement(o.a,{to:s,className:p},d)}},454:function(e,t,n){"use strict";function r(e){return!1===/^(https?:|\/\/)/.test(e)}n.d(t,"a",(function(){return r}))},455:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file diff --git a/e9c994cf.af24d871.js.LICENSE.txt b/e9c994cf.b53cfd62.js.LICENSE.txt similarity index 100% rename from e9c994cf.af24d871.js.LICENSE.txt rename to e9c994cf.b53cfd62.js.LICENSE.txt diff --git a/guides/advanced/continuous-integration/index.html b/guides/advanced/continuous-integration/index.html index 8875369c39..322b8168c2 100644 --- a/guides/advanced/continuous-integration/index.html +++ b/guides/advanced/continuous-integration/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/costs-control/index.html b/guides/advanced/costs-control/index.html index b0fa3b29d8..9137ea13cb 100644 --- a/guides/advanced/costs-control/index.html +++ b/guides/advanced/costs-control/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/deploy-api-gateway/index.html b/guides/advanced/deploy-api-gateway/index.html index 88ff1512c2..4a575410d5 100644 --- a/guides/advanced/deploy-api-gateway/index.html +++ b/guides/advanced/deploy-api-gateway/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/deploy-aws-services/index.html b/guides/advanced/deploy-aws-services/index.html index 8d2a2d478d..f50dbf3f18 100644 --- a/guides/advanced/deploy-aws-services/index.html +++ b/guides/advanced/deploy-aws-services/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/deploy-external-services/index.html b/guides/advanced/deploy-external-services/index.html index 4911bd3c82..820a80f8b8 100644 --- a/guides/advanced/deploy-external-services/index.html +++ b/guides/advanced/deploy-external-services/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/deploy-frontend/index.html b/guides/advanced/deploy-frontend/index.html index 1745e222f2..282a3557c5 100644 --- a/guides/advanced/deploy-frontend/index.html +++ b/guides/advanced/deploy-frontend/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/advanced/helm-chart/index.html b/guides/advanced/helm-chart/index.html index 1d5f0651e7..cc85e41b1c 100644 --- a/guides/advanced/helm-chart/index.html +++ b/guides/advanced/helm-chart/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/index.html b/guides/advanced/index.html index 3ceda899ff..20bf62bc79 100644 --- a/guides/advanced/index.html +++ b/guides/advanced/index.html @@ -26,7 +26,7 @@ - + @@ -79,7 +79,7 @@ - + diff --git a/guides/advanced/microservices/index.html b/guides/advanced/microservices/index.html index 46233c928c..252ad3b3d9 100644 --- a/guides/advanced/microservices/index.html +++ b/guides/advanced/microservices/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/guides/advanced/migration/index.html b/guides/advanced/migration/index.html index cdbfaedfa3..04681315b6 100644 --- a/guides/advanced/migration/index.html +++ b/guides/advanced/migration/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/monitoring/index.html b/guides/advanced/monitoring/index.html index 5724738e9a..ba0d456155 100644 --- a/guides/advanced/monitoring/index.html +++ b/guides/advanced/monitoring/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/monorepository/index.html b/guides/advanced/monorepository/index.html index 95ff7ec52c..6c75a01820 100644 --- a/guides/advanced/monorepository/index.html +++ b/guides/advanced/monorepository/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/advanced/production/index.html b/guides/advanced/production/index.html index 9c4ac4c3fd..9ed931b69c 100644 --- a/guides/advanced/production/index.html +++ b/guides/advanced/production/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/seed-database/index.html b/guides/advanced/seed-database/index.html index 77b61d2cdc..c952c2b9ec 100644 --- a/guides/advanced/seed-database/index.html +++ b/guides/advanced/seed-database/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/advanced/terraform/index.html b/guides/advanced/terraform/index.html index 7d22f40999..b0a7479dfc 100644 --- a/guides/advanced/terraform/index.html +++ b/guides/advanced/terraform/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/advanced/use-preview-environments/index.html b/guides/advanced/use-preview-environments/index.html index 56e40dea27..11b76b1329 100644 --- a/guides/advanced/use-preview-environments/index.html +++ b/guides/advanced/use-preview-environments/index.html @@ -26,7 +26,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/guides/getting-started/create-a-database/index.html b/guides/getting-started/create-a-database/index.html index bced4b41d2..8c497cb7ab 100644 --- a/guides/getting-started/create-a-database/index.html +++ b/guides/getting-started/create-a-database/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/getting-started/debugging/index.html b/guides/getting-started/debugging/index.html index 4cafff64bd..cb8fb39b1e 100644 --- a/guides/getting-started/debugging/index.html +++ b/guides/getting-started/debugging/index.html @@ -26,7 +26,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/guides/getting-started/deploy-your-first-application/index.html b/guides/getting-started/deploy-your-first-application/index.html index 3b33b55267..7023d83397 100644 --- a/guides/getting-started/deploy-your-first-application/index.html +++ b/guides/getting-started/deploy-your-first-application/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/getting-started/index.html b/guides/getting-started/index.html index e4a81bfed5..6a3e06f7bf 100644 --- a/guides/getting-started/index.html +++ b/guides/getting-started/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/guides/getting-started/managing-environment-variables/index.html b/guides/getting-started/managing-environment-variables/index.html index 79839ef582..6a1f574b6f 100644 --- a/guides/getting-started/managing-environment-variables/index.html +++ b/guides/getting-started/managing-environment-variables/index.html @@ -26,7 +26,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/guides/getting-started/setting-custom-domain/index.html b/guides/getting-started/setting-custom-domain/index.html index daf5f31228..50de221f06 100644 --- a/guides/getting-started/setting-custom-domain/index.html +++ b/guides/getting-started/setting-custom-domain/index.html @@ -26,7 +26,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/guides/index.html b/guides/index.html index 65523f6167..bd379709cd 100644 --- a/guides/index.html +++ b/guides/index.html @@ -26,7 +26,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -309,7 +309,7 @@ - + diff --git a/guides/installation-guide/guide-amazon-web-services/index.html b/guides/installation-guide/guide-amazon-web-services/index.html index 50bc044293..5a1cce8cf7 100644 --- a/guides/installation-guide/guide-amazon-web-services/index.html +++ b/guides/installation-guide/guide-amazon-web-services/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/installation-guide/guide-google-cloud-platform/index.html b/guides/installation-guide/guide-google-cloud-platform/index.html index d9e09aa543..d692e1ab00 100644 --- a/guides/installation-guide/guide-google-cloud-platform/index.html +++ b/guides/installation-guide/guide-google-cloud-platform/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/installation-guide/guide-kubernetes/index.html b/guides/installation-guide/guide-kubernetes/index.html index d9d1f86c81..420368d84f 100644 --- a/guides/installation-guide/guide-kubernetes/index.html +++ b/guides/installation-guide/guide-kubernetes/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/installation-guide/guide-microsoft-azure/index.html b/guides/installation-guide/guide-microsoft-azure/index.html index f6cdd21bad..f83a8229cd 100644 --- a/guides/installation-guide/guide-microsoft-azure/index.html +++ b/guides/installation-guide/guide-microsoft-azure/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/installation-guide/guide-scaleway/index.html b/guides/installation-guide/guide-scaleway/index.html index e9e98bbd68..001240ca94 100644 --- a/guides/installation-guide/guide-scaleway/index.html +++ b/guides/installation-guide/guide-scaleway/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/installation-guide/index.html b/guides/installation-guide/index.html index 5c98162494..120e05afe4 100644 --- a/guides/installation-guide/index.html +++ b/guides/installation-guide/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/guides/tags/database-postgresql/index.html b/guides/tags/database-postgresql/index.html index ccd6cce49c..1db3d3237b 100644 --- a/guides/tags/database-postgresql/index.html +++ b/guides/tags/database-postgresql/index.html @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/guides/tags/framework-rails/index.html b/guides/tags/framework-rails/index.html index 2d5f58a90b..7b4519f7b2 100644 --- a/guides/tags/framework-rails/index.html +++ b/guides/tags/framework-rails/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/index.html b/guides/tags/index.html index 318c2b59ec..129d24dd18 100644 --- a/guides/tags/index.html +++ b/guides/tags/index.html @@ -26,7 +26,7 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/guides/tags/installation-guide-aws/index.html b/guides/tags/installation-guide-aws/index.html index 5dd4532c1d..2b0855c9aa 100644 --- a/guides/tags/installation-guide-aws/index.html +++ b/guides/tags/installation-guide-aws/index.html @@ -26,7 +26,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -107,7 +107,7 @@ - + diff --git a/guides/tags/installation-guide-azure/index.html b/guides/tags/installation-guide-azure/index.html index bba6568822..28af0a7e96 100644 --- a/guides/tags/installation-guide-azure/index.html +++ b/guides/tags/installation-guide-azure/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/installation-guide-gcp/index.html b/guides/tags/installation-guide-gcp/index.html index 9cfe8cf5d4..7e220a7158 100644 --- a/guides/tags/installation-guide-gcp/index.html +++ b/guides/tags/installation-guide-gcp/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/installation-guide-kubernetes/index.html b/guides/tags/installation-guide-kubernetes/index.html index f2cbee7df5..51039d39e3 100644 --- a/guides/tags/installation-guide-kubernetes/index.html +++ b/guides/tags/installation-guide-kubernetes/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/installation-guide-scaleway/index.html b/guides/tags/installation-guide-scaleway/index.html index df45f91f00..3de2203937 100644 --- a/guides/tags/installation-guide-scaleway/index.html +++ b/guides/tags/installation-guide-scaleway/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/language-javascript/index.html b/guides/tags/language-javascript/index.html index da8abd850e..5091732449 100644 --- a/guides/tags/language-javascript/index.html +++ b/guides/tags/language-javascript/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/tags/language-kotlin/index.html b/guides/tags/language-kotlin/index.html index 542a23cd08..d98f43097e 100644 --- a/guides/tags/language-kotlin/index.html +++ b/guides/tags/language-kotlin/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/tags/language-ruby/index.html b/guides/tags/language-ruby/index.html index 5538f2aa8c..c23284a770 100644 --- a/guides/tags/language-ruby/index.html +++ b/guides/tags/language-ruby/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/language-rust/index.html b/guides/tags/language-rust/index.html index 5902d4f03d..ad2c215435 100644 --- a/guides/tags/language-rust/index.html +++ b/guides/tags/language-rust/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tags/technology-docker/index.html b/guides/tags/technology-docker/index.html index 1957abcc68..c1c4c062e1 100644 --- a/guides/tags/technology-docker/index.html +++ b/guides/tags/technology-docker/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/technology-github/index.html b/guides/tags/technology-github/index.html index 54ca3a8ded..5b91773112 100644 --- a/guides/tags/technology-github/index.html +++ b/guides/tags/technology-github/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/technology-helm/index.html b/guides/tags/technology-helm/index.html index e3fbe370b1..577dd6f786 100644 --- a/guides/tags/technology-helm/index.html +++ b/guides/tags/technology-helm/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/technology-qovery/index.html b/guides/tags/technology-qovery/index.html index 7fbfcfd462..411df362ea 100644 --- a/guides/tags/technology-qovery/index.html +++ b/guides/tags/technology-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -129,7 +129,7 @@ - + diff --git a/guides/tags/technology-terraform/index.html b/guides/tags/technology-terraform/index.html index 8ca9c82b0b..83bc13a00f 100644 --- a/guides/tags/technology-terraform/index.html +++ b/guides/tags/technology-terraform/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tags/type-guide/index.html b/guides/tags/type-guide/index.html index 515cf26d7e..95fb17c5c4 100644 --- a/guides/tags/type-guide/index.html +++ b/guides/tags/type-guide/index.html @@ -26,7 +26,7 @@ - + @@ -99,7 +99,7 @@ - + diff --git a/guides/tags/type-tutorial/index.html b/guides/tags/type-tutorial/index.html index 4ec849c0ed..04ac58a876 100644 --- a/guides/tags/type-tutorial/index.html +++ b/guides/tags/type-tutorial/index.html @@ -26,7 +26,7 @@ - + @@ -106,7 +106,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -211,7 +211,7 @@ - + diff --git a/guides/tutorial/aws-sqs-lambda-with-qovery/index.html b/guides/tutorial/aws-sqs-lambda-with-qovery/index.html index 155b391069..9151fba6a0 100644 --- a/guides/tutorial/aws-sqs-lambda-with-qovery/index.html +++ b/guides/tutorial/aws-sqs-lambda-with-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/aws-vpc-peering-with-qovery/index.html b/guides/tutorial/aws-vpc-peering-with-qovery/index.html index 93287fdf0e..57addacc60 100644 --- a/guides/tutorial/aws-vpc-peering-with-qovery/index.html +++ b/guides/tutorial/aws-vpc-peering-with-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -38,25 +38,25 @@ - +

Setup VPC peering on AWS with Qovery

How to peer a Qovery VPC with an existing VPC on AWS

While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. +

Stats
6 min read
Updated
Contents

While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. This tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account.

Goal

In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster. We should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC.

  1. Gather the necessary information

    Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience.

    At the end of this step 1, you should have those elements:

    NameContent
    VPC source CIDRx.x.x.x/x
    VPC source namevpc-xxx
    VPC destination CIDRy.y.y.y/y
    VPC destination namevpc-yyy

    Keep in mind the following convention:

    • Existing VPC: your current VPC infrastructure (not managed by Qovery)
    • Qovery VPC: the VPC deployed and managed by Qovery

    Your existing VPC ID

    To get your existing VPC ID in your AWS console, go to: VPC > Your VPCs, find the VPC you would like to use as a peering target, and copy its ID

    You will be able to have those information:

    NameContent
    VPC destination CIDRx.x.x.x/x
    VPC destination namevpc-xxx

    AWS console VPC list

    The Qovery VPC ID

    You can use the same method to get the Qovery VPC ID. It should be named qovery-eks-workers.

    You will be able to have those information:

    NameContent
    VPC source CIDRx.x.x.x/x
    VPC source namevpc-xxx

  2. The CIDR ranges of both VPCs

    AWS console VPC CIDR ranges

  3. Create a peering connection

    A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.

    In the AWS console, go to VPC > Peering connections and click on Create peering connection

    • Give it a name
    • As a requester, select your Qovery VPC
    • As an accepter, select your existing VPC
    • Click on Create peering connection

    AWS create VPC peering form

  4. Accept the peering request

    Once created, the peering connection needs to be accepted. -On the peering connection view, click on Actions then Accept request

    AWS accept VPC peering request

    You should see your peering connection marked as Active

    AWS VPC peering active

  5. Update existing VPC route table

    In the AWS console of your non Qovery VPC, go to VPC > Route Tables. -You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.

    Thanks Kevin M. for your contribution here 😊

    For your existing VPC edit the route table:

    AWS VPC Qovery Route Table

    Click on the Edit routes button then Add route.

    AWS VPC Qovery Route Table add route

    • As a destination, enter the CIDR of your Qovery VPC
    • As a target, select the Peering connection you created earlier

    Click Save changes.

  6. Update Qovery VPC route table

    This part needs to be done through the Qovery console.

    In the cluster settings, under the Network tab, click ADD ROUTE

    AWS VPC Qovery Route Table add route

    • As a destination, enter the CIDR of your existing VPC
    • As a target, enter the ID of the peering connection you created earlier
    • You can put anything you want as a description.

    AWS VPC Qovery Route Table add route

  7. Update the security groups

    Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.

    What rules to put on your security groups depends on what you are trying to achieve. +On the peering connection view, click on Actions then Accept request

    AWS accept VPC peering request

    You should see your peering connection marked as Active

    AWS VPC peering active

  8. Update existing VPC route table

    In the AWS console of your Qovery VPC, go to VPC > Route Tables. +You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.

    For your existing VPC edit the route table:

    AWS VPC Qovery Route Table

    Click on the Edit routes button then Add route.

    AWS VPC Qovery Route Table add route

    • As a destination, enter the CIDR of your Qovery VPC
    • As a target, select the Peering connection you created earlier

    Click Save changes.

  9. Update Qovery VPC route table

    This part needs to be done through the Qovery console.

    In the cluster settings, under the Network tab, click Add Network

    AWS VPC Qovery Route Table add route

    • As a destination, enter the CIDR of your existing VPC
    • As a target, enter the ID of the peering connection you created earlier
    • You can put anything you want as a description.

    AWS VPC Qovery Route Table add route

  10. Update the security groups

    Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.

    What rules to put on your security groups depends on what you are trying to achieve. In our case, we would like to access an RDS instance from our Qovery applications.

    We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:

    AWS Security Group inbound rules

  11. Deploy an application

    You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster. Refer to this guide if you need help deploying an application on Qovery.

You can learn more about VPC peering on AWS here: https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html

- + @@ -68,7 +68,7 @@ - + diff --git a/guides/tutorial/blazingly-fast-preview-environments-for-nextjs-nodejs-and-mongodb-on-aws/index.html b/guides/tutorial/blazingly-fast-preview-environments-for-nextjs-nodejs-and-mongodb-on-aws/index.html index 643207d541..edbcfb25a8 100644 --- a/guides/tutorial/blazingly-fast-preview-environments-for-nextjs-nodejs-and-mongodb-on-aws/index.html +++ b/guides/tutorial/blazingly-fast-preview-environments-for-nextjs-nodejs-and-mongodb-on-aws/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/guides/tutorial/build-e2e-testing-ephemeral-environments/index.html b/guides/tutorial/build-e2e-testing-ephemeral-environments/index.html index c7c755c50f..367b7d3e70 100644 --- a/guides/tutorial/build-e2e-testing-ephemeral-environments/index.html +++ b/guides/tutorial/build-e2e-testing-ephemeral-environments/index.html @@ -26,7 +26,7 @@ - + @@ -81,7 +81,7 @@ - + diff --git a/guides/tutorial/cloudwatch-integration/index.html b/guides/tutorial/cloudwatch-integration/index.html index 3970822aee..40521b39d8 100644 --- a/guides/tutorial/cloudwatch-integration/index.html +++ b/guides/tutorial/cloudwatch-integration/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/create-a-blazingly-fast-api-in-rust-part-1/index.html b/guides/tutorial/create-a-blazingly-fast-api-in-rust-part-1/index.html index 1d6c19bf1c..ecdbdf2d1c 100644 --- a/guides/tutorial/create-a-blazingly-fast-api-in-rust-part-1/index.html +++ b/guides/tutorial/create-a-blazingly-fast-api-in-rust-part-1/index.html @@ -26,7 +26,7 @@ - + @@ -69,7 +69,7 @@ - + diff --git a/guides/tutorial/create-a-playground-environment-on-aws/index.html b/guides/tutorial/create-a-playground-environment-on-aws/index.html index 283991f554..96a28dc4c9 100644 --- a/guides/tutorial/create-a-playground-environment-on-aws/index.html +++ b/guides/tutorial/create-a-playground-environment-on-aws/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/create-your-staging-environment-from-your-production-environment-on-aws/index.html b/guides/tutorial/create-your-staging-environment-from-your-production-environment-on-aws/index.html index a451802680..519b899728 100644 --- a/guides/tutorial/create-your-staging-environment-from-your-production-environment-on-aws/index.html +++ b/guides/tutorial/create-your-staging-environment-from-your-production-environment-on-aws/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/customizing-preview-url-with-qovery-cli/index.html b/guides/tutorial/customizing-preview-url-with-qovery-cli/index.html index 4dd94b7147..cdb860bf31 100644 --- a/guides/tutorial/customizing-preview-url-with-qovery-cli/index.html +++ b/guides/tutorial/customizing-preview-url-with-qovery-cli/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tutorial/data-seeding-in-postgres/index.html b/guides/tutorial/data-seeding-in-postgres/index.html index e09de17eae..d6523e1e8f 100644 --- a/guides/tutorial/data-seeding-in-postgres/index.html +++ b/guides/tutorial/data-seeding-in-postgres/index.html @@ -26,7 +26,7 @@ - + @@ -64,7 +64,7 @@ - + diff --git a/guides/tutorial/deploy-rails-with-postgresql-and-sidekiq/index.html b/guides/tutorial/deploy-rails-with-postgresql-and-sidekiq/index.html index 629433c1c9..b0ca5e5b7d 100644 --- a/guides/tutorial/deploy-rails-with-postgresql-and-sidekiq/index.html +++ b/guides/tutorial/deploy-rails-with-postgresql-and-sidekiq/index.html @@ -26,7 +26,7 @@ - + @@ -104,7 +104,7 @@ - + diff --git a/guides/tutorial/deploy-temporal-on-kubernetes/index.html b/guides/tutorial/deploy-temporal-on-kubernetes/index.html index b29655de4e..b8f4279bc1 100644 --- a/guides/tutorial/deploy-temporal-on-kubernetes/index.html +++ b/guides/tutorial/deploy-temporal-on-kubernetes/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/generate-qovery-api-client/index.html b/guides/tutorial/generate-qovery-api-client/index.html index 3d39d7ca08..88560f9302 100644 --- a/guides/tutorial/generate-qovery-api-client/index.html +++ b/guides/tutorial/generate-qovery-api-client/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/getting-started-with-preview-environments-on-aws-for-beginners/index.html b/guides/tutorial/getting-started-with-preview-environments-on-aws-for-beginners/index.html index 540ec1b492..eeef3d596a 100644 --- a/guides/tutorial/getting-started-with-preview-environments-on-aws-for-beginners/index.html +++ b/guides/tutorial/getting-started-with-preview-environments-on-aws-for-beginners/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/github-organization-repository-access/index.html b/guides/tutorial/github-organization-repository-access/index.html index 990013584d..eb1cd33996 100644 --- a/guides/tutorial/github-organization-repository-access/index.html +++ b/guides/tutorial/github-organization-repository-access/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tutorial/grafana-install/index.html b/guides/tutorial/grafana-install/index.html index 7634a96796..deb16dbc1a 100644 --- a/guides/tutorial/grafana-install/index.html +++ b/guides/tutorial/grafana-install/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tutorial/how-to-activate-sso-to-connect-to-your-eks-cluster/index.html b/guides/tutorial/how-to-activate-sso-to-connect-to-your-eks-cluster/index.html index f250328b3e..f2e7d60286 100644 --- a/guides/tutorial/how-to-activate-sso-to-connect-to-your-eks-cluster/index.html +++ b/guides/tutorial/how-to-activate-sso-to-connect-to-your-eks-cluster/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-1/index.html b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-1/index.html index 21610f74c8..2f3d738f63 100644 --- a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-1/index.html +++ b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-1/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-2/index.html b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-2/index.html index a4d443792c..efcc3b47f1 100644 --- a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-2/index.html +++ b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-2/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-3/index.html b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-3/index.html index a79cb3b02f..b113bfc184 100644 --- a/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-3/index.html +++ b/guides/tutorial/how-to-build-a-cloud-version-of-your-open-source-software-part-3/index.html @@ -26,7 +26,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/guides/tutorial/how-to-connect-to-a-managed-mongodb-instance-on-aws/index.html b/guides/tutorial/how-to-connect-to-a-managed-mongodb-instance-on-aws/index.html index e022e18980..6ef622a5bb 100644 --- a/guides/tutorial/how-to-connect-to-a-managed-mongodb-instance-on-aws/index.html +++ b/guides/tutorial/how-to-connect-to-a-managed-mongodb-instance-on-aws/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/tutorial/how-to-connect-to-your-eks-cluster-with-kubectl/index.html b/guides/tutorial/how-to-connect-to-your-eks-cluster-with-kubectl/index.html index e65f95d8f1..6587abc48b 100644 --- a/guides/tutorial/how-to-connect-to-your-eks-cluster-with-kubectl/index.html +++ b/guides/tutorial/how-to-connect-to-your-eks-cluster-with-kubectl/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/guides/tutorial/how-to-create-an-rds-instance-through-aws-console/index.html b/guides/tutorial/how-to-create-an-rds-instance-through-aws-console/index.html index f341348dbb..c239b2a1d6 100644 --- a/guides/tutorial/how-to-create-an-rds-instance-through-aws-console/index.html +++ b/guides/tutorial/how-to-create-an-rds-instance-through-aws-console/index.html @@ -26,7 +26,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/guides/tutorial/how-to-deploy-a-rust-rest-api-application-on-aws-with-ease/index.html b/guides/tutorial/how-to-deploy-a-rust-rest-api-application-on-aws-with-ease/index.html index 3fcf1b19c8..7479621470 100644 --- a/guides/tutorial/how-to-deploy-a-rust-rest-api-application-on-aws-with-ease/index.html +++ b/guides/tutorial/how-to-deploy-a-rust-rest-api-application-on-aws-with-ease/index.html @@ -26,7 +26,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes/index.html b/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes/index.html index 4b05f848a2..e5a2eaeb1f 100644 --- a/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes/index.html +++ b/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/how-to-integrate-qovery-with-github-actions/index.html b/guides/tutorial/how-to-integrate-qovery-with-github-actions/index.html index 6f94470ef6..1f677efacf 100644 --- a/guides/tutorial/how-to-integrate-qovery-with-github-actions/index.html +++ b/guides/tutorial/how-to-integrate-qovery-with-github-actions/index.html @@ -26,7 +26,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/guides/tutorial/how-to-run-commands-at-application-startup/index.html b/guides/tutorial/how-to-run-commands-at-application-startup/index.html index 32d308225b..e402f5a4af 100644 --- a/guides/tutorial/how-to-run-commands-at-application-startup/index.html +++ b/guides/tutorial/how-to-run-commands-at-application-startup/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/guides/tutorial/how-to-use-cloudfront-with-react-frontend-application-on-qovery/index.html b/guides/tutorial/how-to-use-cloudfront-with-react-frontend-application-on-qovery/index.html index 5f494369c0..fc17052062 100644 --- a/guides/tutorial/how-to-use-cloudfront-with-react-frontend-application-on-qovery/index.html +++ b/guides/tutorial/how-to-use-cloudfront-with-react-frontend-application-on-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/guides/tutorial/how-to-use-lifecycle-job-to-deploy-any-kind-of-resources/index.html b/guides/tutorial/how-to-use-lifecycle-job-to-deploy-any-kind-of-resources/index.html index 773f419ed3..e707e47beb 100644 --- a/guides/tutorial/how-to-use-lifecycle-job-to-deploy-any-kind-of-resources/index.html +++ b/guides/tutorial/how-to-use-lifecycle-job-to-deploy-any-kind-of-resources/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tutorial/how-to-write-a-dockerfile/index.html b/guides/tutorial/how-to-write-a-dockerfile/index.html index d2a7ead2cb..22f1b334c3 100644 --- a/guides/tutorial/how-to-write-a-dockerfile/index.html +++ b/guides/tutorial/how-to-write-a-dockerfile/index.html @@ -26,7 +26,7 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/guides/tutorial/import-your-environment-variables-with-the-qovery-cli/index.html b/guides/tutorial/import-your-environment-variables-with-the-qovery-cli/index.html index 8ec7841dba..ffdecf97cd 100644 --- a/guides/tutorial/import-your-environment-variables-with-the-qovery-cli/index.html +++ b/guides/tutorial/import-your-environment-variables-with-the-qovery-cli/index.html @@ -26,7 +26,7 @@ - + @@ -54,7 +54,7 @@ - + diff --git a/guides/tutorial/index.html b/guides/tutorial/index.html index f040183f64..438661b7d4 100644 --- a/guides/tutorial/index.html +++ b/guides/tutorial/index.html @@ -26,7 +26,7 @@ - + @@ -106,7 +106,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -211,7 +211,7 @@ - + diff --git a/guides/tutorial/kubernetes-observability-and-monitoring-with-datadog/index.html b/guides/tutorial/kubernetes-observability-and-monitoring-with-datadog/index.html index ae23174f28..6fea986217 100644 --- a/guides/tutorial/kubernetes-observability-and-monitoring-with-datadog/index.html +++ b/guides/tutorial/kubernetes-observability-and-monitoring-with-datadog/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/managing-env-variables-in-create-react-app/index.html b/guides/tutorial/managing-env-variables-in-create-react-app/index.html index a923f7e582..99d4f3986d 100644 --- a/guides/tutorial/managing-env-variables-in-create-react-app/index.html +++ b/guides/tutorial/managing-env-variables-in-create-react-app/index.html @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/guides/tutorial/migrate-your-application-from-heroku-to-aws/index.html b/guides/tutorial/migrate-your-application-from-heroku-to-aws/index.html index 393c21a699..54995d5961 100644 --- a/guides/tutorial/migrate-your-application-from-heroku-to-aws/index.html +++ b/guides/tutorial/migrate-your-application-from-heroku-to-aws/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/monitor-and-reduce-kubernetes-spend-with-kubecost/index.html b/guides/tutorial/monitor-and-reduce-kubernetes-spend-with-kubecost/index.html index 6509551bf4..44d6cab2dc 100644 --- a/guides/tutorial/monitor-and-reduce-kubernetes-spend-with-kubecost/index.html +++ b/guides/tutorial/monitor-and-reduce-kubernetes-spend-with-kubecost/index.html @@ -26,7 +26,7 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery/index.html b/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery/index.html index 10f415baf2..b1a8194f1c 100644 --- a/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery/index.html +++ b/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/guides/tutorial/url-shortener-api-with-kotlin/index.html b/guides/tutorial/url-shortener-api-with-kotlin/index.html index c9b0227158..50ceb6ec8a 100644 --- a/guides/tutorial/url-shortener-api-with-kotlin/index.html +++ b/guides/tutorial/url-shortener-api-with-kotlin/index.html @@ -26,7 +26,7 @@ - + @@ -82,7 +82,7 @@ - + diff --git a/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/index.html b/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/index.html index 05cb6154ef..30d8cff47f 100644 --- a/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/index.html +++ b/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/index.html @@ -26,7 +26,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/guides/tutorial/use-aws-iam-roles-with-qovery/index.html b/guides/tutorial/use-aws-iam-roles-with-qovery/index.html index 9916960831..7d64697a20 100644 --- a/guides/tutorial/use-aws-iam-roles-with-qovery/index.html +++ b/guides/tutorial/use-aws-iam-roles-with-qovery/index.html @@ -26,7 +26,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/guides/tutorial/working-with-git-submodules/index.html b/guides/tutorial/working-with-git-submodules/index.html index 53d4399594..24a2fbec40 100644 --- a/guides/tutorial/working-with-git-submodules/index.html +++ b/guides/tutorial/working-with-git-submodules/index.html @@ -26,7 +26,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/img/aws-vpc-peering-with-qovery/custom-cidr.png b/img/aws-vpc-peering-with-qovery/custom-cidr.png index 226d784f67..55738b6909 100644 Binary files a/img/aws-vpc-peering-with-qovery/custom-cidr.png and b/img/aws-vpc-peering-with-qovery/custom-cidr.png differ diff --git a/img/aws-vpc-peering-with-qovery/qovery-rt-added.png b/img/aws-vpc-peering-with-qovery/qovery-rt-added.png index 5c65fcd7db..9ce3930fe1 100644 Binary files a/img/aws-vpc-peering-with-qovery/qovery-rt-added.png and b/img/aws-vpc-peering-with-qovery/qovery-rt-added.png differ diff --git a/img/aws-vpc-peering-with-qovery/qovery-rt.png b/img/aws-vpc-peering-with-qovery/qovery-rt.png index f58b03e0e5..cb09493a9c 100644 Binary files a/img/aws-vpc-peering-with-qovery/qovery-rt.png and b/img/aws-vpc-peering-with-qovery/qovery-rt.png differ diff --git a/img/configuration/clusters/feature_custom_vpc.png b/img/configuration/clusters/feature_custom_vpc.png new file mode 100644 index 0000000000..55738b6909 Binary files /dev/null and b/img/configuration/clusters/feature_custom_vpc.png differ diff --git a/index.html b/index.html index f4c04aef55..5b2a51b7a7 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/mailing_list/index.html b/mailing_list/index.html index 4ee8a05963..5799e9f822 100644 --- a/mailing_list/index.html +++ b/mailing_list/index.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ - + diff --git a/runtime~main.efff8650.js b/runtime~main.e653ebad.js similarity index 94% rename from runtime~main.efff8650.js rename to runtime~main.e653ebad.js index 1cee7a7872..af2049cc29 100644 --- a/runtime~main.efff8650.js +++ b/runtime~main.e653ebad.js @@ -1 +1 @@ -!function(e){function d(d){for(var f,a,r=d[0],n=d[1],o=d[2],u=0,i=[];ufunction MDXDefaultShortcode(props){console.warn("Component "+name+" was not imported, exported, or provided by MDXProvider as global scope");return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("div",props);};const layoutProps={rightToc};const MDXLayout="wrapper";function MDXContent({components,...props}){return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(MDXLayout,Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({},layoutProps,props,{components:components,mdxType:"MDXLayout"}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. +const frontMatter={last_modified_on:'2024-07-12',$schema:'/.meta/.schemas/guides.json',title:'Setup VPC peering on AWS with Qovery',description:'How to peer a Qovery VPC with an existing VPC on AWS',author_github:'https://github.com/l0ck3',tags:['type: tutorial','installation_guide: aws'],hide_pagination:true};const metadata={"categories":[{"name":"tutorial","title":"Tutorial","description":"Additional step-by-step resources to leverage even more Qovery","permalink":"/guides/tutorial"}],"coverLabel":"Setup VPC peering on AWS with Qovery","description":"How to peer a Qovery VPC with an existing VPC on AWS","permalink":"/guides/tutorial/aws-vpc-peering-with-qovery","readingTime":"6 min read","source":"@site/guides/tutorial/aws-vpc-peering-with-qovery.md","tags":[{"label":"type: tutorial","permalink":"/guides/tags/type-tutorial"},{"label":"installation_guide: aws","permalink":"/guides/tags/installation-guide-aws"}],"title":"Setup VPC peering on AWS with Qovery","truncated":false,"prevItem":{"title":"Setting up Cloudflare and Custom Domain on Qovery","permalink":"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},"nextItem":{"title":"Terraform","permalink":"/guides/advanced/terraform"}};/* @jsx mdx */const rightToc=[{value:'Goal',id:'goal',children:[]}];const makeShortcode=name=>function MDXDefaultShortcode(props){console.warn("Component "+name+" was not imported, exported, or provided by MDXProvider as global scope");return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("div",props);};const layoutProps={rightToc};const MDXLayout="wrapper";function MDXContent({components,...props}){return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(MDXLayout,Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({},layoutProps,props,{components:components,mdxType:"MDXLayout"}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. This tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Assumptions__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"],{name:"guide",mdxType:"Assumptions"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You have an existing AWS VPC with a resource you need to access, like an RDS database`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You have a `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"li"},{"href":"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),`Qovery cluster ready on your AWS account`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h2",{"id":"goal"},`Goal`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster. We should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Steps__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"],{headingDepth:3,mdxType:"Steps"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ol",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"gather-the-necessary-information"},`Gather the necessary information`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`At the end of this step 1, you should have those elements:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`y.y.y.y/y`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-yyy`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Keep in mind the following convention:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Existing VPC: your current VPC infrastructure (not managed by Qovery)`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Qovery VPC: the VPC deployed and managed by Qovery`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"your-existing-vpc-id"},`Your existing VPC ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`To get your existing VPC ID in your AWS console, go to: `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Your VPCs`),`, find the VPC you would like to use as a peering target, and copy its ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You will be able to have those information:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"the-qovery-vpc-id"},`The Qovery VPC ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You can use the same method to get the Qovery VPC ID. It should be named `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`qovery-eks-workers`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You will be able to have those information:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"the-cidr-ranges-of-both-vpcs"},`The CIDR ranges of both VPCs`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"create-a-peering-connection"},`Create a peering connection`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("blockquote",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{parentName:"blockquote"},`A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Peering connections`),` and click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Create peering connection`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Give it a name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a requester, select your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As an accepter, select your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Create peering connection`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"accept-the-peering-request"},`Accept the peering request`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Once created, the peering connection needs to be accepted. -On the peering connection view, click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Actions`),` then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Accept request`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should see your peering connection marked as `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Active`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"info",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("b",null,"Take note of the peering connection ID. You will need it later."))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-existing-vpc-route-table"},`Update existing VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console of your `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"p"},`non Qovery VPC`),`, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Route Tables`),`. -You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("blockquote",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{parentName:"blockquote"},`Thanks Kevin M. for your contribution here 😊`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`For your existing VPC edit the route table:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click on the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Edit routes`),` button then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add route`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, select the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Peering connection`),` you created earlier`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Save changes`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-qovery-vpc-route-table"},`Update Qovery VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`This part needs to be done through the Qovery console.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the cluster settings, under the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Network`),` tab, click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`ADD ROUTE`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, enter the ID of the peering connection you created earlier`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You can put anything you want as a description.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-the-security-groups"},`Update the security groups`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`What rules to put on your security groups depends on what you are trying to achieve. +On the peering connection view, click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Actions`),` then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Accept request`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should see your peering connection marked as `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Active`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"info",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("b",null,"Take note of the peering connection ID. You will need it later."))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-existing-vpc-route-table"},`Update existing VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console of your `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"p"},`Qovery VPC`),`, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Route Tables`),`. +You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`For your existing VPC edit the route table:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click on the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Edit routes`),` button then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add route`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, select the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Peering connection`),` you created earlier`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Save changes`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-qovery-vpc-route-table"},`Update Qovery VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`This part needs to be done through the Qovery console.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the cluster settings, under the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Network`),` tab, click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add Network`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, enter the ID of the peering connection you created earlier`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You can put anything you want as a description.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-the-security-groups"},`Update the security groups`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`What rules to put on your security groups depends on what you are trying to achieve. In our case, we would like to access an RDS instance from our Qovery applications.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"deploy-an-application"},`Deploy an application`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster. Refer to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"p"},{"href":"/guides/getting-started/deploy-your-first-application/"}),`this guide`),` if you need help deploying an application on Qovery.`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You can learn more about VPC peering on AWS here: `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"p"},{"href":"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),`https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html`)));};MDXContent.isMDXComponent=true; @@ -58520,11 +58520,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); /* harmony import */ var _site_src_components_Assumptions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6); /* harmony import */ var _site_src_components_Jump__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8); -const frontMatter={last_modified_on:'2023-12-30',$schema:'/.meta/.schemas/guides.json',title:'Setup VPC peering on AWS with Qovery',description:'How to peer a Qovery VPC with an existing VPC on AWS',author_github:'https://github.com/l0ck3',tags:['type: tutorial','installation_guide: aws'],hide_pagination:true};const metadata={"categories":[{"name":"tutorial","title":"Tutorial","description":"Additional step-by-step resources to leverage even more Qovery","permalink":"/guides/tutorial"}],"coverLabel":"Setup VPC peering on AWS with Qovery","description":"How to peer a Qovery VPC with an existing VPC on AWS","permalink":"/guides/tutorial/aws-vpc-peering-with-qovery","readingTime":"6 min read","source":"@site/guides/tutorial/aws-vpc-peering-with-qovery.md","tags":[{"label":"type: tutorial","permalink":"/guides/tags/type-tutorial"},{"label":"installation_guide: aws","permalink":"/guides/tags/installation-guide-aws"}],"title":"Setup VPC peering on AWS with Qovery","truncated":false,"prevItem":{"title":"Setting up Cloudflare and Custom Domain on Qovery","permalink":"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},"nextItem":{"title":"Terraform","permalink":"/guides/advanced/terraform"}};/* @jsx mdx */const rightToc=[{value:'Goal',id:'goal',children:[]}];const makeShortcode=name=>function MDXDefaultShortcode(props){console.warn("Component "+name+" was not imported, exported, or provided by MDXProvider as global scope");return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("div",props);};const layoutProps={rightToc};const MDXLayout="wrapper";function MDXContent({components,...props}){return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(MDXLayout,Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({},layoutProps,props,{components:components,mdxType:"MDXLayout"}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. +const frontMatter={last_modified_on:'2024-07-12',$schema:'/.meta/.schemas/guides.json',title:'Setup VPC peering on AWS with Qovery',description:'How to peer a Qovery VPC with an existing VPC on AWS',author_github:'https://github.com/l0ck3',tags:['type: tutorial','installation_guide: aws'],hide_pagination:true};const metadata={"categories":[{"name":"tutorial","title":"Tutorial","description":"Additional step-by-step resources to leverage even more Qovery","permalink":"/guides/tutorial"}],"coverLabel":"Setup VPC peering on AWS with Qovery","description":"How to peer a Qovery VPC with an existing VPC on AWS","permalink":"/guides/tutorial/aws-vpc-peering-with-qovery","readingTime":"6 min read","source":"@site/guides/tutorial/aws-vpc-peering-with-qovery.md","tags":[{"label":"type: tutorial","permalink":"/guides/tags/type-tutorial"},{"label":"installation_guide: aws","permalink":"/guides/tags/installation-guide-aws"}],"title":"Setup VPC peering on AWS with Qovery","truncated":false,"prevItem":{"title":"Setting up Cloudflare and Custom Domain on Qovery","permalink":"/guides/tutorial/setting-up-cloudflare-and-custom-domain-on-qovery"},"nextItem":{"title":"Terraform","permalink":"/guides/advanced/terraform"}};/* @jsx mdx */const rightToc=[{value:'Goal',id:'goal',children:[]}];const makeShortcode=name=>function MDXDefaultShortcode(props){console.warn("Component "+name+" was not imported, exported, or provided by MDXProvider as global scope");return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("div",props);};const layoutProps={rightToc};const MDXLayout="wrapper";function MDXContent({components,...props}){return Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(MDXLayout,Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({},layoutProps,props,{components:components,mdxType:"MDXLayout"}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`While Qovery is all you need to deploy and run your applications in AWS, you might have existing resources in another VPC that you want to access from your Qovery applications. This tutorial will show you how to set up VPC peering between the Qovery VPC and an existing one in your account.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Assumptions__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"],{name:"guide",mdxType:"Assumptions"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You have an existing AWS VPC with a resource you need to access, like an RDS database`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You have a `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"li"},{"href":"https://hub.qovery.com/guides/tutorial/how-to-deploy-your-application-on-aws-in-30-minutes"}),`Qovery cluster ready on your AWS account`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap. AWS won't allow the peering connection otherwise.",Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),"To match this requirement, you can customize the Qovery VPC CIDR at cluster creation:",Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/custom-cidr.png",alt:"Customise Qovery CIDR"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h2",{"id":"goal"},`Goal`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In this tutorial, we will connect an existing VPC on our AWS accounts with the VPC of a Qovery managed cluster. We should then be able to deploy an application using a PostgresSQL RDS instance in our existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Steps__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"],{headingDepth:3,mdxType:"Steps"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ol",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"gather-the-necessary-information"},`Gather the necessary information`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Before we begin, you will need to gather some information. It is recommended that you keep this information at hand in a file for convenience.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`At the end of this step 1, you should have those elements:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`y.y.y.y/y`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-yyy`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Keep in mind the following convention:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Existing VPC: your current VPC infrastructure (not managed by Qovery)`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Qovery VPC: the VPC deployed and managed by Qovery`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"your-existing-vpc-id"},`Your existing VPC ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`To get your existing VPC ID in your AWS console, go to: `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Your VPCs`),`, find the VPC you would like to use as a peering target, and copy its ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You will be able to have those information:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC destination name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/vpc-console-1.png",alt:"AWS console VPC list"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"the-qovery-vpc-id"},`The Qovery VPC ID`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You can use the same method to get the Qovery VPC ID. It should be named `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`qovery-eks-workers`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You will be able to have those information:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("table",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("thead",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"thead"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("th",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`Content`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tbody",{parentName:"table"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source CIDR`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`x.x.x.x/x`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("tr",{parentName:"tbody"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"td"},`VPC source name`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("td",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"tr"},{"align":null}),`vpc-xxx`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h5",{"id":"the-cidr-ranges-of-both-vpcs"},`The CIDR ranges of both VPCs`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure the CIDR blocks of your two VPCs don't overlap or you won't be able to create the peering connection."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/find-cidr.png",alt:"AWS console VPC CIDR ranges"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"create-a-peering-connection"},`Create a peering connection`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("blockquote",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{parentName:"blockquote"},`A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Peering connections`),` and click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Create peering connection`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Give it a name`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a requester, select your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As an accepter, select your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`Click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Create peering connection`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("br",null),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-form.png",alt:"AWS create VPC peering form"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"accept-the-peering-request"},`Accept the peering request`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Once created, the peering connection needs to be accepted. -On the peering connection view, click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Actions`),` then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Accept request`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should see your peering connection marked as `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Active`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"info",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("b",null,"Take note of the peering connection ID. You will need it later."))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-existing-vpc-route-table"},`Update existing VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console of your `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"p"},`non Qovery VPC`),`, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Route Tables`),`. -You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("blockquote",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{parentName:"blockquote"},`Thanks Kevin M. for your contribution here 😊`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`For your existing VPC edit the route table:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click on the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Edit routes`),` button then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add route`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, select the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Peering connection`),` you created earlier`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Save changes`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-qovery-vpc-route-table"},`Update Qovery VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`This part needs to be done through the Qovery console.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the cluster settings, under the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Network`),` tab, click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`ADD ROUTE`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, enter the ID of the peering connection you created earlier`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You can put anything you want as a description.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-the-security-groups"},`Update the security groups`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`What rules to put on your security groups depends on what you are trying to achieve. +On the peering connection view, click on `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Actions`),` then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Accept request`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/accept-peering-request.png",alt:"AWS accept VPC peering request"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should see your peering connection marked as `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Active`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/peering-active.png",alt:"AWS VPC peering active"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"info",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("b",null,"Take note of the peering connection ID. You will need it later."))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-existing-vpc-route-table"},`Update existing VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the AWS console of your `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("strong",{parentName:"p"},`Qovery VPC`),`, go to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`VPC > Route Tables`),`. +You can filter the list using the IDs you noted at step 1 to find the routing table for your existing VPC.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`For your existing VPC edit the route table:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt.png",alt:"AWS VPC Qovery Route Table"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click on the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Edit routes`),` button then `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add route`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/existing-rt-add.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your Qovery VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, select the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"li"},`Peering connection`),` you created earlier`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Save changes`),`.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Do not alter existing routes. Make sure you are adding a new one.")),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-qovery-vpc-route-table"},`Update Qovery VPC route table`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`This part needs to be done through the Qovery console.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},"Make sure you are adding a new route. Do not edit or remove existing routes to avoid service interruption."),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`In the cluster settings, under the `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Network`),` tab, click `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("inlineCode",{parentName:"p"},`Add Network`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("ul",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a destination, enter the CIDR of your existing VPC`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`As a target, enter the ID of the peering connection you created earlier`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",{parentName:"ul"},`You can put anything you want as a description.`)),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/qovery-rt-added.png",alt:"AWS VPC Qovery Route Table add route"})),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])(_site_src_components_Alert__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"],{type:"warning",mdxType:"Alert"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You need to update your cluster to apply the configuration change. Click on the cluster ellipsis > "update".`))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"update-the-security-groups"},`Update the security groups`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`Our two VPCs are now connected, but we still need to update the security groups to allow communication between the Qovery applications and your existing resources.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`What rules to put on your security groups depends on what you are trying to achieve. In our case, we would like to access an RDS instance from our Qovery applications.`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`We will edit the RDS security group in our existing VPC to add an inbound rule allowing PostgreSQL traffic from our Qovery instances:`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",{align:"center"},Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("img",{src:"/img/aws-vpc-peering-with-qovery/pg-inbound-rule.png",alt:"AWS Security Group inbound rules"}))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("li",null,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("h4",{"id":"deploy-an-application"},`Deploy an application`),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You should now be able to deploy an application using the RDS PostgreSQL database on your Qovery cluster. Refer to `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"p"},{"href":"/guides/getting-started/deploy-your-first-application/"}),`this guide`),` if you need help deploying an application on Qovery.`)))),Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("p",null,`You can learn more about VPC peering on AWS here: `,Object(_mdx_js_react__WEBPACK_IMPORTED_MODULE_2__[/* mdx */ "b"])("a",Object(_home_runner_work_documentation_documentation_website_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({parentName:"p"},{"href":"https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html"}),`https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html`)));};MDXContent.isMDXComponent=true;