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

Add e2e example manifests for Network peering #1144

Merged
merged 3 commits into from
Nov 11, 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
5 changes: 5 additions & 0 deletions config/samples/e2e/bases/network-peering/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
resources:
- network1.yaml
- network2.yaml
- machine1.yaml
- machine2.yaml
38 changes: 38 additions & 0 deletions config/samples/e2e/bases/network-peering/machine1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
apiVersion: compute.ironcore.dev/v1alpha1
kind: Machine
metadata:
name: machine-sample1
spec:
machineClassRef:
name: machineclass-sample
ignitionRef:
name: ignition
key: ignition.yaml
networkInterfaces:
- name: primary
ephemeral:
networkInterfaceTemplate:
spec:
ipFamilies:
- IPv4
ips:
- value: 10.0.0.1
networkRef:
name: network-sample1
virtualIP:
ephemeral:
virtualIPTemplate:
spec:
type: Public
ipFamily: IPv4
volumes:
- name: root-disk
ephemeral:
volumeTemplate:
spec:
volumeClassRef:
name: volumeclass-sample
image: gardenlinux:rootfs-image
resources:
storage: 10Gi

38 changes: 38 additions & 0 deletions config/samples/e2e/bases/network-peering/machine2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
apiVersion: compute.ironcore.dev/v1alpha1
kind: Machine
metadata:
name: machine-sample2
spec:
machineClassRef:
name: machineclass-sample
ignitionRef:
name: ignition
key: ignition.yaml
networkInterfaces:
- name: primary
ephemeral:
networkInterfaceTemplate:
spec:
ipFamilies:
- IPv4
ips:
- value: 10.0.0.2
networkRef:
name: network-sample2
virtualIP:
ephemeral:
virtualIPTemplate:
spec:
type: Public
ipFamily: IPv4
volumes:
- name: root-disk
ephemeral:
volumeTemplate:
spec:
volumeClassRef:
name: volumeclass-sample
image: gardenlinux:rootfs-image
resources:
storage: 10Gi

9 changes: 9 additions & 0 deletions config/samples/e2e/bases/network-peering/network1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: networking.ironcore.dev/v1alpha1
kind: Network
metadata:
name: network-sample1
spec:
peerings:
- name: peering1
networkRef:
name: network-sample2
9 changes: 9 additions & 0 deletions config/samples/e2e/bases/network-peering/network2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: networking.ironcore.dev/v1alpha1
kind: Network
metadata:
name: network-sample2
spec:
peerings:
- name: peering2
networkRef:
name: network-sample1
50 changes: 50 additions & 0 deletions config/samples/e2e/network-peering/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Network Peering Sample deployement

This example deploys two `Network`s peered with each other and these `Network`s are referenced in `Machine`s.
The following artifacts will be deployed in your namespace:
- IronCore `Network`, `NetworkInterface` and `VirtualIP`
- IronCore `Machine`
- IronCore `Volume`
- Secret containing the `ignition`

## Prerequisites

- [Butane](https://coreos.github.io/butane/)

## Usage
1. Adapt the `namespace` in `kustomization.yaml`
2. Replace `your-user`, `your-pw-hash` and `your-ssh-key`s in the `ignition/ignition.yaml`
3. Run `ignition/regenerate-ignition.sh`
4. Create the below `patch-machine.yaml` in `network-peering` folder with the desired `machineClassRef`, `machinePoolRef`, `volumeClassRef`, `volumePoolRef`, `image` etc. as per your environment

```
apiVersion: compute.ironcore.dev/v1alpha1
kind: Machine
metadata:
name: machine-sample
spec:
machineClassRef:
name: new-machineClass
machinePoolRef:
name: new-machinePool
volumes:
- name: root-disk
ephemeral:
volumeTemplate:
spec:
volumeClassRef:
name: new-volumeClass
volumePoolRef:
name: new-volumePool
image: gardenlinux:rootfs-dev-20231025
resources:
storage: 15Gi
```

5. Update the `kustomization.yaml` with below content
```
patches:
- path: patch-machine.yaml
```

6. Run (`kubectl apply -k ./`)
8 changes: 8 additions & 0 deletions config/samples/e2e/network-peering/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: test

resources:
- ../bases/ignition
- ../bases/network-peering
Loading