Skip to content

Instantly share code, notes, and snippets.

@swade1987
Created June 1, 2018 09:56
Show Gist options
  • Save swade1987/9ac2563b4f0862f7a1951b97280c57f9 to your computer and use it in GitHub Desktop.
Save swade1987/9ac2563b4f0862f7a1951b97280c57f9 to your computer and use it in GitHub Desktop.
# Refresh kubernetes certs with consul-template
vault {
address = "https://vault.service.consul:8200"
}
# ============================================================
# Read etcd CA
# /etc/bootkube/assets/tls/etcd-client-ca.crt
# ============================================================
template {
contents = <<EOF
{{ with secret "platform/etcd/pki/cert/ca_chain" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/etcd-client-ca.crt"
exec {
command = "/usr/bin/bash -c \"ln -fs /etc/bootkube/assets/tls/etcd-client-ca.crt /etc/ssl/certs/ && /usr/sbin/update-ca-certificates > /dev/null\""
}
}
# ============================================================
# Update Etcd client certs
# /etc/bootkube/assets/tls/etcd-client.key
# /etc/bootkube/assets/tls/etcd-client.crt
# ============================================================
template {
contents = <<EOF
{{ with secret "platform/etcd/pki/issue/client" "common_name=etcd@localhost" "alt_names=etcd.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/etcd-client.crt"
}
template {
contents = <<EOF
{{ with secret "platform/etcd/pki/issue/client" "common_name=etcd@localhost" "alt_names=etcd.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.private_key }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/etcd-client.key"
}
# ============================================================
# Update Kubernetes CA
# /etc/bootkube/assets/tls/ca.crt
# ============================================================
template {
contents = <<EOF
{{ $ip := env "COREOS_EC2_IPV4_LOCAL" }}
{{ $ip_sans := printf "ip_sans=127.0.0.1,%s" $ip }}
{{ with secret "platform/kubernetes/pki/issue/instance" "common_name=k8s-master.identity.development.eeveebank.internal" $ip_sans "ttl=6h" }}{{ range .Data.ca_chain }}{{ . }}
{{ end }}{{ end }}
EOF
perms = 0600
destination = "/etc/bootkube/assets/tls/ca.crt"
exec {
command = "/usr/bin/bash -c \"ln -fs /etc/bootkube/assets/tls/ca.crt /etc/ssl/certs/ && /usr/sbin/update-ca-certificates > /dev/null\""
}
}
# ============================================================
# Update api-server certs
# /etc/bootkube/assets/tls/apiserver.key
# /etc/bootkube/assets/tls/apiserver.crt
# ============================================================
template {
contents = <<EOF
{{ $node_name := env "HOSTNAME" }}
{{ $common_name := printf "common_name=%s" $node_name }}
{{ $ip := env "COREOS_EC2_IPV4_LOCAL" }}
{{ $ip_sans := printf "ip_sans=127.0.0.1, 172.20.0.1, %s" $ip }}
{{ $alt_names := printf "alt_names=kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, master.identity.development.eeveebank.internal, %s" $node_name }}
{{ with secret "platform/kubernetes/pki/issue/client" $common_name $alt_names $ip_sans "ttl=6h" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/apiserver.crt"
}
template {
contents = <<EOF
{{ $node_name := env "HOSTNAME" }}
{{ $common_name := printf "common_name=%s" $node_name }}
{{ $ip := env "COREOS_EC2_IPV4_LOCAL" }}
{{ $ip_sans := printf "ip_sans=127.0.0.1, 172.20.0.1, %s" $ip }}
{{ $alt_names := printf "alt_names=kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, master.identity.development.eeveebank.internal, %s" $node_name }}
{{ with secret "platform/kubernetes/pki/issue/client" $common_name $alt_names $ip_sans "ttl=6h" }}{{ .Data.private_key }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/apiserver.key"
}
# ============================================================
# Update admin certs
# /etc/bootkube/assets/tls/admin.key
# /etc/bootkube/assets/tls/admin.crt
# ============================================================
template {
contents = <<EOF
{{ with secret "platform/kubernetes/pki/issue/client" "common_name=k8s-admin.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/admin.crt"
}
template {
contents = <<EOF
{{ with secret "platform/kubernetes/pki/issue/client" "common_name=k8s-admin.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.private_key }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/admin.key"
}
# ============================================================
# Update service account certs
# /etc/bootkube/assets/tls/service-account.key
# /etc/bootkube/assets/tls/service-account.pub
# ============================================================
template {
contents = <<EOF
{{ with secret "platform/kubernetes/pki/issue/client" "common_name=k8s-service-accoun.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/service-account.pem"
exec {
command = "/usr/bin/bash -c 'openssl x509 -pubkey -noout -in /etc/bootkube/assets/tls/service-account.pem > /etc/bootkube/assets/tls/service-account.pub'"
}
}
template {
contents = <<EOF
{{ with secret "platform/kubernetes/pki/issue/client" "common_name=k8s-service-account.identity.development.eeveebank.internal" "ttl=6h" }}{{ .Data.private_key }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/service-account.key"
}
# ============================================================
# Update kubelet certs
# /etc/bootkube/assets/tls/kubelet.key
# /etc/bootkube/assets/tls/kubelet.crt
# ============================================================
template {
contents = <<EOF
{{ $node_name := env "HOSTNAME" }}
{{ $common_name := printf "common_name=system:node:%s" $node_name }}
{{ $alt_names := printf "alt_names=%s" $node_name }}
{{ $ip := env "COREOS_EC2_IPV4_LOCAL" }}
{{ $ip_sans := printf "ip_sans=127.0.0.1, 172.20.0.1, %s" $ip }}
{{ with secret "platform/kubernetes/pki/issue/client" $common_name %$alt_names $ip_sans "ttl=6h" }}{{ .Data.certificate }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/kubelet.crt"
}
template {
contents = <<EOF
{{ $node_name := env "HOSTNAME" }}
{{ $common_name := printf "common_name=system:node:%s" $node_name }}
{{ $alt_names := printf "alt_names=%s" $node_name }}
{{ $ip := env "COREOS_EC2_IPV4_LOCAL" }}
{{ $ip_sans := printf "ip_sans=127.0.0.1, 172.20.0.1, %s" $ip }}
{{ with secret "platform/kubernetes/pki/issue/client" $common_name %$alt_names $ip_sans "ttl=6h" }}{{ .Data.private_key }}{{ end }}
EOF
perms = 0660
destination = "/etc/bootkube/assets/tls/kubelet.key"
}
Jun 01 09:19:51 ip-172-31-45-115.eu-west-2.compute.internal consul-template[1409]: 2018/06/01 09:19:51.437674 [ERR] (cli) (dynamic): parse: template: :10: unexpected "%" in operand
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment