Installation
Install gNMIc Operator on your Kubernetes cluster
Prerequisites
- Kubernetes cluster (v1.25+)
- kubectl configured to access your cluster
- cert-manager
Installation Methods
Method 1: Quick Install (Recommended)
Download and apply the pre-built manifest from the release:
# Install a specific version
# This includes CRDs, RBAC, webhooks, and the operator deployment
kubectl apply -f https://github.com/gnmic/operator/releases/download/v0.1.0/install.yaml
Method 2: Using Kustomize
For more control over the installation, use kustomize with an overlay:
# Create a kustomization.yaml
cat <<EOF > kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/gnmic/operator/config/default?ref=v0.1.0
images:
- name: controller
newName: ghcr.io/gnmic/operator
newTag: "0.1.0"
EOF
# Apply
kubectl apply -k .
Method 3: Using Helm
# Add the Helm repository (OCI)
helm install gnmic-operator oci://ghcr.io/gnmic/operator/charts/gnmic-operator --version 0.1.0
# Or with custom values
helm install gnmic-operator oci://ghcr.io/gnmic/operator/charts/gnmic-operator \
--version 0.1.0 \
--namespace gnmic-system \
--create-namespace \
--set resources.limits.memory=512Mi
For a complete list of Helm chart configuration options, see the Helm Chart Reference.
Customization
Custom Namespace
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/gnmic/operator/config/default?ref=v0.1.0
namespace: my-namespace
namePrefix: my-
images:
- name: controller
newName: ghcr.io/gnmic/operator
newTag: "0.1.0"
Custom Resources
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/gnmic/operator/config/default?ref=v0.1.0
images:
- name: controller
newName: ghcr.io/gnmic/operator
newTag: "0.1.0"
patches:
- target:
kind: Deployment
name: controller-manager
patch: |
- op: replace
path: /spec/template/spec/containers/0/resources
value:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
Pre-built Overlays
Example overlays are available in the repository:
| Overlay | Description |
|---|---|
config/overlays/custom-namespace | Deploy to a custom namespace |
config/overlays/without-certmanager | Development mode without cert-manager |
config/overlays/production | Production-ready with increased resources |
Verify Installation
Check that the operator is running:
kubectl get pods -n gnmic-system
You should see output similar to:
NAME READY STATUS RESTARTS AGE
gnmic-controller-manager-xxxxx-xxxxx 1/1 Running 0 30s
Check the CRDs are installed:
kubectl get crds | grep gnmic
Installing cert-manager
cert-manager is required for webhooks and TLS features.
# Install cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.0/cert-manager.yaml
# Wait for cert-manager to be ready
kubectl wait --for=condition=Available deployment --all -n cert-manager --timeout=120s
For more installation options, see the cert-manager documentation.
Uninstall
To remove the operator:
# If installed with quick install
kubectl delete -f https://github.com/gnmic/operator/releases/download/v0.1.0/install.yaml
# If installed with Helm
helm uninstall gnmic-operator
# If installed with kustomize
kubectl delete -k .
To remove CRDs (this will delete all gNMIc resources!):
kubectl delete -f https://github.com/gnmic/operator/releases/download/v0.1.0/crds.yaml
Next Steps
- Quick Start - Deploy your first gNMIc collector