Commit e4a77210 authored by Geoff Simmons's avatar Geoff Simmons

WIP: add a test case that reproduces a bug noticed with TLS.

When an Ingress is changed (same name with modified configuration)
so that Secret for TLS is changed (another Secret with a different
name), the PEM file for the first Secret is not removed from the
haproxy configuration directory.
parent 0bd8ec95
# Copyright (c) 2023 UPLEX Nils Goroll Systemoptimierung
# All rights reserved
#
# Author: Geoffrey Simmons <geoffrey.simmons@uplex.de>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# GNU make is required.
mkpath := $(abspath $(lastword $(MAKEFILE_LIST)))
mkdir := $(dir $(mkpath))
CHARTDIR=$(mkdir)/../../../charts
TESTDIR=$(mkdir)/../..
all: deploy
deploy:
@helm install viking-ingress-change-secret $(CHARTDIR)/viking-test-app \
--values values-first.yaml
upgrade:
@helm upgrade viking-ingress-change-secret $(CHARTDIR)/viking-test-app \
--values values-second.yaml
# TESTOPTS are passed to varnishtest, e.g.: make TESTOPTS=-v verify
verify:
$(mkdir)/verify.sh
wait:
$(TESTDIR)/wait.sh app=varnish-ingress
uninstall:
@helm uninstall viking-ingress-change-secret
undeploy: uninstall wait
.PHONY: all $(MAKECMDGOALS)
apps:
coffee:
image: nginxdemos/hello:plain-text
replicas: 2
tea:
image: nginxdemos/hello:plain-text
replicas: 3
ingress:
name: cafe-ingress
rules:
- host: cafe.example.com
paths:
- path: /tea
type: Prefix
app: tea
- path: /coffee
type: Prefix
app: coffee
tlsSecrets:
- name: cafe-tls-secret-first
crt: |
-----BEGIN CERTIFICATE-----
MIIDWTCCAkECFHb8EN0l0QwiR4eKKIW6h172z+JrMA0GCSqGSIb3DQEBCwUAMGgx
CzAJBgNVBAYTAkRFMRAwDgYDVQQIDAdIYW1idXJnMRAwDgYDVQQHDAdIYW1idXJn
MRowGAYDVQQKDBFHcmVlbiBNaWRnZXQgQ2FmZTEZMBcGA1UEAwwQY2FmZS5leGFt
cGxlLmNvbTAgFw0yMDA1MDQxNzA5NTlaGA8yMTIwMDQxMDE3MDk1OVowaDELMAkG
A1UEBhMCREUxEDAOBgNVBAgMB0hhbWJ1cmcxEDAOBgNVBAcMB0hhbWJ1cmcxGjAY
BgNVBAoMEUdyZWVuIE1pZGdldCBDYWZlMRkwFwYDVQQDDBBjYWZlLmV4YW1wbGUu
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAts0HCq6fq9gv0uEa
3iOruZ3GnctdCoeGjrQQ4Fh2cQoMm/i3pkDUt6x2pLTQhxlN3oH3WEo1a24r/3S8
Xfy6Xf0Pti+dDiCqAwMd6veu56RItVMO1pmx1wDjGFTuplpnPRtz8EKsaKYfjZd1
BabdhkWhsA9g3nns8+lqeNbvebhk7hiv9lpgDWAnBie+hioan4WQdPZm1/bANH6o
+oWDu1o6Gdrk/iaj2pR73VTFsR2UEmSTpXa35W7/nsmgADIc4RovU+9ho1I4/fSy
jgVlZVBz29yLaDyNuoZljzNhvGqq1wW6Jq/v1uBOPxNH1k3ZQJl4jlG0tsoASnm7
mr9hewIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBMNCVYMTdlaNaTjJ5Cznk9Gd+u
TSIFmOCetTOt3l0Xe0bSTxboT6Oz9nFDMP2A2HRK/GTp25ec+Ek1iiCIF47RcsGp
Cdug+x4wQVP3pxakJ/odFN1ReZGZCjNwBltxlRXwJhArK5PWmQppmMZPrW1UYW8y
x+m5UREzOzWga6EIlhpMEfgNa0BNCL/2gPaz2MpKXq5We93IDe2O0nlRrrVoDHU2
GFMhTpWSLkloaMzIMlcKR0IGyezG9waVgsliS00bYKp8eRJ5SqCUYvCMuApjoyzW
N2w59p6t5xE7Ktb0cmhZg83ISPTBlGqVJxF0clLob5nWyeutXNkP/KOi38PI
-----END CERTIFICATE-----
key: |
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAts0HCq6fq9gv0uEa3iOruZ3GnctdCoeGjrQQ4Fh2cQoMm/i3
pkDUt6x2pLTQhxlN3oH3WEo1a24r/3S8Xfy6Xf0Pti+dDiCqAwMd6veu56RItVMO
1pmx1wDjGFTuplpnPRtz8EKsaKYfjZd1BabdhkWhsA9g3nns8+lqeNbvebhk7hiv
9lpgDWAnBie+hioan4WQdPZm1/bANH6o+oWDu1o6Gdrk/iaj2pR73VTFsR2UEmST
pXa35W7/nsmgADIc4RovU+9ho1I4/fSyjgVlZVBz29yLaDyNuoZljzNhvGqq1wW6
Jq/v1uBOPxNH1k3ZQJl4jlG0tsoASnm7mr9hewIDAQABAoIBAES7vsQTeNIijYjb
P0D7ZJx8aKv4RVmqL7wElLvmR1KllqwmztbiVZlibZHssuO5bgAWGizGamOkn0KE
YDduyZyBhKDaMlGXkpVjXKJ20vsiWHxlaJTkYWwYV0tU1A8UuvDNG8DhMPaAUCjr
JAMmBPFxySPsBF5itefYgkJBfvXi7sobaCM6A75D+dBLMeq2q+YbIQH/cAojHYfV
7ypyQ1QaY+wsDiCM6n9Qjk4krmHZ/z39y8mO71ytFcMfJJad8LKM5J4p9Qu99qeb
IRDOT/Sb9QXLXWTeCDv5JWPYyFH2u3e/8GsvQLbXYYbfWLNoU6RDaFSc2wmkOwUH
U8pSCDECgYEA3KIQcme//6B2jP31Coa2f8hsENd0nL+EDR9erXLSUga2l0YNPJZj
W6VnNdaeGq92B7Wxgj+dSeeSBdIRhXwABOHHjruG+gotdRRyoO1ldw7mJjN/q3Wx
A1fpJ+J00S1ZO1FbukKZmR7smTS7i73a8V7At3dyjCG6WxErP3N5NM8CgYEA1Bp5
yYIH8oJmPsuJt501k9nU4SdxxQJpb6uZ9QCBqbEsGkWE3vtLErlU8Rnm2HuirMvD
8Q3OsuoupdCTChrJJ04oL/2r60oTGapeDe4BuRM+DRAZ2trCwXy3nT26bZ/DJtur
Hqvt0tey9ee9MiVHWF2biZejd+KMUxPCCoZVS5UCgYEApbz8m+SCH3Yb+DgB7oFZ
8M3PGCuxxto7SVxKVANQKRwv551Q7jWOt9adnJz3Mdai1JHRoaVF87GISOUQEnUe
0owEy5zlfUlN8oiEv4z1zqUbkJDZFCUZ7wgH9tUvqb7mLCAmxtmm5paLZ19sj0H0
iaMDJA8PtmLTyfswwL5uy5MCgYEArdBMgU+nx5oIw+j0IJ4aK+FUzHYQi4vgb3zG
m7ogh7kDFTxnGHwCF4P9Ed9SB5G5y7ToC4BvJLs4IvX7qUouEaHA2SMeYaDAakXs
8albjBkyvm21Yl3nP7w+lALj5bYIrK1TW701FZVhuJaBurhF8So0rdqwQSxMJkCI
wSs4dskCgYBr1LO3GINSwGHt73ueZDtnvFvO+EFDaOFFbsEd14O1mluM4+WrIZky
inZCvygJWzgHF9LCOpoAZxHykMNrEomidpxViAlpBzb/C5CnpzlfiVBqLN3NvOxG
zdkoq6BiZnznsVgoHyP7TQlUX94ahVT01yZ0njPk2aYVipPWUoHQMQ==
-----END RSA PRIVATE KEY-----
apps:
coffee:
image: nginxdemos/hello:plain-text
replicas: 2
tea:
image: nginxdemos/hello:plain-text
replicas: 3
ingress:
name: cafe-ingress
rules:
- host: cafe.example.com
paths:
- path: /tea
type: Prefix
app: tea
- path: /coffee
type: Prefix
app: coffee
tlsSecrets:
- name: cafe-tls-secret-second
crt: |
-----BEGIN CERTIFICATE-----
MIIDyTCCArGgAwIBAgIUelfpWOHHBRAUgxmeIq7IuM+KtgIwDQYJKoZIhvcNAQEL
BQAwdDELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0hhbWJ1cmcxEDAOBgNVBAcMB0hh
bWJ1cmcxEjAQBgNVBAoMCUJyZXcgSGFIYTESMBAGA1UECwwJQmVhbiBVbml0MRkw
FwYDVQQDDBBjYWZlLmV4YW1wbGUuY29tMB4XDTIzMDYxMjEzNDE1NFoXDTMzMDYw
OTEzNDE1NFowdDELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0hhbWJ1cmcxEDAOBgNV
BAcMB0hhbWJ1cmcxEjAQBgNVBAoMCUJyZXcgSGFIYTESMBAGA1UECwwJQmVhbiBV
bml0MRkwFwYDVQQDDBBjYWZlLmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAxUYqNQGp7ZQBHRb7n6RDkCmd1Dl/VhtJK0w6ekscvWhb
C4Lf8jAe2f5lpqOXoi+S25lMI1eh586nnpnvI/M/QlO35Egi6Ccg3uhV1Xo8Ap6I
xgeeithi2jc5GuxOr7AJMdY7caBjyFQEm99Sa/4PqlB88Ycp4Y1vXlu8oAiQP6Mv
S+RZ6s17Qq2p2kL+nYjvWzQMUkaJJhjwN0x/N+TfIkFT0h6LOQDYc83yCt1j1UAO
EZnR+nYMpSeFGBJ5keq+v1aMa8bIY5RD/FrfHXfR0lyyg848pUaeHCIdre3CqCd/
uQR+rFX7pucjkzubZVWXwKOxA7m5/rHhFu852z+NVQIDAQABo1MwUTAdBgNVHQ4E
FgQUwoPTbMHAvrBs1B7Hx87fpNER5MYwHwYDVR0jBBgwFoAUwoPTbMHAvrBs1B7H
x87fpNER5MYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAwWdn
EU/Sglivr7DXfJFBdVF0n+7NqVtwrCMIJFjlMWSfRa901P7zdNRATtArvwnbdNAN
S/cd9cDVAup0pDVUNPyKv7Kl0id7ipJnvOcGSqloV1/QN5Ixy5R/gkDNvgMbfo2s
JwCClyhUldgxU/nc5EhTNfFhOG/yOcyBK1GUhBw4yH9XnuLFCwFcXTRkuwlIaQ/k
WsMdpUyLawpd6hCsOXOwgxn45CGthYn4J3gFixxwMqIyS0gU/Obcj0+BKlRSnAVA
SjtwxTYtYiqAJA7snY4hbPk97eY5gbOrFS4rzNfgOVFlhwpPVALjsDftMGWbUyrb
WI7khA6HdL3//OmD0g==
-----END CERTIFICATE-----
key: |
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFRio1AantlAEd
FvufpEOQKZ3UOX9WG0krTDp6Sxy9aFsLgt/yMB7Z/mWmo5eiL5LbmUwjV6Hnzqee
me8j8z9CU7fkSCLoJyDe6FXVejwCnojGB56K2GLaNzka7E6vsAkx1jtxoGPIVASb
31Jr/g+qUHzxhynhjW9eW7ygCJA/oy9L5FnqzXtCranaQv6diO9bNAxSRokmGPA3
TH835N8iQVPSHos5ANhzzfIK3WPVQA4RmdH6dgylJ4UYEnmR6r6/VoxrxshjlEP8
Wt8dd9HSXLKDzjylRp4cIh2t7cKoJ3+5BH6sVfum5yOTO5tlVZfAo7EDubn+seEW
7znbP41VAgMBAAECggEBAIlWLKIUU3GzXQccbfaYy/R8FIWftbeDbW/4NKnYytxN
3zxnU3Lu7zuCMNBPCYx+pDW/RlNAedXAd88hiWu0t3B8igQh+DM4slic1My2uTp1
lfCPc19j/4W9dkL5ClqjKfOJGn8jUvQvEbpWQbIvAEbom+Ml3xFIfqTpJqse6xVx
U3ywOLXeqNQh9R35FMpw5lHKR4y+JPkrobvpTiVb8KCnKp5blFc9+Jy7a5erPwtz
urZDkYmpq9w4Cpzknaqt2g37kHWzrbsPQZPCyXTvk9zi0WeCOZu0IhcZMzW962Oj
3KRYJzkoygxpcpFYqX5swoOc+QCNeVgKSbtrXaP5kwECgYEA7DUU9xHu8YKOxYio
87Syx2/XUB394NP8cDK7nmGUxhaWr04F63IrkBPPIzNQGhHVBVDE5WiOfL4SjZRq
P7bxfdcti+ODTT+LNpTYFYIB8z7PfYOossGIi3f5z5Gy9kTvO7qtxRuG9mpJlKlS
TfELuih5txcFKbMxzQyw1sgovpUCgYEA1c3rdgweImdESCqJgLm6ikaPNZ6hSjCF
TsXkLDG4dMUr8KddlaIRgYY2HnYEe7x6hm7jQW80h8MD5MYoLNeGjkndrZbve4eF
+g7Co5bGa+cRH+mqZO499X2yw9hox4rMTyWd23+9dP025nfg52KC9/sLDQKaK5eX
s6JYU32zo8ECgYEA12+6xXYn10La8TOp1U2UWe6aFUqlifAPKE49bUFXLizgFtg0
8f/Z17kZjeN5Ra3J+uUmEI8ClqfNyC/7kE1NiRc/RX2m/kfcs1WimEtReAhruvDg
Ztm5rmso/7bF4XQSNwoW/9YRjKJ4pgyhMtGNfqb4DJQEc3orC/htOhipgNkCgYAt
zn1pADWgl1FYyMxG6QPfRji+eysBMx4Mf3dgRJLJacj9OU5ilaN8hZ2orw5M2FfD
35QO2918TLrT0+Sdntt0Nr0oyNKsO5/nsCvhUpdWXN4dYTmhgC2EIBchwIbKYaFe
P6fvdBHKM8oEXKCx0jhPGtkGQ412U3csBFc6JA9NwQKBgAZJ7HEQ5DvIusMJk44E
7LFjCQBQ8lJlHsaAlAClltKURDSd2gdHWjcvsQ69qXqrZf6DOvrjvQxlNvFNYNAB
yI5S4f1/I6kam/MBt/yQWfpx+kLPTSVGG4yAqtznNRMHHvQHYFeLJqgu427a/dxZ
Xpbyur7sFE/ssj5w5WU9L+0y
-----END PRIVATE KEY-----
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment