Install konnector without klutch-bind CLI
When provisioning an App Cluster from an automated CI flow, it may be desirable to avoid additional dependencies like the kubectl bind
CLI binary or the anynines helper
CLI.
For those cases it is possible to deploy the konnector
component using a plain kubernetes manifest.
These steps will only install the generic konnector component. They will not bind the App Cluster to the Control Plane Cluster yet.
First time installation
The manifests to apply can be found in the codeblock below.
Before applying them, make sure replace the image
with the latest one if necessary. The latest one can always be found in this documentation.
apiVersion: v1
kind: Namespace
metadata:
name: kube-bind
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: klutch-bind-konnector
rules:
- apiGroups:
- "*"
resources:
- "*"
verbs:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: klutch-bind-konnector
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: klutch-bind-konnector
subjects:
- kind: ServiceAccount
name: konnector
namespace: kube-bind
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: konnector
namespace: kube-bind
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: konnector
namespace: kube-bind
labels:
app: konnector
spec:
replicas: 2
selector:
matchLabels:
app: konnector
template:
metadata:
labels:
app: konnector
spec:
restartPolicy: Always
serviceAccountName: konnector
containers:
- name: konnector
# Make sure to use the latest image version here:
image: public.ecr.aws/w5n9a2g2/anynines/konnector:v1.4.0
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
Updating konnector
In order to update an existing konnector installation with a new version, simply reapply the Deployment
manifest, with the new image version.
Example (fictional image version):
apiVersion: apps/v1
kind: Deployment
metadata:
name: konnector
namespace: kube-bind
labels:
app: konnector
spec:
replicas: 2
selector:
matchLabels:
app: konnector
template:
metadata:
labels:
app: konnector
spec:
restartPolicy: Always
serviceAccountName: konnector
containers:
- name: konnector
# Replace this with the new image version:
image: public.ecr.aws/w5n9a2g2/anynines/konnector:v3.141.59
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace