
T5k7BuElqaOWdddLFHiTah+KAiEAv/GkrPeBGsZqX24W0HUalbIiLRVtbmFXeVON I8esMVLGzNYdLL1/mjOwBrmIawBGhmiPcsfGeiwAdgApPFGWVMg5ZbqqUPxYB9S3ī79Yeil圓KTDDPTlRUf0eAAAAWMko+bFAAAEAwBHMEUCIBGyg9g0cFfMGcq3tLO1 YW5jZSB3aXRoIHRoZSBDZXJ0aWZpY2F0ZSBQb2xpY3kgZm91bmQgYXQgaHR0cHM6ī3NpdG9yeS8wgLy9sZXRzZW5jcnlwdC5vcmcvcmVwgEEBgorBgEEAdZ5AgQCBIH1īIHyAPAAdgBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcvo6odBxPTDAAAAWMko+bmĪAAEAwBHMEUCIDrFrnfdS2r2s/jX42IFlvq57COkYSmFDye8RsDclEEtAiEA60jA ZWxpZWQgdXBvbiBieSBSZWx5aW5nIFBhcnRpZXMgYW5kIG9ubHkgaW4gYWNjb3Jk GasGCCsGAQUFBwICMIGeDIGbVGhpcyBDZXJ0aWZpY2F0ZSBtYXkgb25seSBiZSBy My5sZXRzZW5jcnlwdC5vcmcvMCgGA1UdEQQhMB+CHWFwaS5lbmcuYXVzdGluLnRyĮwEBATCB1jAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcw OTBvBggrBgEFBQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14 My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14 J2SdV53YXyV7WHdtjP57lTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86js SxFg/0zuqwIDAQABo4IDJTCCAyEwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGĪW5ldC1rOHMuY29tMIH+BgNVHSAEgfYwgfMwCAYGZ4EMAQIBMIHmBgsrBgEEAYLfĬCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQMKZfi Sb2ywqQCWDs8ErwLCGhDjl7l6psazdWcrNllZXB8mn4VBVIL0nTr8uJfhjq2/h2xĭkHHsrzO67+v2+/2/6Dg2zFK840H7yUVkkzoeuf8KtOLf/gWNoH6bDhmdIv3g5InĤzQvuFYLETl+ojuba/wOfeRAtZX7YJh8QrKNEUKeZTAL9/GhjylhVuGvGeTZcRfu PKcUxuxVF0iOeMy/cfIdR9XadyqvOrP4jbrQ+/RxzNvWQ9DA6ii1hR++e圎zkHL5įiNFXLZsByVrJS4DyaYuNmgKcmQWjwda圆oGispWnm77SrMX1Umy5wJfzVKG0rFX OHMuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7BlzI03auW8P ODA4MDEwNTE1MTFaMCgxJjAkBgNVBAMTHWFwaS5lbmcuYXVzdGluLnRyaW5ldC1r MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDĮxpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA1MDMwNTE1MTFaFw0x MIIGJTCCBQ2gAwIBAgISBDOBQhnPFhMUPaqTBDzCCVCAMA0GCSqGSIb3DQEBCwUA Getting domain auth token for each domain The domain key is here: /root/.acme.sh//.key acme.sh supports loads of other DNS ~]# export ~]# acme.sh -issue -dns dns_nsone -d

In this example I'm using NS1 for DNS, so I reference the NS1_Key value.

Set environment variables and issue certificate Good, bash is found, so change the shebang to use bash as preferred. OK, Close and reopen your terminal to start using acme.sh In the below example, the Austin Engineering cluster is assumed:. The commands below will need to be adjusted to the cluster being configured. This process also uses the acme.sh script to interact with Let's Encrypt. This process uses Let's Encrypt to get a valid, signed certificate to provide SSL. Kubernetes API interactions on port 7443 require SSL. gateway-config-cron Setup SSL automation The file haproxy.j2 needs to be updated based on the SSL certificate and domain name used in the next step. The file gateway-haproxy-config.py needs to be updated with the IP address of one of the master nodes and the TOKEN for the ServiceAccount created above. The shell script gateway-config-cron needs to be updated with the correct path to gateway-haproxy-config.py. The last two files need to be in the same directory.

Copy gateway config script and create cron jobĬopy the following files from the /eng_resources directory The IP above could be public, but it really just needs to be routable on the network that needs access to the workloads you run on kubernetes. This first command disables pod scheduling so all resources are available to HAProxy.Ī *. 192.168.12.219 The gateway is setup by kubespray as a node to facilitate pod access using the selected network overlay (e.g. To run the kubectl commands below, first SSH into one of the master nodes through the bastion.
