Skip to content
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
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ go.work
/internal/.DS_Store
/examples/secret2.yaml
/examples/secret1.yaml
/config/anyapplication/kind-kind-cluster2.yaml
/config/anyapplication/kind-kind-cluster1.yaml
/config/anyapplication/emdc2.yaml
/config/anyapplication/emdc1.yaml
node_modules/
Expand Down
77 changes: 77 additions & 0 deletions config/anyapplication/kind-kind-cluster1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
peers:
- url: localhost:18080
runtime:
zone: kind-kind-cluster1
operationalPollDuration: 5s
syncPollDuration: 10s
chartVersionPollDuration: 60s
defaultSyncTimeout: 180s
defaultUndeployTimeout: 180s
api:
bind_address: :19092
cache:
excludes:
- projectcalico.org/FelixConfiguration
- projectcalico.org/GlobalNetworkPolicy
- projectcalico.org/KubeControllersConfiguration
- projectcalico.org/NetworkSet
- projectcalico.org/CalicoNodeStatus
- projectcalico.org/NetworkPolicy
- projectcalico.org/StagedNetworkPolicy
- projectcalico.org/HostEndpoint
- projectcalico.org/Profile
- projectcalico.org/BGPPeer
- projectcalico.org/BGPConfiguration
- projectcalico.org/IPReservation
- projectcalico.org/BGPFilter
- projectcalico.org/StagedGlobalNetworkPolicy
- projectcalico.org/StagedKubernetesNetworkPolicy
- projectcalico.org/IPPool
- projectcalico.org/Tier
- projectcalico.org/BlockAffinity
- projectcalico.org/ClusterInformation
- projectcalico.org/IPAMConfiguration
- projectcalico.org/GlobalNetworkSet
- crd.projectcalico.org/BGPConfiguration
- crd.projectcalico.org/HostEndpoint
- crd.projectcalico.org/GlobalNetworkSet
- crd.projectcalico.org/KubeControllersConfiguration
- crd.projectcalico.org/CalicoNodeStatus
- crd.projectcalico.org/StagedKubernetesNetworkPolicy
- crd.projectcalico.org/BlockAffinity
- crd.projectcalico.org/GlobalNetworkPolicy
- crd.projectcalico.org/IPAMConfig
- crd.projectcalico.org/IPPool
- crd.projectcalico.org/IPReservation
- crd.projectcalico.org/StagedNetworkPolicy
- crd.projectcalico.org/BGPPeer
- crd.projectcalico.org/IPAMBlock
- crd.projectcalico.org/ClusterInformation
- crd.projectcalico.org/IPAMHandle
- crd.projectcalico.org/NetworkSet
- crd.projectcalico.org/StagedGlobalNetworkPolicy
- crd.projectcalico.org/NetworkPolicy
- crd.projectcalico.org/Tier
- crd.projectcalico.org/BGPFilter
- crd.projectcalico.org/FelixConfiguration
- operator.tigera.io/Installation
- operator.tigera.io/APIServer
- operator.tigera.io/ManagementClusterConnection
- operator.tigera.io/TigeraStatus
- operator.tigera.io/Goldmane
- operator.tigera.io/GatewayAPI
- operator.tigera.io/ImageSet
- operator.tigera.io/Whisker
- policy.networking.k8s.io/BaselineAdminNetworkPolicy
- policy.networking.k8s.io/AdminNetworkPolicy
- dcp.hiro.io/anyapplication
logging:
default_level: info
components:
SyncManager: info
GitOpsEngine: info
ClusterCache: info
Controller: info
Jobs: info
API: info
Helm: info
77 changes: 77 additions & 0 deletions config/anyapplication/kind-kind-cluster2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
peers:
- url: localhost:18080
runtime:
zone: kind-kind-cluster2
operationalPollDuration: 5s
syncPollDuration: 10s
chartVersionPollDuration: 60s
defaultSyncTimeout: 180s
defaultUndeployTimeout: 180s
api:
bind_address: :29092
cache:
excludes:
- projectcalico.org/FelixConfiguration
- projectcalico.org/GlobalNetworkPolicy
- projectcalico.org/KubeControllersConfiguration
- projectcalico.org/NetworkSet
- projectcalico.org/CalicoNodeStatus
- projectcalico.org/NetworkPolicy
- projectcalico.org/StagedNetworkPolicy
- projectcalico.org/HostEndpoint
- projectcalico.org/Profile
- projectcalico.org/BGPPeer
- projectcalico.org/BGPConfiguration
- projectcalico.org/IPReservation
- projectcalico.org/BGPFilter
- projectcalico.org/StagedGlobalNetworkPolicy
- projectcalico.org/StagedKubernetesNetworkPolicy
- projectcalico.org/IPPool
- projectcalico.org/Tier
- projectcalico.org/BlockAffinity
- projectcalico.org/ClusterInformation
- projectcalico.org/IPAMConfiguration
- projectcalico.org/GlobalNetworkSet
- crd.projectcalico.org/BGPConfiguration
- crd.projectcalico.org/HostEndpoint
- crd.projectcalico.org/GlobalNetworkSet
- crd.projectcalico.org/KubeControllersConfiguration
- crd.projectcalico.org/CalicoNodeStatus
- crd.projectcalico.org/StagedKubernetesNetworkPolicy
- crd.projectcalico.org/BlockAffinity
- crd.projectcalico.org/GlobalNetworkPolicy
- crd.projectcalico.org/IPAMConfig
- crd.projectcalico.org/IPPool
- crd.projectcalico.org/IPReservation
- crd.projectcalico.org/StagedNetworkPolicy
- crd.projectcalico.org/BGPPeer
- crd.projectcalico.org/IPAMBlock
- crd.projectcalico.org/ClusterInformation
- crd.projectcalico.org/IPAMHandle
- crd.projectcalico.org/NetworkSet
- crd.projectcalico.org/StagedGlobalNetworkPolicy
- crd.projectcalico.org/NetworkPolicy
- crd.projectcalico.org/Tier
- crd.projectcalico.org/BGPFilter
- crd.projectcalico.org/FelixConfiguration
- operator.tigera.io/Installation
- operator.tigera.io/APIServer
- operator.tigera.io/ManagementClusterConnection
- operator.tigera.io/TigeraStatus
- operator.tigera.io/Goldmane
- operator.tigera.io/GatewayAPI
- operator.tigera.io/ImageSet
- operator.tigera.io/Whisker
- policy.networking.k8s.io/BaselineAdminNetworkPolicy
- policy.networking.k8s.io/AdminNetworkPolicy
- dcp.hiro.io/anyapplication
logging:
default_level: info
components:
SyncManager: info
GitOpsEngine: info
ClusterCache: info
Controller: info
Jobs: info
API: info
Helm: info
2 changes: 1 addition & 1 deletion docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export default withMermaid({
nav: [
{ text: 'Home', link: '/' },
{ text: 'Concepts', link: '/concepts' },
{ text: 'Usage', link: '/usage' },
{ text: 'Usage', link: '/usage/installation' },
],

editLink: {
Expand Down
File renamed without changes.
1 change: 0 additions & 1 deletion docs/concepts/index.md

This file was deleted.

120 changes: 120 additions & 0 deletions docs/development/setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Development

## **Dependencies**

Requirements:

- Docker
- [Kind cluster](https://kind.sigs.k8s.io/)

## Install Kind clusters

The command below will create two clusters, installs calico plugin and configures BGP peering between them.

```sh
./config/generator/env/clusters.sh create
```

## Run local controllers from repo

### Run AnyApplication Controller (kind-cluster1)

Checkout and build project:

```sh
# Check out repository
git clone https://github.com/HIRO-MicroDataCenters-BV/anyapplication-controller.git
cd anyapplication-controller/

# Build project
make build
```

Run Controller:

```sh
# install CRDS
kubectl config use-context kind-kind-cluster1
make install

# run controller
make run-kind-kind-cluster1
```

### Run Mesh Controller (kind-cluster1)

Install [cargo and rust](https://rust-lang.org/tools/install/) and build project:

```sh
# Check out repository
git clone https://github.com/HIRO-MicroDataCenters-BV/mesh-controller.git
cd mesh-controller/

# build project
cargo build
```

Run controller:
```sh
# install CRDS
kubectl --context kind-kind-cluster1 apply -f ./charts/mesh-controller/crds/meshpeer.yaml

# run controller
cargo run -- -c ./env/kind-cluster1.yaml
```

### Run Placement Controller (kind-cluster1)

Install [uv](https://github.com/astral-sh/uv) and build project

```sh
# Check out repository
git clone https://github.com/HIRO-MicroDataCenters-BV/placement-controller.git
cd placement-controller/

# build project
uv build
```

Run controller:

```sh
uv run python -m placement_controller.main --config ./etc/kind-kind-cluster1.yaml
```

## Run containerized versions via helm charts

1. Generate test cluster configuration using script [here](https://github.com/HIRO-MicroDataCenters-BV/anyapplication-controller/tree/main/config/generator)

The command below will generate development configuration from ./config-dev.yaml file for two clusters - kind-cluster1 and kind-cluster2.

```sh
./generate.sh create-config ./config-dev.yaml ./target
```

Note that the script will generate keys for all clusters. New ones are generated on every call.

2. Execute install scripts for all clusters:

```sh

# kind-kind-cluster1
./target/kind-kind-cluster1/anyapplication-install.sh
./target/kind-kind-cluster1/mesh-install.sh
./target/kind-kind-cluster1/placement-install.sh

# kind-kind-cluster2
./target/kind-kind-cluster2/anyapplication-install.sh
./target/kind-kind-cluster2/mesh-install.sh
./target/kind-kind-cluster2/placement-install.sh

```

## Remove Kind clusters

The command below will remove two kind clusters.

```sh
./config/generator/env/clusters.sh delete
```

Empty file removed docs/usage/index.md
Empty file.
Loading