Via Manifests
Prerequisites
Create the namespace
To install the SKE Operator via the distribution manifest,
you will first need to create the kratix-platform-system
namespace. This is where the
SKE operator will be installed:
kubectl create namespace kratix-platform-system
Create the Operator configuration
If you are not running SKE in an air-gapped environment, all you need to do is create a secret with your license token:
kubectl create secret docker-registry syntasso-registry \
--namespace=kratix-platform-system \
--docker-server=ghcr.io \
--docker-username=syntasso-pkg \
--docker-password=<YOUR TOKEN>
For air-gapped environments, you will need to create a ConfigMap with the following structure:
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: null
name: ske-operator
namespace: kratix-platform-system
data:
config: |
releaseStorage:
path: # path within the git repository or bucket to look for releases
# one of: git or bucket
git:
secretName: # the name of the secret containing the git credentials
repo: # the git repository to look for releases
branch: # the branch to look for releases
bucket:
name: # the name of the bucket to look for releases
endpoint: # the endpoint of the bucket
region: # the region of the bucket
secretName: # optional: the name of the secret containing the credentials to access the bucket
imageRegistry:
host: # the host of the image registry
pullSecret: # optional: the name of the secret containing the image registry credentials
platformImage: # the image of the platform
pipelineImage: # the image of the pipeline adapter
Refer to the air-gapped installations section for more information on how to configure the underlying storage and image registry, as well as the expected structure of the referenced secrets.
Deploying the SKE Operator
With all of the prerequisites in place, the platform is now ready to deploy the
SKE Operator. Locate the desired release of the SKE-Operator and apply its
manifest with kubectl
:
kubectl apply -f http://s3.eu-west-2.amazonaws.com/syntasso-enterprise-releases/ske-operator/<VERSION>/ske-operator-distribution.yaml
Applying the manifest will install the SKE Operator in the
kratix-platform-system
namespace, together with a Kratix Custom Resource
Definition (CRD) that allows you to manage the Syntasso Kratix Enterprise installation.
Deploying SKE
The SKE Operator includes a custom resource definition (CRD) for managing SKE. Only one instance of SKE can be created by the SKE Operator in a given cluster.
To deploy SKE, create a file named ske-instance.yaml
with the following contents:
apiVersion: platform.syntasso.io/v1alpha1
kind: Kratix
metadata:
name: my-kratix
spec:
version: v0.99.0 # The desired version of SKE
Apply the file with kubectl
:
kubectl apply --filename ske-instance.yaml
The operator will then install SKE and its necessary configurations. For more information about the Kratix CRD, see the SKE Operator documentation.
Upgrading SKE Operator
To upgrade the SKE Operator, you can apply the new manifest directly:
kubectl apply -f http://s3.eu-west-2.amazonaws.com/syntasso-enterprise-releases/ske-operator/<NEW-VERSION>/ske-operator-distribution.yaml
Upgrading SKE
To upgrade the SKE instance, you can apply a new version of the Kratix CRD:
apiVersion: platform.syntasso.io/v1alpha1
kind: Kratix
metadata:
name: my-kratix
spec:
version: v0.100.0 # New desired version
Upgrade checks
The SKE Operator will perform pre-upgrade checks and post-upgrade checks as part of the upgrade flow.
To skip these checks, you can add the
ske.syntasso.io/skip-all-upgrade-checks
label when updating your .spec.version
:
apiVersion: platform.syntasso.io/v1alpha1
kind: Kratix
metadata:
name: my-kratix
labels:
ske.syntasso.io/skip-all-upgrade-checks: "true"
spec:
version: v0.100.0 # New desired version
Skipping checks can be useful when you need to upgrade SKE while its current state is unhealthy.
Handling failures
If any upgrade step fails, the SKE Operator will continue looping its reconciliation of the Kratix resource to pick up any manual fixes. See the section on handling failures for more details.
Deleting SKE Operator
To delete the SKE Operator (and any deployed SKE instance), run the following command:
kubectl delete -f http://s3.eu-west-2.amazonaws.com/syntasso-enterprise-releases/ske-operator/<VERSION>/ske-operator-distribution.yaml
This will delete the SKE Operator and any deployed SKE instance, including all Promises and Resource Requests.
Deleting SKE Instance
To delete the SKE instance, run the following command:
kubectl delete kratixes my-kratix