diff --git a/kubernetes/talos/extra.yaml b/kubernetes/talos/extra.yaml new file mode 100644 index 0000000..e2c34f0 --- /dev/null +++ b/kubernetes/talos/extra.yaml @@ -0,0 +1,65 @@ +# Create an IngressRoute for the dashboard +ingressRoute: + dashboard: + # -- Create an IngressRoute for the dashboard + enabled: true + # -- Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) + annotations: {} + # -- Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) + labels: {} + # -- The router match rule used for the dashboard ingressRoute + matchRule: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + # -- The internal service used for the dashboard ingressRoute + services: + - name: api@internal + kind: TraefikService + # -- Specify the allowed entrypoints to use for the dashboard ingress route, (e.g. traefik, web, websecure). + # By default, it's using traefik entrypoint, which is not exposed. + # /!\ Do not expose your dashboard without any protection over the internet /!\ + entryPoints: ["traefik"] + # -- Additional ingressRoute middlewares (e.g. for authentication) + middlewares: + - name: traefik-dashboard-auth + tls: {} + healthcheck: + # -- Create an IngressRoute for the healthcheck probe + enabled: false + # -- Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) + annotations: {} + # -- Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) + labels: {} + # -- The router match rule used for the healthcheck ingressRoute + matchRule: PathPrefix(`/ping`) + # -- The internal service used for the healthcheck ingressRoute + services: + - name: ping@internal + kind: TraefikService + # -- Specify the allowed entrypoints to use for the healthcheck ingress route, (e.g. traefik, web, websecure). + # By default, it's using traefik entrypoint, which is not exposed. + entryPoints: ["traefik"] + # -- Additional ingressRoute middlewares (e.g. for authentication) + middlewares: [] + # -- TLS options (e.g. secret containing certificate) + tls: {} + # Add custom middlewares : authentication and redirection + + +# Create the custom middlewares used by the IngressRoute dashboard (can also be created in another way). +# /!\ Yes, you need to replace "changeme" password with a better one. /!\ +extraObjects: + - apiVersion: v1 + kind: Secret + metadata: + name: traefik-dashboard-auth-secret + type: kubernetes.io/basic-auth + stringData: + username: admin + password: changeme + + - apiVersion: traefik.io/v1alpha1 + kind: Middleware + metadata: + name: traefik-dashboard-auth + spec: + basicAuth: + secret: traefik-dashboard-auth-secret \ No newline at end of file diff --git a/kubernetes/talos/traefik.yaml b/kubernetes/talos/traefik.yaml index 5354885..1d8c348 100644 --- a/kubernetes/talos/traefik.yaml +++ b/kubernetes/talos/traefik.yaml @@ -192,7 +192,8 @@ ingressRoute: # /!\ Do not expose your dashboard without any protection over the internet /!\ entryPoints: ["traefik"] # -- Additional ingressRoute middlewares (e.g. for authentication) - middlewares: [] + middlewares: + - name: traefik-dashboard-auth # -- TLS options (e.g. secret containing certificate) tls: {} healthcheck: @@ -913,7 +914,25 @@ podSecurityContext: # # In some cases, it can avoid the need for additional, extended or adhoc deployments. # See #595 for more details and traefik/tests/values/extra.yaml for example. -extraObjects: [] +# Create the custom middlewares used by the IngressRoute dashboard (can also be created in another way). +# /!\ Yes, you need to replace "changeme" password with a better one. /!\ +extraObjects: + - apiVersion: v1 + kind: Secret + metadata: + name: traefik-dashboard-auth-secret + type: kubernetes.io/basic-auth + stringData: + username: admin + password: changeme + + - apiVersion: traefik.io/v1alpha1 + kind: Middleware + metadata: + name: traefik-dashboard-auth + spec: + basicAuth: + secret: traefik-dashboard-auth-secret # -- This field override the default Release Namespace for Helm. # It will not affect optional CRDs such as `ServiceMonitor` and `PrometheusRules` diff --git a/swarm/emqx.yml b/swarm/emqx.yml index 6bf8026..9a40d46 100644 --- a/swarm/emqx.yml +++ b/swarm/emqx.yml @@ -1,6 +1,9 @@ services: emqx1: image: emqx:latest + environment: + EMQX_NAME: emqx_node1 + EMQX_HOST: 127.0.0.1 healthcheck: test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"] interval: 60s @@ -8,6 +11,7 @@ services: retries: 5 volumes: - /var/data/emqx-data1:/opt/emqx/data + - /var/data/emqx-etc1:/opt/emqx/etc networks: - traefik-public # ports: