Skip to content

Commit fa4f92c

Browse files
committed
Update Azure K8s setup
1 parent 029e987 commit fa4f92c

File tree

1 file changed

+57
-40
lines changed

1 file changed

+57
-40
lines changed

.github/workflows/k8s-setup-azure.yml

Lines changed: 57 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,6 @@ name: K8s Azure Base Setup
33
on:
44
workflow_call:
55
inputs:
6-
load_balancer_ip:
7-
description: "IP Address for the load balancer"
8-
type: string
9-
required: true
10-
load_balancer_id:
11-
description: "Resource group where the Public IP is located"
12-
required: true
13-
type: string
146
issuer_yaml:
157
description: "Yaml file describing cluster issuers"
168
type: string
@@ -31,8 +23,8 @@ on:
3123

3224
jobs:
3325
deploy-ingress-controller:
34-
runs-on: [ self-hosted, docker ]
35-
if: contains('["acpoppe","KlausNie","kupeliorhun", "nasirky"]', github.triggering_actor)
26+
runs-on: [self-hosted, docker]
27+
if: contains('["acpoppe","KlausNie","nasirky"]', github.triggering_actor)
3628
steps:
3729
- uses: actions/checkout@v4
3830
with:
@@ -41,38 +33,64 @@ jobs:
4133
- uses: azure/setup-helm@v3
4234
with:
4335
version: "3.13.3"
44-
4536
- uses: azure/k8s-set-context@v3
4637
with:
4738
method: kubeconfig
4839
kubeconfig: ${{ secrets.KUBE_CONFIG }}
4940
context: ${{ secrets.KUBE_CONTEXT }}
5041
- name: Helm Install Ingress Controller
5142
run: |
52-
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
53-
43+
helm repo add haproxytech https://haproxytech.github.io/helm-charts
44+
5445
helm repo update
55-
56-
helm install ingress-nginx/ingress-nginx \
57-
--namespace nginx-ingress-controller \
58-
--create-namespace --generate-name \
59-
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"="${{ inputs.load_balancer_resource_group }}" \
60-
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-public-ip-address-name"="${{ inputs.public_ip_name }}" \
61-
--set controller.service.externalTrafficPolicy="Local" \
62-
--set controller.config.enable-ocsp="true" \
46+
47+
helm upgrade --install haproxy-kubernetes-ingress haproxytech/kubernetes-ingress --create-namespace --namespace haproxy-controller -f - <<EOF
48+
controller:
49+
service:
50+
annotations:
51+
kubernetes.io/elb.class: union
52+
type: LoadBalancer
53+
externalTrafficPolicy: Local
54+
config:
55+
cr-global: haproxy-controller/haproxy-global
56+
defaults-config-snippet: |
57+
log global
58+
option httplog
59+
global-config-snippet: |
60+
log stdout format raw local0 info
61+
EOF
62+
- name: Install Global CRD
63+
run: |
64+
kubectl apply -f https://www.haproxy.com/documentation/kubernetes-ingress/community/crd/v3-1/ingress.v1.haproxy.org_globals.yaml
65+
- name: Setup Global Configuration
66+
run: |
67+
cat <<EOF | kubectl apply -f -
68+
apiVersion: ingress.v1.haproxy.org/v1
69+
kind: Global
70+
metadata:
71+
annotations:
72+
name: haproxy-global
73+
namespace: haproxy-controller
74+
spec:
75+
config:
76+
ssl_default_bind_ciphers: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256
77+
ssl_default_bind_ciphersuites: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384
78+
ssl_default_bind_curves: brainpoolP512r1:brainpoolP384r1:brainpoolP256r1:secp521r1:secp384r1:secp256r1
79+
ssl_default_bind_options: no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
80+
ssl_default_bind_sigalgs: ECDSA+SHA512:ECDSA+SHA384:ECDSA+SHA256:RSA+SHA512:RSA+SHA384:RSA+SHA256:rsa_pss_rsae_sha512:rsa_pss_rsae_sha384:rsa_pss_rsae_sha256
81+
ssl_load_extra_files: ocsp
82+
tune_ssl_default_dh_param: 4096
83+
EOF
6384
6485
deploy-cert-manager:
65-
runs-on: [ self-hosted, docker ]
66-
if: contains('["acpoppe","KlausNie,"kupeliorhun", "nasirky"]', github.triggering_actor)
86+
runs-on: [self-hosted, docker]
87+
if: contains('["acpoppe","KlausNie","nasirky"]', github.triggering_actor)
6788
needs: deploy-ingress-controller
6889
steps:
69-
- name: Wait for Ingress Controller to be ready
90+
- name: Sleep while ingress-nginx starts
7091
run: |
71-
kubectl wait \
72-
--namespace nginx-ingress-controller \
73-
--for=condition=ready pod \
74-
--selector=app.kubernetes.io/component=controller \
75-
--timeout=300s
92+
echo "Sleeping for 60 seconds to allow ingress-nginx to start"
93+
sleep 60
7694
- uses: actions/checkout@v4
7795
with:
7896
lfs: ${{ inputs.git-lfs }}
@@ -87,15 +105,11 @@ jobs:
87105
context: ${{ secrets.KUBE_CONTEXT }}
88106
- name: Helm Install Cert Manager
89107
run: |
90-
helm repo add jetstack https://charts.jetstack.io
108+
helm repo add jetpack https://charts.jetstack.io
109+
91110
helm repo update
92-
93-
helm install cert-manager jetstack/cert-manager \
94-
--version v1.17.0 \
95-
-n cert-manager \
96-
--create-namespace \
97-
--set installCRDs=true
98111
112+
helm upgrade --install cert-manager jetpack/cert-manager --version v1.17.0 -n cert-manager --create-namespace --set installCRDs=true
99113
- name: Apply Cluster Issuers
100114
run: |
101115
kubectl apply -f ${{ inputs.issuer_yaml }}
@@ -104,8 +118,8 @@ jobs:
104118
kubectl apply -f ${{ inputs.storage_class_yaml }}
105119
106120
deploy-kyverno:
107-
runs-on: [ self-hosted, docker ]
108-
if: contains('["acpoppe","KlausNie,"kupeliorhun", "nasirky"]', github.triggering_actor)
121+
runs-on: [self-hosted, docker]
122+
if: contains('["acpoppe","KlausNie","nasirky"]', github.triggering_actor)
109123
needs: deploy-cert-manager
110124
steps:
111125
- uses: actions/checkout@v4
@@ -122,8 +136,11 @@ jobs:
122136
context: ${{ secrets.KUBE_CONTEXT }}
123137
- name: Helm Install Kyverno
124138
run: |
125-
helm upgrade --install kyverno kyverno --namespace kyverno-system --create-namespace --repo https://kyverno.github.io/kyverno/
139+
helm repo add kyverno https://kyverno.github.io/kyverno/
140+
141+
helm repo update
142+
143+
helm upgrade --install kyverno kyverno --namespace kyverno-system --create-namespace
126144
- name: Apply Cluster Policy
127145
run: |
128146
kubectl apply -f ${{ inputs.cluster_policy_yaml }}
129-

0 commit comments

Comments
 (0)