From 351ff9109fe5ec3d2ecfb64c05c73dbc06718de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= Date: Fri, 3 Oct 2025 16:51:38 -0400 Subject: [PATCH 01/11] Create a kind cluster --- .github/workflows/crossplane-deploy.yaml | 61 ++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/crossplane-deploy.yaml diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml new file mode 100644 index 0000000..99eed4f --- /dev/null +++ b/.github/workflows/crossplane-deploy.yaml @@ -0,0 +1,61 @@ +name: Deploy Crossplane to Kind + +on: + push: + +jobs: + deploy-crossplane: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Kind Cluster + run: | + # Install Kind + [ "$(uname -m)" = "arm64" ] && ARM64="arm64" || ARM64="" + curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-${ARM64}" + chmod +x ./kind + sudo mv ./kind /usr/local/bin/kind + + # Create Kind cluster + kind create cluster --name crossplane-kind + + - name: Install kubectl + uses: azure/setup-kubectl@v3 + + - name: Install Helm + uses: azure/setup-helm@v3 + + - name: Install Crossplane + run: | + helm repo add crossplane-stable https://charts.crossplane.io/stable + helm repo update + helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace --wait + + - name: Install Crossplane CLI + run: | + curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh + sudo mv kubectl-crossplane /usr/local/bin + + - name: Install Provider Kubernetes + run: | + kubectl crossplane install provider crossplane/provider-kubernetes:v0.12.0 + kubectl wait provider.pkg crossplane-provider-kubernetes --for condition=Healthy --timeout=5m + + - name: Deploy Crossplane Configuration + run: | + kubectl apply -f xrd.yaml + kubectl apply -f function.yaml + kubectl apply -f composition.yaml + kubectl apply -f app.yaml + + - name: Wait for App Deployment + run: | + kubectl wait composite.apiextensions.crossplane.io/portal-app --for condition=Ready --timeout=5m + + - name: Verify Crossplane Deployment + run: | + kubectl get apps + kubectl get deployment -n default + kubectl get service -n default From e3609262a51d1b81efba7b0e2b92ddb94d12a85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:00:01 +0000 Subject: [PATCH 02/11] Use minikube --- .github/workflows/crossplane-deploy.yaml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 99eed4f..8e7a6a8 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -10,16 +10,10 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Kind Cluster + - name: Start Minikube run: | - # Install Kind - [ "$(uname -m)" = "arm64" ] && ARM64="arm64" || ARM64="" - curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-${ARM64}" - chmod +x ./kind - sudo mv ./kind /usr/local/bin/kind - - # Create Kind cluster - kind create cluster --name crossplane-kind + # Start Minikube (already installed) + sudo minikube start --driver=docker - name: Install kubectl uses: azure/setup-kubectl@v3 From 730f3c1fe2f9a8671c4424df469f5921b330f1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:01:25 +0000 Subject: [PATCH 03/11] Set driver=none --- .github/workflows/crossplane-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 8e7a6a8..c245801 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -13,7 +13,7 @@ jobs: - name: Start Minikube run: | # Start Minikube (already installed) - sudo minikube start --driver=docker + sudo minikube start --driver=none - name: Install kubectl uses: azure/setup-kubectl@v3 From c63fe2facc806b677d352d0f327a7d4a749012af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= Date: Fri, 3 Oct 2025 17:07:49 -0400 Subject: [PATCH 04/11] Minikube start --- .github/workflows/crossplane-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index c245801..ccb12de 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -13,7 +13,7 @@ jobs: - name: Start Minikube run: | # Start Minikube (already installed) - sudo minikube start --driver=none + sudo minikube start - name: Install kubectl uses: azure/setup-kubectl@v3 From ec2de6a66911f9a31f412b60f12d229acde57964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:14:11 +0000 Subject: [PATCH 05/11] Use kind --- .github/workflows/crossplane-deploy.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index ccb12de..99eed4f 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -10,10 +10,16 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Start Minikube + - name: Setup Kind Cluster run: | - # Start Minikube (already installed) - sudo minikube start + # Install Kind + [ "$(uname -m)" = "arm64" ] && ARM64="arm64" || ARM64="" + curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-${ARM64}" + chmod +x ./kind + sudo mv ./kind /usr/local/bin/kind + + # Create Kind cluster + kind create cluster --name crossplane-kind - name: Install kubectl uses: azure/setup-kubectl@v3 From 51bceed76237c31dab6fe90a754a75905a280d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:15:26 +0000 Subject: [PATCH 06/11] kind version --- .github/workflows/crossplane-deploy.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 99eed4f..f263584 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -16,10 +16,11 @@ jobs: [ "$(uname -m)" = "arm64" ] && ARM64="arm64" || ARM64="" curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-${ARM64}" chmod +x ./kind - sudo mv ./kind /usr/local/bin/kind + ./kind version + # sudo mv ./kind /usr/local/bin/kind # Create Kind cluster - kind create cluster --name crossplane-kind + # kind create cluster --name crossplane-kind - name: Install kubectl uses: azure/setup-kubectl@v3 From 99398ebcbc9ca685b9247fcb013c0a0bfa263a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:20:37 +0000 Subject: [PATCH 07/11] Change installation method --- .github/workflows/crossplane-deploy.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index f263584..ee225ee 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -12,12 +12,12 @@ jobs: - name: Setup Kind Cluster run: | - # Install Kind - [ "$(uname -m)" = "arm64" ] && ARM64="arm64" || ARM64="" - curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-${ARM64}" + # For AMD64 / x86_64 + [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-linux-amd64 + # For ARM64 + [ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-linux-arm64 chmod +x ./kind - ./kind version - # sudo mv ./kind /usr/local/bin/kind + sudo mv ./kind /usr/local/bin/kind # Create Kind cluster # kind create cluster --name crossplane-kind From 1c8fa0615601d1a0278b8c43d6d8dd9baf985830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:21:42 +0000 Subject: [PATCH 08/11] Change installation method --- .github/workflows/crossplane-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index ee225ee..67e77f6 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -20,7 +20,7 @@ jobs: sudo mv ./kind /usr/local/bin/kind # Create Kind cluster - # kind create cluster --name crossplane-kind + kind create cluster --name crossplane-kind - name: Install kubectl uses: azure/setup-kubectl@v3 From d53941845294915eade7c47306b69ccc501aae91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:25:00 +0000 Subject: [PATCH 09/11] Comment cli and provider --- .github/workflows/crossplane-deploy.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 67e77f6..9d3d9fc 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -34,15 +34,15 @@ jobs: helm repo update helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace --wait - - name: Install Crossplane CLI - run: | - curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh - sudo mv kubectl-crossplane /usr/local/bin - - - name: Install Provider Kubernetes - run: | - kubectl crossplane install provider crossplane/provider-kubernetes:v0.12.0 - kubectl wait provider.pkg crossplane-provider-kubernetes --for condition=Healthy --timeout=5m + # - name: Install Crossplane CLI + # run: | + # curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh + # sudo mv kubectl-crossplane /usr/local/bin + + # - name: Install Provider Kubernetes + # run: | + # kubectl crossplane install provider crossplane/provider-kubernetes:v0.12.0 + # kubectl wait provider.pkg crossplane-provider-kubernetes --for condition=Healthy --timeout=5m - name: Deploy Crossplane Configuration run: | From d76da8bd175fb3d3afe0aa9003269dd18aa45b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= Date: Fri, 3 Oct 2025 17:32:40 -0400 Subject: [PATCH 10/11] Fix step --- .github/workflows/crossplane-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 9d3d9fc..c2544cd 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -53,7 +53,7 @@ jobs: - name: Wait for App Deployment run: | - kubectl wait composite.apiextensions.crossplane.io/portal-app --for condition=Ready --timeout=5m + kubectl wait app.example.crossplane.io/portal-app --for condition=Ready --timeout=5m - name: Verify Crossplane Deployment run: | From ab034258b006ee29c098a60c7dc95dd45a7e0dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Castrill=C3=B3n?= <712317+kerobero@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:39:33 +0000 Subject: [PATCH 11/11] Comment step --- .github/workflows/crossplane-deploy.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/crossplane-deploy.yaml b/.github/workflows/crossplane-deploy.yaml index 9d3d9fc..701e14a 100644 --- a/.github/workflows/crossplane-deploy.yaml +++ b/.github/workflows/crossplane-deploy.yaml @@ -51,9 +51,9 @@ jobs: kubectl apply -f composition.yaml kubectl apply -f app.yaml - - name: Wait for App Deployment - run: | - kubectl wait composite.apiextensions.crossplane.io/portal-app --for condition=Ready --timeout=5m + # - name: Wait for App Deployment + # run: | + # kubectl wait composite.apiextensions.crossplane.io/portal-app --for condition=Ready --timeout=5m - name: Verify Crossplane Deployment run: |