You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<strong>Optional:</strong> If you're deploying to Google Kubernetes Engine (GKE) and want to use Google Artifact Registry (GAR) or Google Container Registry (GCR), you can push the images to your private registry before installation. Skip this step if using Docker Hub or if images are already in your registry.
560
+
</p>
561
+
</div>
562
+
</div>
563
+
</div>
564
+
565
+
### Prerequisites for GKE Registry
566
+
567
+
Before pushing images, you need to:
568
+
569
+
1. **Create a Google Artifact Registry repository** (this is NOT done by the script):
For non-GKE registries, authenticate to your registry using the appropriate method before running the push script, and manually update the `imageRegistry` field in `charts/permit-platform/values.yaml`.
681
+
682
+
#### Important: Registry Authentication for Kubernetes
<strong>⚠️ Critical:</strong> If your private registry requires authentication (Artifactory, Harbor, private Docker registries), you MUST create a Kubernetes imagePullSecret and configure it in the Helm chart before installation. Without this, pods will fail to pull images with "ImagePullBackOff" errors.
689
+
</p>
690
+
</div>
691
+
</div>
692
+
</div>
693
+
694
+
**When you need imagePullSecrets:**
695
+
- ✅ **GKE with GAR/GCR**: Not needed (GKE nodes authenticate automatically via Workload Identity)
696
+
- ✅ **EKS with ECR**: Not needed (EKS nodes authenticate automatically via IAM roles)
697
+
- ✅ **AKS with ACR**: Not needed (AKS nodes authenticate automatically via managed identity)
698
+
- ❌ **JFrog Artifactory**: Required (needs username/password or token)
<strong>✅ Simplified:</strong> As of January 2026, the Helm chart includes built-in support for <code>global.imagePullSecrets</code>. No manual template editing required!
749
+
</p>
750
+
</div>
751
+
</div>
752
+
</div>
753
+
754
+
**Alternative: Use node-level registry authentication** (if supported by your Kubernetes distribution)
755
+
756
+
### Important: Skip Image Loading When Using Private Registry
<strong>Note:</strong> If you pushed images to a private registry (GKE/GAR, Artifactory, Harbor, etc.) using the <code>push-images-to-registry.sh</code> script, you MUST use the <code>--skip-images</code> flag when running the installer. This prevents the installer from trying to load images from local tar files.
763
+
</p>
764
+
</div>
765
+
</div>
766
+
</div>
767
+
768
+
**Correct usage when images are in your registry:**
769
+
770
+
```bash
771
+
# After pushing images to your private registry, run installer with --skip-images
772
+
cd scripts
773
+
./install-permit-platform.sh --gke --skip-images # For GKE
774
+
./install-permit-platform.sh --skip-images # For EKS/AKS/on-prem
775
+
./install-permit-platform.sh --openshift --skip-images # For OpenShift
776
+
```
777
+
778
+
**When NOT to use --skip-images:**
779
+
- Installing from the tar.gz package for the first time
780
+
- Using Docker Hub public images
781
+
- Images are loaded to local Docker daemon (Kind clusters)
<strong>✅ Ready:</strong> After pushing images to your registry and configuring values.yaml with imagePullSecrets, proceed to Step 4 to run the installation with <code>--skip-images</code> flag.
788
+
</p>
789
+
</div>
790
+
</div>
791
+
</div>
792
+
553
793
## Step 4: Run Installation
554
794
555
795
### Complete Installation Options Reference
@@ -587,6 +827,29 @@ The installer script `./scripts/install-permit-platform.sh` provides comprehensi
587
827
# - Handles OpenShift-specific networking
588
828
```
589
829
830
+
#### Google GKE Deployment
831
+
```bash
832
+
# Deploy to Google Kubernetes Engine
833
+
./scripts/install-permit-platform.sh --gke
834
+
835
+
# What it does:
836
+
# - Configures for GKE-specific settings
837
+
# - Handles GKE networking and storage
838
+
# - Compatible with both GKE Standard and Autopilot
839
+
# - Works with Google Artifact Registry (GAR) or GCR
840
+
# - Installs nginx-ingress-controller (if not present)
<strong>Note:</strong> GKE deployments require nginx-ingress-controller for ingress routing. The installer will set this up if not already installed in your cluster.
0 commit comments