Giter Site home page Giter Site logo

oci-lb-ingress-controller's Introduction

OCI LB Ingress Controller

Relationships

<->  : one to one
*->  : many to one
<-*  : one to many
*-*  : many to many
%    : association site (which affects deletion/creation order)
~    : variant
+    : another attribute to account
|    : alternative
?    : optional
  • Listener <-> %RoutingPolicy (oci relation: *-*)

  • Listener% <-> HostnameName (oci relation: *-*)

  • Listener% *-> BackendSet (oci relation: *-1 | but more could be associated using routing policies)

  • Listener% ~tls *-> Certificate

  • k8s::Service{.name + .port} <-> BackendSet

  • k8s::Secret <-> Certificate

  • k8s::Ingress::Rule[].Host ~tls *-> Certificate

  • k8s::Ingress::Rule[].Host <-> RoutingPolicy

  • k8s::Ingress::Rule[].Host <-> HostnameName

  • k8s::Ingress::Rule[].Host+protocol+port <-> Listener assure-recorder-bac-T7000-AxCHDz

Resource Naming

Name Length Regex Derived as Examples
LB DisplayName [1-1024] ^[a-zA-Z0-9_-]{1,1024}$ optionalPrefix + k8s::Ingress {.namespace + "_" + .name} }
BackendSetName [1-32] ^[a-zA-Z0-9_-]{1,32}$ k8s::Service{.name[0:26] + "" + .protocol as "T"/"U" + .port + "" + digestPadding(.namespace+.name, len=|32|) }
"default"
nginx_T8080_aH5RtfhfAgghOr6WfhEn
hostnameName [1-255] k8s::Ingress::rule[].host
ListenerName [1-255] ^[a-zA-Z0-9_-]{1,255}$ replace(k8s::Ingress::rule[].host,"*."->"STAR", "."->"DOT") + optionalDigestPadding(.host, |240-255|)
"http-to-https-redirector"
"default" if .hostname == ""
wwwDOTexampleDOTcom
STARexampleDOTcom
RoutingPolicyName [1-32] ^[a-zA-Z_][a-zA-Z0-9_]{1,31}$ replace(k8s::Ingress::rule[].host, "." -> "S_","-" -> "" , "." -> "*") + digestPadding(.host, len=|32|) www_example_comj3LykQwVlJWmElxfS
RoutingPolicyRuleName [1-32] ^[a-zA-Z_][a-zA-Z0-9_]{1,31}$ digest(rule, len=32) YzIVv0b4SalAWS0c5RaShA
RuleSetName [1-32] ^[a-zA-Z_][a-zA-Z0-9_]{0,31}$ "https_301_redirection"
CertificateName [1-255] k8s::Ingress::tls.secretName + digest of x509 signature
PathRouteSets - -

Other OCI Restrictions and shenanigans

  • Certificate is required for HTTP/2 Listener (And of course for HTTPS listener too)
  • As of now, HTTP2 listener can only support a default cipher suite 'oci-default-http2-ssl-cipher-suit'

Integrations

  • kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml

Links

https://github.com/kubernetes/cloud-provider/blob/0203c3ea624efbed17a9d0549f931eb94393b47b/cloud.go#L133

NOTE

Kubernetes 1.19 introduced a new networking.k8s.io/v1 API for the Ingress resource. It standardizes common practices and clarifies implementation requirements that were previously up to individual controller vendors.

This document covers those changes as they relate to Kubernetes Ingress

See: Nginx controller migrates to new networking.k8s.io/v1beta1 package

OCI K8s support

https://docs.oracle.com/en-us/iaas/Content/ContEng/Concepts/contengaboutk8sversions.htm 1.21.5 Yes Support introduced: December 9, 2021 1.20.11 Yes Support introduced: October 8, 2021 1.20.8 Yes, until November 7, 2021 Support introduced: July 20, 2021

Note that although Kubernetes version 1.20.8 will not be supported after November 7, 2021, it will continue to be available for selection. However, Oracle strongly recommends you upgrade clusters to Kubernetes version 1.20.11. 1.19.15 Yes Support introduced: October 8, 2021 1.19.12 Yes, until November 7, 2021 Support introduced: July 13, 2021

Note that although Kubernetes version 1.19.12 will not be supported after November 7, 2021, it will continue to be available for selection. However, Oracle strongly recommends you upgrade clusters to Kubernetes version 1.19.15. 1.18.10 Yes, until February 9th, 2022 Support introduced: 1 December, 2020

Oracle strongly recommends you upgrade clusters to Kubernetes version 1.21.5, 1.20.11, or 1.19.15

oci-lb-ingress-controller's People

Contributors

nom3ad avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.