Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: change jinja variable start/end delimiters to avoid conflicts with go templating #1168

Merged
merged 3 commits into from
Jan 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bootstrap/templates/.sops.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ creation_rules:
encrypted_regex: "^(data|stringData)$"
key_groups:
- age:
- "{% bootstrap_age_public_key %}"
- "#{ bootstrap_age_public_key }#"
- path_regex: ansible/.*\.sops\.ya?ml
key_groups:
- age:
- "{% bootstrap_age_public_key %}"
- "#{ bootstrap_age_public_key }#"
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
---
timezone: "{% bootstrap_timezone %}"
github_username: "{% bootstrap_github_username %}"
coredns_addr: "{% bootstrap_service_cidr.split(',')[0] | nthhost(10) %}"
timezone: "#{ bootstrap_timezone }#"
github_username: "#{ bootstrap_github_username }#"
coredns_addr: "#{ bootstrap_service_cidr.split(',')[0] | nthhost(10) }#"
#% if bootstrap_nodes.master | length == 1 and not bootstrap_kube_api_addr %#
kube_api_addr: "{% bootstrap_nodes.master[0].address %}"
kube_api_addr: "#{ bootstrap_nodes.master[0].address }#"
#% else %#
kube_api_addr: "{% bootstrap_kube_api_addr %}"
kube_api_addr: "#{ bootstrap_kube_api_addr }#"
#% endif %#
cluster_cidr: "{% bootstrap_cluster_cidr.split(',')[0] %}"
service_cidr: "{% bootstrap_service_cidr.split(',')[0] %}"
node_cidr: "{% bootstrap_node_cidr %}"
cluster_cidr: "#{ bootstrap_cluster_cidr.split(',')[0] }#"
service_cidr: "#{ bootstrap_service_cidr.split(',')[0] }#"
node_cidr: "#{ bootstrap_node_cidr }#"
#% if bootstrap_ipv6_enabled | default(false) %#
cluster_cidr_v6: "{% bootstrap_cluster_cidr.split(',')[1] %}"
service_cidr_v6: "{% bootstrap_service_cidr.split(',')[1] %}"
cluster_cidr_v6: "#{ bootstrap_cluster_cidr.split(',')[1] }#"
service_cidr_v6: "#{ bootstrap_service_cidr.split(',')[1] }#"
#% endif %#
16 changes: 8 additions & 8 deletions bootstrap/templates/ansible/inventory/hosts.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ kubernetes:
master:
hosts:
#% for item in bootstrap_nodes.master %#
"{% item.name %}":
ansible_user: "{% item.username %}"
"#{ item.name }#":
ansible_user: "#{ item.username }#"
#% if item.external_address is defined %#
ansible_host: "{% item.external_address %}"
ansible_host: "#{ item.external_address }#"
#% else %#
ansible_host: "{% item.address %}"
ansible_host: "#{ item.address }#"
#% endif %#
#% endfor %#
#% if bootstrap_nodes.worker | default([]) | length > 0 %#
worker:
hosts:
#% for item in bootstrap_nodes.worker %#
"{% item.name %}":
ansible_user: "{% item.username %}"
"#{ item.name }#":
ansible_user: "#{ item.username }#"
#% if item.external_address is defined %#
ansible_host: "{% item.external_address %}"
ansible_host: "#{ item.external_address }#"
#% else %#
ansible_host: "{% item.address %}"
ansible_host: "#{ item.address }#"
#% endif %#
#% endfor %#
#% endif %#
2 changes: 1 addition & 1 deletion bootstrap/templates/ansible/playbooks/cluster-nuke.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@

- name: Remove local storage path
ansible.builtin.file:
path: "{% bootstrap_local_storage_path %}"
path: "#{ bootstrap_local_storage_path }#"
state: absent

- name: Reboot
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ spec:
#% endif %#
loadBalancer:
algorithm: maglev
mode: "{% bootstrap_cilium_loadbalancer_mode | default('dsr', true) %}"
mode: "#{ bootstrap_cilium_loadbalancer_mode | default('dsr', true) }#"
localRedirectPolicy: true
operator:
replicas: 1
Expand Down
28 changes: 14 additions & 14 deletions bootstrap/templates/k0s-config.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ metadata:
spec:
hosts:
#% for item in bootstrap_nodes.master %#
- role: "{% item.role | default('controller+worker') %}"
- role: "#{ item.role | default('controller+worker') }#"
ssh:
address: "{% item.address %}"
user: "{% item.username %}"
address: "#{ item.address }#"
user: "#{ item.username }#"
installFlags:
- --disable-components=metrics-server
#% if item.role | default('') == 'controller+worker' %#
Expand All @@ -21,8 +21,8 @@ spec:
#% for item in bootstrap_nodes.worker %#
- role: worker
ssh:
address: "{% item.address %}"
user: "{% item.username %}"
address: "#{ item.address }#"
user: "#{ item.username }#"
#% endfor %#
#% endif %#
k0s:
Expand All @@ -43,16 +43,16 @@ spec:
bind-address: "0.0.0.0"
api:
sans:
- "{% bootstrap_kube_api_addr %}"
- "#{ bootstrap_kube_api_addr }#"
#% if bootstrap_kubeapi_hostname is defined %#
- "{% bootstrap_kubeapi_hostname %}"
- "#{ bootstrap_kubeapi_hostname }#"
#% endif %#
#% for item in bootstrap_nodes.master %#
#% if item.address != bootstrap_kube_api_addr %#
- "{% item.address %}"
- "#{ item.address }#"
#% endif %#
#% if (bootstrap_kubeapi_hostname is not defined) or (item.name != bootstrap_kubeapi_hostname) %#
- "{% item.name %}"
- "#{ item.name }#"
#% endif %#
#% endfor %#
extensions:
Expand Down Expand Up @@ -84,16 +84,16 @@ spec:
enabled: false
ipam:
mode: kubernetes
ipv4NativeRoutingCIDR: "{% bootstrap_cluster_cidr %}"
ipv4NativeRoutingCIDR: "#{ bootstrap_cluster_cidr }#"
#% if bootstrap_ipv6_enabled | default(false) %#
ipv6NativeRoutingCIDR: "{% bootstrap_cluster_cidr_v6 %}"
ipv6NativeRoutingCIDR: "#{ bootstrap_cluster_cidr_v6 }#"
ipv6:
enabled: true
#% endif %#
#% if bootstrap_nodes.master | length == 1 and not bootstrap_kube_api_addr %#
k8sServiceHost: "{% bootstrap_nodes.master[0].address %}"
k8sServiceHost: "#{ bootstrap_nodes.master[0].address }#"
#% else %#
k8sServiceHost: "{% bootstrap_kube_api_addr %}"
k8sServiceHost: "#{ bootstrap_kube_api_addr }#"
#% endif %#
k8sServicePort: 6443
kubeProxyReplacement: true
Expand All @@ -110,7 +110,7 @@ spec:
#% endif %#
loadBalancer:
algorithm: maglev
mode: "{% bootstrap_cilium_loadbalancer_mode | default('dsr', true) %}"
mode: "#{ bootstrap_cilium_loadbalancer_mode | default('dsr', true) }#"
localRedirectPolicy: true
operator:
replicas: 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ kind: Secret
metadata:
name: cert-manager-secret
stringData:
api-token: "{% bootstrap_cloudflare_token %}"
api-token: "#{ bootstrap_cloudflare_token }#"
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ stringData:
interval = "10m"
retry_limit = 5
sink.type = "discord"
sink.url = "{% discord_template_notifier.webhook_url %}"
sink.url = "#{ discord_template_notifier.webhook_url }#"
#% endif %#
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ kind: Secret
metadata:
name: homepage-secret
stringData:
HOMEPAGE_VAR_CLOUDFLARED_ACCOUNTID: "{% bootstrap_cloudflare_account_tag %}"
HOMEPAGE_VAR_CLOUDFLARED_TUNNELID: "{% bootstrap_cloudflare_tunnel_id %}"
HOMEPAGE_VAR_CLOUDFLARED_API_TOKEN: "{% bootstrap_cloudflare_token %}"
HOMEPAGE_VAR_CLOUDFLARED_ACCOUNTID: "#{ bootstrap_cloudflare_account_tag }#"
HOMEPAGE_VAR_CLOUDFLARED_TUNNELID: "#{ bootstrap_cloudflare_tunnel_id }#"
HOMEPAGE_VAR_CLOUDFLARED_API_TOKEN: "#{ bootstrap_cloudflare_token }#"
HOMEPAGE_VAR_GRAFANA_USERNAME: admin
HOMEPAGE_VAR_GRAFANA_PASSWORD: "{% grafana.password %}"
HOMEPAGE_VAR_GRAFANA_PASSWORD: "#{ grafana.password }#"
#% endif %#
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ kind: Secret
metadata:
name: github-webhook-token-secret
stringData:
token: "{% bootstrap_flux_github_webhook_token %}"
token: "#{ bootstrap_flux_github_webhook_token }#"
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ metadata:
type: Opaque
stringData:
username: admin
password: "{% weave_gitops.password | encrypt %}"
password: "#{ weave_gitops.password | encrypt }#"
#% endif %#
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ spec:
#% endif %#
loadBalancer:
algorithm: maglev
mode: "{% bootstrap_cilium_loadbalancer_mode | default('dsr', true) %}"
mode: "#{ bootstrap_cilium_loadbalancer_mode | default('dsr', true) }#"
localRedirectPolicy: true
operator:
replicas: 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ kind: Secret
metadata:
name: cloudflared-secret
stringData:
TUNNEL_ID: "{% bootstrap_cloudflare_tunnel_id %}"
TUNNEL_ID: "#{ bootstrap_cloudflare_tunnel_id }#"
credentials.json: |
{
"AccountTag": "{% bootstrap_cloudflare_account_tag %}",
"TunnelSecret": "{% bootstrap_cloudflare_tunnel_secret %}",
"TunnelID": "{% bootstrap_cloudflare_tunnel_id %}"
"AccountTag": "#{ bootstrap_cloudflare_account_tag }#",
"TunnelSecret": "#{ bootstrap_cloudflare_tunnel_secret }#",
"TunnelID": "#{ bootstrap_cloudflare_tunnel_id }#"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ kind: Secret
metadata:
name: external-dns-secret
stringData:
api-token: "{% bootstrap_cloudflare_token %}"
api-token: "#{ bootstrap_cloudflare_token }#"
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@ spec:
type: LoadBalancer
port: 53
annotations:
io.cilium/lb-ipam-ips: "{% bootstrap_k8s_gateway_addr %}"
io.cilium/lb-ipam-ips: "#{ bootstrap_k8s_gateway_addr }#"
externalTrafficPolicy: Cluster
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ spec:
service:
annotations:
external-dns.alpha.kubernetes.io/hostname: "external.${SECRET_DOMAIN}"
io.cilium/lb-ipam-ips: "{% bootstrap_external_ingress_addr %}"
io.cilium/lb-ipam-ips: "#{ bootstrap_external_ingress_addr }#"
externalTrafficPolicy: Cluster
ingressClassResource:
name: external
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ spec:
service:
annotations:
external-dns.alpha.kubernetes.io/hostname: "internal.${SECRET_DOMAIN}"
io.cilium/lb-ipam-ips: "{% bootstrap_internal_ingress_addr %}"
io.cilium/lb-ipam-ips: "#{ bootstrap_internal_ingress_addr }#"
externalTrafficPolicy: Cluster
ingressClassResource:
name: internal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ metadata:
name: grafana-admin-secret
stringData:
admin-user: admin
admin-password: "{% grafana.password %}"
admin-password: "#{ grafana.password }#"
#% endif %#
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ spec:
enabled: true
endpoints: &endpoints
#% for item in bootstrap_nodes.master %#
- "{% item.address %}"
- "#{ item.address }#"
#% endfor %#
#% if bootstrap_distribution == 'k3s' %#
serviceMonitor:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: "{% item.name %}"
name: "#{ item.name }#"
provisioner: nfs.csi.k8s.io
parameters:
server: "{% item.server %}"
share: "{% item.share %}"
server: "#{ item.server }#"
share: "#{ item.share }#"
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions: ["hard", "noatime"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ spec:
enabled: true
name: openebs-hostpath
isDefaultClass: false
basePath: "{% bootstrap_local_storage_path %}"
basePath: "#{ bootstrap_local_storage_path }#"

6 changes: 3 additions & 3 deletions bootstrap/templates/kubernetes/flux/config/cluster.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ metadata:
spec:
interval: 30m
ref:
branch: "{% bootstrap_github_repository_branch | default('main', true) %}"
branch: "#{ bootstrap_github_repository_branch | default('main', true) }#"
#% if bootstrap_private_github_repo | default(false) %#
secretRef:
name: github-deploy-key
url: "ssh://github.com/{% bootstrap_github_username %}/{% bootstrap_github_repository_name %}"
url: "ssh://github.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#"
#% else %#
url: "https://github.com/{% bootstrap_github_username %}/{% bootstrap_github_repository_name %}.git"
url: "https://github.com/#{ bootstrap_github_username }#/#{ bootstrap_github_repository_name }#.git"
#% endif %#
ignore: |
# exclude all
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ metadata:
name: cluster-secrets
namespace: flux-system
stringData:
SECRET_DOMAIN: "{% bootstrap_cloudflare_domain %}"
SECRET_ACME_EMAIL: "{% bootstrap_acme_email %}"
SECRET_CLOUDFLARE_TUNNEL_ID: "{% bootstrap_cloudflare_tunnel_id %}"
SECRET_DOMAIN: "#{ bootstrap_cloudflare_domain }#"
SECRET_ACME_EMAIL: "#{ bootstrap_acme_email }#"
SECRET_CLOUDFLARE_TUNNEL_ID: "#{ bootstrap_cloudflare_tunnel_id }#"
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ metadata:
name: cluster-settings
namespace: flux-system
data:
TIMEZONE: "{% bootstrap_timezone %}"
COREDNS_ADDR: "{% bootstrap_service_cidr.split(',')[0] | nthhost(10) %}"
TIMEZONE: "#{ bootstrap_timezone }#"
COREDNS_ADDR: "#{ bootstrap_service_cidr.split(',')[0] | nthhost(10) }#"
#% if bootstrap_nodes.master | length == 1 and not bootstrap_kube_api_addr %#
KUBE_API_ADDR: "{% bootstrap_nodes.master[0].address %}"
KUBE_API_ADDR: "#{ bootstrap_nodes.master[0].address }#"
#% else %#
KUBE_API_ADDR: "{% bootstrap_kube_api_addr %}"
KUBE_API_ADDR: "#{ bootstrap_kube_api_addr }#"
#% endif %#
CLUSTER_CIDR: "{% bootstrap_cluster_cidr.split(',')[0] %}"
SERVICE_CIDR: "{% bootstrap_service_cidr.split(',')[0] %}"
NODE_CIDR: "{% bootstrap_node_cidr %}"
CLUSTER_CIDR: "#{ bootstrap_cluster_cidr.split(',')[0] }#"
SERVICE_CIDR: "#{ bootstrap_service_cidr.split(',')[0] }#"
NODE_CIDR: "#{ bootstrap_node_cidr }#"
#% if bootstrap_ipv6_enabled | default(false) %#
CLUSTER_CIDR_V6: "{% bootstrap_cluster_cidr.split(',')[1] %}"
SERVICE_CIDR_V6: "{% bootstrap_service_cidr.split(',')[1] %}"
CLUSTER_CIDR_V6: "#{ bootstrap_cluster_cidr.split(',')[1] }#"
SERVICE_CIDR_V6: "#{ bootstrap_service_cidr.split(',')[1] }#"
#% endif %#
11 changes: 6 additions & 5 deletions makejinja.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import_paths = ["./bootstrap/scripts"]
loaders = ["loader:Loader"]
jinja_suffix = ".j2"

# Block delimiters are changed to avoid conflicts with Renovate
# Block and comment delimiters are changed to avoid conflicts with Renovate
# Variable delimiters are changed to avoid conflicts with Renovate and Go templates
# https://github.com/renovatebot/renovate/discussions/18470
[makejinja.delimiter]
block_start = "#%"
block_end = "%#"
comment_start = "{#"
comment_end = "#}"
variable_start = "{%"
variable_end = "%}"
comment_start = "#|"
comment_end = "|#"
variable_start = "#{"
variable_end = "}#"