Cluster Management
By leveraging Shipa, you can quickly bind existing frameworks to different clusters, abstracting Kubernetes completely away from your developer while enabling applications to be seamlessly deployed across multiple clusters.
apiVersion: shipa.crossplane.io/v1alpha1
kind: Cluster
metadata:
name: cr-cluster-1
spec:
forProvider:
name: cr-cluster-1
endpoint:
addresses: ["https://k8s-api.url:443"]
caCert: |
-----BEGIN CERTIFICATE-----
<cert conten>
-----END CERTIFICATE-----
token: <token content>
resources:
frameworks:
name: ["crossplane-framework-dev", "crossplane-framework-prod"]
ingressControllers:
type: "istio"
serviceType: "clusterip"
ingressIp: "10.10.10.20"
debug: false
Top-Level Attributes
Component | Type | Description |
---|---|---|
apiVersion | string | the version of the API. |
kind | string | the kind of custom resource that will be created by Shipa. Cluster is the kind used by Shipa for binding frameworks to different clusters. |
metadata | the name of the custom resource that will be created by Shipa. | |
spec | the specification that will be used by Shipa when binding the cluster to existing Shipa frameworks. |
Metadata
Component | Type | Description |
---|---|---|
name | string | the name of the custom resource that will be created by Shipa. |
Specification
Component path: spec > forProvider
Component | Type | Description |
---|---|---|
name | string | the name that will be used by Shipa as the cluster identifier when binding frameworks to it. It does not need to match your cluster name. Required: Yes |
endpoint | the Kubernetes cluster API address, token, and certificate that Shipa should use when connecting with the cluster. Required: Yes | |
resources | defines the Shipa frameworks that should be bound to the cluster Required: Yes | |
ingressControllers | specific ingress configuration that should be used by Shipa when binding frameworks to the cluster. If not defined, Shipa will automatically select Traefik and pre-configure it Required: No |
Endpoint
Component path: spec > forProvider > endpoint
Component | Type | Description |
---|---|---|
addresses | string | the Kubernetes cluster API address that Shipa should use when connecting to the cluster. you can find detailed information on how to find your cluster information here Required: Yes |
caCert | string | the CA Cert that should be used by Shipa when connecting to the cluster API. you can find detailed information on how to find your cluster information here Required: Yes |
token | string | the Shipa admin account token that was previously added to your cluster so Shipa can successfully connect to it. you can find detailed information on how to create a service account for Shipa in your cluster here Required: Yes |
Resources
Component path: spec > forProvider > resources
Component | Type | Definition |
---|---|---|
frameworks | string | the name of the frameworks that should be bound to the cluster. Required: Yes |
Ingress Controllers
Component path: spec > forProvider > ingressControllers
Component | Type | Definition |
---|---|---|
type | string | the ingress controller that should be used by Shipa when connecting frameworks to the cluster. Options: - istio - traefik Required: No If you are binding frameworks where Istio is the selected ingress controller, make sure Istio is already installed and available in the cluster. More information available here If not specified, Shipa will automatically use and configure Traefik. |
serviceType | string | the service type that should be used by Shipa when deploying applications through the framework to the cluster. If not selected, Shipa will automatically assign LoadBalancer as the default option. Options: - loadbalancer - clusterip - nodeport Required: No |
debug | bool | the level of logging produced when using the selected ingress controller. Required: No |
ingressIp | string | the ingress controller IP that Shipa should use when creating application endpoints. Required: No Condition: If Traefik is selected, Shipa can auto-configure it. If Istio is selected, then you must enter the Istio service IP. More information available here |
Updated about 1 year ago