If you want to give a quick try of the operator without the whole glory of OLM you can deploy our Operator using Helm.
- Start minikube:
minikube start --addons=ingress,dashboard- Install the Helm Chart:
helm install myhelm helm/- Create an instance of Trustify:
cat << EOF | kubectl apply -f -
apiVersion: "org.trustify/v1alpha1"
kind: "Trustify"
metadata:
name: myapp
spec: { }
EOF- Start minikube:
minikube start --addons=ingress,dashboard
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.30.0/install.sh | bash -s v0.30.0- Setup ServiceAccount + Role + RoleBinding:
kubectl apply -f scripts/rbac.yaml- Start server in dev mode
mvn compile quarkus:dev- Create an instance of the operator:
kubectl apply -f scripts/trustify.yamlAt this point the container images will be generated by the operator.
export IMG=quay.io/${USER}/trustify-operator:v0.0.0
export BUNDLE_IMG=quay.io/${USER}/trustify-operator-bundle:v0.0.0
export CATALOG_IMG=quay.io/${USER}/trustify-operator-catalog:v0.0.0- Create operator:
make docker-build docker-push- Create bundle:
make bundle-build bundle-push- Create catalog:
make catalog-build catalog-push- If you are using Minikube:
CATALOG_NAMESPACE=olm- If you are using OCP:
CATALOG_NAMESPACE=openshift-marketplace- Instantiate catalog:
cat <<EOF | kubectl apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: trustify-catalog-source
namespace: $CATALOG_NAMESPACE
spec:
sourceType: grpc
image: $CATALOG_IMG
EOFAt this point you can see the Operator in the marketplace of OCP ready for you to test it.
- Create namespace:
kubectl create ns trustify- Create group
cat <<EOF | kubectl apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: operatorgroup
namespace: trustify
spec:
targetNamespaces:
- trustify
EOF- Create subscription:
cat <<EOF | kubectl apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: trustify-subscription
namespace: trustify
spec:
channel: alpha
name: trustify-operator
source: trustify-catalog-source
sourceNamespace: ${CATALOG_NAMESPACE}
EOFcat <<EOF | kubectl apply -n trustify -f -
apiVersion: "org.trustify/v1alpha1"
kind: "Trustify"
metadata:
name: myapp
spec: { }
EOF| Red Hat OpenShift version | Kubernetes version |
|---|---|
| 4.15 | 1.28 |
| 4.14 | 1.27 |
| 4.13 | 1.26 |
| 4.12 | 1.25 |
| 4.11 | 1.24 |
| 4.10 | 1.23 |
References: