Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proxy test environment #1427

Closed
alex-dabija opened this issue Aug 10, 2022 · 7 comments
Closed

Proxy test environment #1427

alex-dabija opened this issue Aug 10, 2022 · 7 comments
Assignees
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service kind/story provider/cluster-api-aws Cluster API based running on AWS topic/capi

Comments

@alex-dabija
Copy link

alex-dabija commented Aug 10, 2022

Stories

-As a Giant Swarm engineer, I want to have a test environment with a plain proxy in a separate VPC in order test the implementation of private networking with proxy support.

Background

Talax uses a transit gateway through which they route all their network traffic. Also, any HTTP and HTTPS traffic going to the Internet must go through a plain proxy. This proxy has a known domain name.

Requirements

  • a VPC with 2 subnets (one private and one public) need to be created;
  • the transit gateway created during mc-bootstrap cluster creation has to be attached to the VPC;
  • a plain proxy for HTTP and HTTPS traffic must be part of the test environment;
  • a public Route53 hosted zone needs to be created;
  • the proxy domain name must be configured in the public hosted zone;
  • HTTP and HTTPS must be routed to go through the plain proxy;
  • any other HTTP and HTTPS traffic not routed through the proxy must be blocked at the transit gateway level;
  • a NAT gateway must be configured in order to access the Internet through the proxy;
  • the proxy must be created in a private subnet;
  • a public subnet is needed for the NAT gateway.

Questions

  • What automation technology should be used to get the test environment as soon as possible?

Probably, Terraform would be the fastest option to get the AWS resources created (VPC, Route53 hosted zone, etc.). I don't know if the plain proxy can be created with Terraform.
Also, an operator can be used to create all the required AWS resources.

  • Does AWS offer a managed plain proxy service for HTTP and HTTPS traffic?

Unknown.

  • Should the transit gateway be part of the test environment?

The transit gateway can just be attached to the management cluster VPC if it exists in the test environment. The transit gateway can be referenced in the management cluster configuration before it's created and it can be attached durring cluster creation.
The transit gateway needs to be created and attached to a few VPCs (management cluster VPC and the test environment VPC) before the management cluster creation can continue. The mc-bootstrap needs to be aware of the test environment.

  • How are routing rules updated?

The routing rules need to be updated when a management or workload clusters is created. Maybe, transit gateway propagation rules or prefix lists could be used to ease the configuration.
Talax will have the routes already configured because they will know all the CIDR blocks before any cluster is created. This probably doesn't make much sense for a dynamic test environment.

Resources

@alex-dabija
Copy link
Author

An operator will be used to create the test environment as agreed during team Hydra planning.

@alex-dabija
Copy link
Author

The VPN is not part of this story because at the moment the Kubernetes API is still public. The VPN story needs to be implemented before the clusters are configured to use a private load balancer for the Kubernetes API.

@calvix
Copy link

calvix commented Sep 16, 2022

squid proxy app https://github.com/giantswarm/squid-proxy-app

outgoing proxy app stack that will deploy cluster and app together
https://github.com/giantswarm/outgoing-proxy-stack

@alex-dabija alex-dabija transferred this issue from another repository Sep 21, 2022
@alex-dabija alex-dabija transferred this issue from another repository Sep 21, 2022
@alex-dabija alex-dabija added area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service team/hydra topic/capi provider/cluster-api-aws Cluster API based running on AWS kind/story labels Sep 21, 2022
@alex-dabija alex-dabija moved this to Ready Soon (<4 weeks) in Roadmap Sep 22, 2022
@alex-dabija
Copy link
Author

The proxy test environment is created, if enabled, at the same time when a new cluster is created. We successfully routed traffic through the Squid proxy for a pod manually configured with proxy settings.

Further testing is blocked for now until we finish the following two stories:

@calvix
Copy link

calvix commented Nov 2, 2022

still partially blocked, but starting to prepare some stuff for test proxy MC

@alex-dabija
Copy link
Author

All the cloud-init kubeadm phases finished successfully.

@calvix
Copy link

calvix commented Nov 10, 2022

cluster machines can boot successfully, all machines join the kubernetes cluster, now I need to sort the core apps that are necessary to run the cluster

@calvix calvix closed this as completed Nov 18, 2022
Repository owner moved this from Ready Soon (<4 weeks) to Released in Roadmap Nov 18, 2022
@calvix calvix reopened this Nov 18, 2022
@alex-dabija alex-dabija moved this from Released to Ready Soon (<4 weeks) in Roadmap Nov 21, 2022
Repository owner moved this from Ready Soon (<4 weeks) to Released in Roadmap Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service kind/story provider/cluster-api-aws Cluster API based running on AWS topic/capi
Projects
Archived in project
Development

No branches or pull requests

3 participants