Skip to content

Commit

Permalink
metallb simple setup
Browse files Browse the repository at this point in the history
  • Loading branch information
kiemlicz committed Feb 2, 2024
1 parent d6ab0fe commit c95ee13
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 2 deletions.
2 changes: 1 addition & 1 deletion salt/kubernetes/cni/cilium.sls
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include:
kubernetes_cni:
cmd.run:
- name: |
helm upgrade --install cilium cilium/cilium -n {{ kubernetes.cni.config.namespace }} --create-namespace \
helm upgrade --install {{ kubernetes.cni.config.release_name }} cilium/cilium -n {{ kubernetes.cni.config.release_namespace }} --create-namespace \
--version {{ kubernetes.cni.config.version }} {{ kubernetes.cni.config.options }}
- env:
- KUBECONFIG: {{ kubernetes.config.locations|join(':') }}
Expand Down
3 changes: 2 additions & 1 deletion salt/kubernetes/cni/map.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
{%- set default_network_provider = "cilium" %}
{%- set network_provider = {
'cilium': {
'namespace': "cilium",
'release_name': "cilium",
'release_namespace': "cilium",
'version': "1.14.6",
'options': ""
},
Expand Down
48 changes: 48 additions & 0 deletions salt/kubernetes/metallb/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{%- from "kubernetes/metallb/map.jinja" import kubernetes with context %}
{%- from "_common/util.jinja" import retry with context %}
include:
- kubernetes.helm
kubernetes_metallb:
cmd.run:
- name: |
helm upgrade --install {{ kubernetes.metallb.release_name }} {{kubernetes.metallb.repo}}/{{kubernetes.metallb.chart}} -n {{ kubernetes.metallb.release_namespace }} --create-namespace \
--version {{ kubernetes.metallb.version }} {{ kubernetes.metallb.options }} --wait
cat <<EOF | kubectl apply -f -
# common to L2 and BGP
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: {{ kubernetes.metallb.pool_name }}
namespace: {{ kubernetes.metallb.release_namespace }}
spec:
addresses: {{ kubernetes.metallb.addresses | tojson }}
{%- if 'bgp' in kubernetes.metallb.config %}
---
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: {{ kubernetes.metallb.config.bgp.peer_name }}
namespace: {{ kubernetes.metallb.release_namespace }}
spec:
myASN: {{ kubernetes.metallb.config.bgp.my_asn }}
peerASN: {{ kubernetes.metallb.config.bgp.peer_asn }}
peerAddress: {{ kubernetes.metallb.config.bgp.peer_address }}
---
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: {{ kubernetes.metallb.config.bgp.peer_name }}-advertisement
namespace: {{ kubernetes.metallb.release_namespace }}
spec:
ipAddressPools:
- {{ kubernetes.metallb.pool_name }}
{%- endif %}
EOF
- env:
- KUBECONFIG: {{ kubernetes.config.locations|join(':') }}
- require:
- sls: kubernetes.helm
# todo bgp update interval?
17 changes: 17 additions & 0 deletions salt/kubernetes/metallb/map.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{%- from "kubernetes/map.jinja" import kubernetes as kubernetes_defaults with context %}

{% set kubernetes = salt['grains.filter_by']({
'default': {
'metallb': {
'release_name': "metallb",
'release_namespace': "metallb-system",
'version': "0.14.3",
'repo': "metallb",
'chart': "metallb",
'options': "",
'config': {
'addresses': [],
}
}
},
}, merge=kubernetes_defaults) %}

0 comments on commit c95ee13

Please sign in to comment.