Skip to content

Commit 23f076e

Browse files
authored
Merge pull request #73 from Smana/update_opentofu_openbao
Update opentofu openbao
2 parents 58e678f + 5936f0e commit 23f076e

File tree

15 files changed

+80
-65
lines changed

15 files changed

+80
-65
lines changed

.github/workflows/gh-pages.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010

1111
jobs:
1212
deploy:
13-
runs-on: ubuntu-20.04
13+
runs-on: ubuntu-22.04
1414
steps:
1515
- uses: actions/checkout@v2
1616
with:
@@ -20,7 +20,7 @@ jobs:
2020
- name: Setup Hugo
2121
uses: peaceiris/actions-hugo@v2
2222
with:
23-
hugo-version: "0.128.2"
23+
hugo-version: "0.139.0"
2424
extended: true
2525

2626
- name: Build

config/_default/menus/menu.en.toml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ name = "LinkedIn"
1313
parent = "Links"
1414
url = "https://www.linkedin.com/in/sma%C3%AFne-kahlouch-44374110/"
1515
[[main]]
16-
name = "Twitter"
16+
name = "Bluesky"
1717
parent = "Links"
18-
url = "https://twitter.com/_smana_"
18+
url = "https://bsky.app/profile/smana.dev"
1919

2020
[[main]]
2121
name = "About"
@@ -30,10 +30,9 @@ type = "social"
3030
url = "https://github.com/Smana"
3131
weight = 1
3232
[[social]]
33-
name = "twitter"
34-
url = "https://twitter.com/_smana_"
35-
weight = 2
36-
[[social]]
3733
name = "linkedin"
3834
url = "https://www.linkedin.com/in/sma%C3%AFne-kahlouch-44374110/"
3935
weight = 3
36+
[[social]]
37+
name = "bluesky"
38+
url = "https://bsky.app/profile/smana.dev"

config/_default/menus/menu.fr.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ name = "LinkedIn"
1313
parent = "Liens"
1414
url = "https://www.linkedin.com/in/sma%C3%AFne-kahlouch-44374110/"
1515
[[main]]
16-
name = "Twitter"
17-
parent = "Liens"
18-
url = "https://twitter.com/_smana_"
16+
name = "Bluesky"
17+
parent = "Links"
18+
url = "https://bsky.app/profile/smana.dev"
1919

2020
[[main]]
2121
name = "Apropos"
@@ -30,8 +30,8 @@ type = "social"
3030
url = "https://github.com/Smana"
3131
weight = 1
3232
[[social]]
33-
name = "twitter"
34-
url = "https://twitter.com/_smana_"
33+
name = "bluesky"
34+
url = "https://bsky.app/profile/smana.dev"
3535
weight = 2
3636
[[social]]
3737
name = "linkedin"

config/_default/params.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ enableSearch = true
44
# socials
55
introDescription = "Lead SRE/DevOps, Team leader, Open Source enthusiast."
66
largeTwitterCard = false # set to true if you want to show a large twitter card image. The default is a small twitter card image
7-
twitter = "@_smana_"
7+
twitter = "@smana.dev"
88
# introURL = "about/" # set the url for the 'read more' button below the introDescription, or set to false to not show the button
99
# description = "A theme based on VMware's Clarity Design System for publishing technical blogs with Hugo." # Set your site's meta tag (SEO) description here. Alternatively set this description in your home page content file e.g. content/_index.md. Whatever is set in the latter will take precedence.
1010
# keywords = ["design", "clarity", "hugo theme"] # Set your site's meta tag (SEO) keywords here. Alternatively set these in your home page content file e.g. content/_index.md. Whatever is set in the latter will take precedence.

content/en/post/cilium-gateway-api/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ Let's see how GAPI is used in practice with Cilium 🚀!
5353

5454
## :ballot_box_with_check: Prerequisites
5555

56-
For the remainder of this article, we assume an EKS cluster has been deployed. If you're not using the [method suggested in the demo repo](https://github.com/Smana/cilium-gateway-api/tree/main/terraform/eks) as the basis for this article, there are a few **points to check** for GAPI to be usable.
56+
For the remainder of this article, we assume an EKS cluster has been deployed. If you're not using the [method suggested in the demo repo](https://github.com/Smana/cilium-gateway-api/tree/main/opentofu/eks) as the basis for this article, there are a few **points to check** for GAPI to be usable.
5757

