Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions gitops/components/envoy-gateway/create-gateway/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: v2
name: create-gateway
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: eg-proxy
namespace: envoy-gateway-system
# annotations:
# argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
spec:
provider:
type: Kubernetes
kubernetes:
envoyService:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
# TODO: once nginx ingress migration is complete, EG_NLB_NAME can be replaced with CLUSTER_NAME
service.beta.kubernetes.io/aws-load-balancer-name: "{{ .Values.nlbName }}"
service.beta.kubernetes.io/aws-load-balancer-attributes: load_balancing.cross_zone.enabled=true
# nlb-target-type: ip requires pod IPs to be registered as EC2 ENIs, which depends
# on the CNI and IPAM configuration. Instance mode targets nodes via NodePort instead.
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: eg
# annotations:
# argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: eg-proxy
namespace: envoy-gateway-system
1 change: 1 addition & 0 deletions gitops/components/envoy-gateway/create-gateway/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nlbName: ""
8 changes: 4 additions & 4 deletions gitops/components/envoy-gateway/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ replacements:
fieldPath: data.EG_NLB_NAME
targets:
- select:
group: gateway.envoyproxy.io
group: argoproj.io
version: v1alpha1
kind: EnvoyProxy
name: eg-proxy
kind: Application
name: create-gateway
fieldPaths:
- spec.provider.kubernetes.envoyService.annotations.[service.beta.kubernetes.io/aws-load-balancer-name]
- spec.source.helm.valuesObject.nlbName
55 changes: 22 additions & 33 deletions gitops/components/envoy-gateway/resources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,38 +25,27 @@ spec:
- ServerSideApply=true
automated: {}
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: eg
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: eg-proxy
namespace: envoy-gateway-system
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: eg-proxy
namespace: envoy-gateway-system
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
name: create-gateway
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
provider:
type: Kubernetes
kubernetes:
envoyService:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
# TODO: once nginx ingress migration is complete, EG_NLB_NAME can be replaced with CLUSTER_NAME
service.beta.kubernetes.io/aws-load-balancer-name: EG_NLB_NAME
service.beta.kubernetes.io/aws-load-balancer-attributes: load_balancing.cross_zone.enabled=true
# nlb-target-type: ip requires pod IPs to be registered as EC2 ENIs, which depends
# on the CNI and IPAM configuration. Instance mode targets nodes via NodePort instead.
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
project: networking
source:
repoURL: "https://github.com/pelotech/foundation"
path: gitops/components/envoy-gateway/create-gateway
helm:
releaseName: create-gateway
valuesObject:
nlbName: EG_NLB_NAME
targetRevision: v4.5.3 # x-release-please-version
destination:
namespace: cert-manager
name: in-cluster
syncPolicy:
syncOptions:
- CreateNamespace=true
automated: {}
Loading