diff --git a/website/config.toml b/website/config.toml index 57bc6958..22a0a039 100644 --- a/website/config.toml +++ b/website/config.toml @@ -73,6 +73,8 @@ description = "ClsuetrLink documentation" block = true [markup.goldmark.renderer] unsafe = true + [markup.goldmark.extensions] + footnote = true [markup.highlight] # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html style = "tango" diff --git a/website/content/en/blog/hello-world/index.md b/website/content/en/blog/hello-world/index.md new file mode 100644 index 00000000..3f5e3d6e --- /dev/null +++ b/website/content/en/blog/hello-world/index.md @@ -0,0 +1,86 @@ +--- +title: Hello, World! +linkTitle: hello, world! +date: 2024-03-24 +author: Etai Lev Ran +type: blog +draft: true +--- + +{{% imgproc "sunflower" Fill "800x250" /%}} + +Hi everyone! + +I’m ClusterLink, and as the new kid on the block, I’d like to + say hello and introduce myself. I’m just starting out as an open-source + project trying to find my place in the big, wide world of multicluster + Kubernetes connectivity. This is my first venture away from + my [home on GitHub](https://github.com/clusterlink-net/clusterlink). + +My core is centered around three key principles: **Seamlessness**, **Simplicity**, + and **Security**. I focus on applying these principles to service access across + multiple clusters. + +## Seamlessness + +One of the things I’m most proud of is my versatility. I work seamlessly with any + Kubernetes distribution, whether it’s managed or self-hosted, free or paid, on-cloud + or on-premise, and any Container Network Interface (CNI). Services exported from one + cluster can be imported into any other cluster in the ClusterLink fabric and appear + to clients as a local Kubernetes Service. No need to worry about names and IP address + overlaps, these are all private to each cluster. + +## Simplicity + +I like to keep things neat and tidy. Exposing a service from one cluster to another + is as simple as marking it as exported in the source cluster and defining an imported + endpoint for it in the other. Each cluster retains control over its local load balancing + decisions, and each cluster can use independent names and local administrative control. + No assumptions here, no automatically merging independent locations and services by name, + and no exchanging private Pod information all over the place. + +## Security + +I take security very seriously: + +- All cross-cluster communications are authenticated using certificates and mutual TLS. +- Services need to be explicitly exported and imported to be accessible across + clusters - no accidental sharing just because clusters are joined into the same fabric + or decide to collaborate on just one service. +- All communications attempts are subject to independent egress and ingress policies. + By default, I operate on a “deny” basis, meaning that only explicitly allowed connections + go through. Safety and control go hand in hand, after all. + +And here’s the icing on the cake: I believe in clear separation of concerns. That means + network administrators and application owners each have their own piece of the pie + when it comes to controlling ClusterLink configurations. Network administrator policies + and configurations take precedence, so application owners stay “within bounds”.[^1] + No confusion, no fuss. + +## So, what's next? + +I’m super excited to announce that I’m being released as version 0.2.0. + It’s a big milestone for me, and I’m hoping to get some feedback and + requirements from all of you lovely folks out there. After all, I’m here + to evolve and grow just like everyone else. + +First things first, though – I want to make it clear that I’m "work in progress". + As an alpha stage project, I might not be suitable for production use yet. Basic + functionality is working as far as I can tell, but I’m likely missing some features, + and there might be a few bugs here and there. But hey, Rome wasn’t built in a day + either, right? + +So, what do you say? Want to give me a try? I promise I won’t disappoint. + And if you find me useful (which I’m sure you will), there are plenty of + ways you can help me grow and improve: join the [users' mailing list](https://groups.google.com/g/clusterlink-users), + [issues or enhancement requests](https://github.com/clusterlink-net/clusterlink/issues), + provide additional [documentation](https://github.com/clusterlink-net/clusterlink/tree/main/website) + and [code](https://github.com/clusterlink-net/clusterlink), or make a suggestion. + The possibilities are endless! + +I can't wait to start on this journey with all of you. Together, we'll make + the world of Kubernetes a better, safer, and more connected place. + Happy cluster linking! 🚀 + +[^1]: While normal access control policies work, the implementation of privileged policy tier + is ongoing and will be enabled shortly after the 0.2.0 release. diff --git a/website/content/en/blog/hello-world/sunflower.jpg b/website/content/en/blog/hello-world/sunflower.jpg new file mode 100755 index 00000000..3620a314 Binary files /dev/null and b/website/content/en/blog/hello-world/sunflower.jpg differ diff --git a/website/content/en/blog/hello.md b/website/content/en/blog/hello.md deleted file mode 100644 index 9bacf1f0..00000000 --- a/website/content/en/blog/hello.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Long Page Title" -linkTitle: ShortNavigationTitle -date: 2024-03-20 -author: Etai Lev Ran -description: >- - Welcome to ClusterLink -type: blog -draft: true ---- - -## Hello - -That's it. Just wanted to say Hi. - -Be gone now! - -Oh, and if you delete the `draft: true` entry in the front matter above, - it'll actually show up on the website. For now it's our secret. - -Blog entries will be displayed in reverse chronological order, based on the - `date` entry in the front matter. diff --git a/website/netlify.toml b/website/netlify.toml index a3ea0d5d..a6d1e1c2 100644 --- a/website/netlify.toml +++ b/website/netlify.toml @@ -8,7 +8,7 @@ HUGO_ENABLEGITINFO = "true" [context.deploy-preview] - command = "hugo --minify --buildFuture --gc -b $DEPLOY_PRIME_URL" + command = "hugo --minify --buildFuture --buildDrafts --gc -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] HUGO_VERSION = "0.120.3"