58-
ℹ️ The installation method described here is based on `Helm`, all the `values` can be viewed [here](https://github.com/Smana/cilium-gateway-api/blob/main/terraform/eks/helm_values/cilium.yaml).
58+
ℹ️ The installation method described here is based on `Helm`, all the `values` can be viewed [here](https://github.com/Smana/cilium-gateway-api/blob/main/opentofu/eks/helm_values/cilium.yaml).
5959

6060
* **Install** the `CRDs` available in the [Gateway API](https://github.com/kubernetes-sigs/gateway-api/tree/main/config/crd) repository.
6161
{{% notice note Note %}}
@@ -618,4 +618,4 @@ While I've only scratched the surface of what Cilium's GAPI can offer (honestly,
618618
* <https://docs.cilium.io/en/latest/network/servicemesh/gateway-api/gateway-api/#gs-gateway-api>
619619
* <https://isovalent.com/blog/post/cilium-gateway-api/>
620620
* <https://isovalent.com/blog/post/tutorial-getting-started-with-the-cilium-gateway-api/>
621-
* Isovalent's [labs](https://isovalent.com/resource-library/labs/) are great to start playing with Gateway API and you'll get new badges to add to your collection 😄 <img src="badges.png" width="330" height="330" alt="">
621+
* Isovalent's [labs](https://isovalent.com/resource-library/labs/) are great to start playing with Gateway API and you'll get new badges to add to your collection 😄 <img src="badges.png" width="330" height="330" alt="">

content/en/post/crossplane_composition_functions/index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ tags = [
1515
thumbnail= "thumbnail.png"
1616
+++
1717

18+
{{% notice info "Update 2024-11-23" %}}
19+
I'm now using the [KCL (Kusion Configuration Language)](https://www.kcl-lang.io/) for crossplane compositions.
20+
{{% /notice %}}
21+
1822
With the emergence of _[Platform Engineering](https://thenewstack.io/how-is-platform-engineering-different-from-devops-and-sre/)_, we are witnessing a shift towards the creation of **self-service** solutions for developers. This approach facilitates the standardization of DevOps practices, enhances the developer experience, and reduces the cognitive load associated with managing tools.
1923

2024
`Crossplane`, an "Incubating" project under the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/projects/crossplane/), aims to become the leading framework for creating Cloud Native platforms. In my [first article about Crossplane](https://blog.ogenki.io/post/crossplane_k3d/), I introduced this tool and explained how it leverages **GitOPs** principles for infrastructure, enabling the creation of a `GKE` cluster.
@@ -371,4 +375,4 @@ I encourage you to closely follow the project's evolution in the coming months
371375
* Crossplane blog: [Improve Crossplane Compositions Authoring with go-templating-function](https://blog.upbound.io/go-templating-function)
372376
* [Dev XP Roadmap](https://github.com/crossplane/crossplane/issues/4654)
373377
* Video (Kubecon NA 2023): [Crossplane Intro and Deep Dive - the Cloud Native Control Plane Framework](https://www.youtube.com/watch?v=I5Rd0X7AROw)
374-
* Video (DevOps Toolkit): [Crossplane Composition Functions: Unleashing the Full Potential](https://www.youtube.com/watch?v=jjtpEhvwgMw)
378+
* Video (DevOps Toolkit): [Crossplane Composition Functions: Unleashing the Full Potential](https://www.youtube.com/watch?v=jjtpEhvwgMw)

content/en/post/pki-gapi/index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ To enhance the security of the certificate management system, it's recommended t
8686

8787
* Generate the **certificate for the Vault server from the Intermediate CA**: This ensures a trust chain from the Root CA to the end-user certificates, through the Intermediate CA.
8888

89-
By following the procedure described [**here**](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/vault/cluster/docs/pki_requirements.md), you should obtain the following files which will be used throughout the rest of this article. This is a suggestion based on `openssl`, and you may use the method that best suits you to achieve the same outcome.
89+
By following the procedure described [**here**](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/openbao/cluster/docs/pki_requirements.md), you should obtain the following files which will be used throughout the rest of this article. This is a suggestion based on `openssl`, and you may use the method that best suits you to achieve the same outcome.
9090

9191
```console
92-
cd terraform/vault/cluster
92+
cd opentofu/openbao/cluster
9393

9494
ls .tls/*.pem
9595
.tls/bundle.pem .tls/ca-chain.pem .tls/intermediate-ca-key.pem .tls/intermediate-ca.pem .tls/root-ca-key.pem .tls/root-ca.pem .tls/vault-key.pem .tls/vault.pem
@@ -114,7 +114,7 @@ There are several methods to deploy a Vault cluster, but I couldn't find one tha
114114

115115
* **Vault Auto-Unseal feature**: This function is crucial given the ephemeral nature of our nodes. It minimizes downtime and eliminates the need for manual interventions for Vault unsealing.
116116

117-
This article does not aim to describe all the steps, which are available in the [GitHub repo documentation](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/vault/cluster/docs/getting_started.md). Here is an example of `Opentofu` variables:
117+
This article does not aim to describe all the steps, which are available in the [GitHub repo documentation](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/openbao/cluster/docs/getting_started.md). Here is an example of `Opentofu` variables:
118118

119119
```hcl
120120
name = "ogenki-vault"
@@ -144,7 +144,7 @@ Deploying a complete platform is carried out sequentially, in **distinct steps**
144144

145145
Obviously, supporting resources such as network components are required to deploy machines, then the Vault cluster can be installed and configured before considering the addition of other infrastructure elements, which will likely depend on the sensitive information stored in Vault.
146146

147-
The Vault configuration is applied using the [Terraform provider](https://registry.terraform.io/providers/hashicorp/vault/latest/docs), which authenticates using a token generated from the Vault instance. The proposal [**here**](https://github.com/Smana/demo-cloud-native-ref/tree/main/terraform/vault/management) demonstrates how to configure the PKI and allow internal applications to access to Vault's API, particularly on how to configure `Cert-Manager`.
147+
The Vault configuration is applied using the [Terraform provider](https://registry.terraform.io/providers/hashicorp/vault/latest/docs), which authenticates using a token generated from the Vault instance. The proposal [**here**](https://github.com/Smana/demo-cloud-native-ref/tree/main/opentofu/openbao/management) demonstrates how to configure the PKI and allow internal applications to access to Vault's API, particularly on how to configure `Cert-Manager`.
148148

149149
Here are the organization's specific variables:
150150

@@ -384,10 +384,10 @@ spec:
384384
```
385385

386386
* The URL specified is that of the Vault server. It must be accessible from the pods within Kubernetes.
387-
* The `path` in Vault is part of the [Vault configuration phase](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/vault/management/roles.tf). It refers to the role authorized to generate certificates.
388-
* Here, we are using authentication via an [Approle](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/vault/management/docs/approle.md).
387+
* The `path` in Vault is part of the [Vault configuration phase](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/openbao/management/roles.tf). It refers to the role authorized to generate certificates.
388+
* Here, we are using authentication via an [Approle](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/openbao/management/docs/approle.md).
389389

390-
For more details on all the actions necessary for configuring Cert-Manager with Vault, refer to [this procedure](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/vault/management/docs/cert-manager.md).
390+
For more details on all the actions necessary for configuring Cert-Manager with Vault, refer to [this procedure](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/openbao/management/docs/cert-manager.md).
391391

392392
The main difference with the method used for Let's Encrypt lies in the fact that **the certificate must be explicitly created**. Indeed, the previous method allowed for automatic creation with an annotation.
393393

@@ -527,4 +527,4 @@ It's important to recall some recommendations and best practices before consider
527527
- [Deployment Guide](https://developer.hashicorp.com/vault/tutorials/day-one-raft/raft-deployment-guide)
528528
- [AWS](https://developer.hashicorp.com/vault/tutorials/raft/raft-storage-aws)
529529
* [Production hardening](https://developer.hashicorp.com/vault/tutorials/day-one-raft/production-hardening)
530-
* [PKI](https://developer.hashicorp.com/vault/tutorials/secrets-management/pki-engine-external-ca)
530+
* [PKI](https://developer.hashicorp.com/vault/tutorials/secrets-management/pki-engine-external-ca)

content/en/post/tailscale/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ We can then **reach Cloud subnets through Tailscale's VPN**.
110110
### 🚀 Deploying a Subnet Router
111111

112112
Let's dive in and deploy a _Subnet router_ on an AWS network!</br>
113-
Everything is done using the **Terraform** code present in the directory [terraform/network](https://github.com/Smana/demo-cloud-native-ref/tree/main/terraform/network). We will analyze the Tailscale-specific configuration present in the [tailscale.tf](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/network/tailscale.tf) file before deploying.
113+
Everything is done using the **Terraform** code present in the directory [opentofu/network](https://github.com/Smana/demo-cloud-native-ref/tree/main/opentofu/network). We will analyze the Tailscale-specific configuration present in the [tailscale.tf](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/network/tailscale.tf) file before deploying.
114114

115115
#### The Terraform provider
116116

@@ -247,7 +247,7 @@ module "tailscale_subnet_router" {
247247

248248
Now that we've examined the various parameters, it's time to **start our Subnet router** 🚀 !! </br>
249249

250-
First, you need to create a `variable.tfvars` file in the [terraform/network](https://github.com/Smana/demo-cloud-native-ref/tree/main/terraform/network) directory.
250+
First, you need to create a `variable.tfvars` file in the [opentofu/network](https://github.com/Smana/demo-cloud-native-ref/tree/main/opentofu/network) directory.
251251

252252
```hcl
253253
env = "dev"
@@ -380,7 +380,7 @@ In our setup, we already have a _Subnet router_ that routes the entire VPC netwo
380380

381381
To access the Kubernetes API, it's essential to **authorize the Subnet router**. This is accomplished by setting the following rule for the source _security group_.
382382

383-
[terraform/eks/main.tf](https://github.com/Smana/demo-cloud-native-ref/blob/main/terraform/eks/main.tf#L44)
383+
[opentofu/eks/main.tf](https://github.com/Smana/demo-cloud-native-ref/blob/main/opentofu/eks/main.tf#L44)
384384

385385
```hcl
386386
module "eks" {

0 commit comments

Comments
 (0)