diff --git a/charts/v3.4.3/Chart.yaml b/charts/v3.4.3/Chart.yaml new file mode 100644 index 0000000..0b5fddc --- /dev/null +++ b/charts/v3.4.3/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +name: cloudcasa +version: "3.4.3" +appVersion: "3.1.0" +kubeVersion: ">=1.20.0-0" +description: CloudCasa backup and migration service for Kubernetes and cloud-native applications. +annotations: + charts.openshift.io/name: CloudCasa Agent +home: https://cloudcasa.io +icon: https://raw.githubusercontent.com/catalogicsoftware/cloudcasa-helmchart/gh-pages/logo.png +keywords: + - backup + - restore + - migration + - catalogic + - cloudcasa + - velero +maintainers: + - name: CloudCasa Support + email: support@cloudcasa.io diff --git a/charts/v3.4.3/README.md b/charts/v3.4.3/README.md new file mode 100644 index 0000000..cb4bb31 --- /dev/null +++ b/charts/v3.4.3/README.md @@ -0,0 +1,52 @@ +# CloudCasa Kubernetes Agent + +[CloudCasa](https://cloudcasa.io) - Leader in Kubernetes Data Protection and Application Resiliency + +# Introduction + +CloudCasa is a SaaS data protection, disaster recovery, migration, and replication solution for Kubernetes and cloud-native applications. Configuration is quick and easy, and basic service is free. + +CloudCasa provides two types of backup services for Kubernetes: +* **CloudCasa Pro** provides centralized backup, DR, and migration services for large, complex, multi-cluster, multi-cloud, and hybrid cloud environments. It includes multi-cloud account integration, managed backup storage, and advanced cross-cloud recovery. +* **CloudCasa Velero Management** provides centralized management and monitoring, guided recovery, and commercial support for existing Velero backup installations. + +Whether you are managing existing Velero installations or using the advanced Pro features, with CloudCasa you don't need to be a storage or data protection expert to back up and restore your Kubernetes clusters. + +This Helm chart installs and configures the CloudCasa agent on a Kubernetes cluster. +See the CloudCasa [Getting Started Guide](https://cloudcasa.io/get-started) for more information. + +## Prerequisites + +1. Kubernetes 1.20+ +2. Helm 3.0+ + +## Installation + +### Installing the CloudCasa Agent + +1. Log in to https://home.cloudcasa.io and add your Kubernetes cluster under the Protection tab. Note the returned cluster ID. +2. Add the CloudCasa Helm repo to your Helm configuration, if it hasn't been added already. + ``` + $ helm repo add cloudcasa-repo https://catalogicsoftware.github.io/cloudcasa-helmchart + ``` +3. To install the agent, execute the following helm commands, replacing `````` with the Cluster ID obtained above: + ``` + $ helm repo update + $ helm install cloudcasa cloudcasa-repo/cloudcasa --set cluster_id= + ``` +This will install the CloudCasa agent and complete registration of the cluster with the CloudCasa service. + +### Updating the CloudCasa Agent +1. Log in to https://home.cloudcasa.io and obtain the cluster ID for your cluster by selecting it under the Protection tab. You can also obtain the current setting for it with the command ```helm get values cloudcasa```. +2. Execute the following commands to update the agent, replacing `````` with the Cluster ID obtained above: + ``` + $ helm repo update + $ helm upgrade cloudcasa cloudcasa-repo/cloudcasa --set cluster_id= + ``` + +### Uninstalling the CloudCasa Agent +1. Execute the following commands to uninstall CloudCasa. + ``` + $ helm uninstall cloudcasa + ``` +*CloudCasa is a trademark of Catalogic Software Inc.* diff --git a/charts/v3.4.3/templates/NOTES.txt b/charts/v3.4.3/templates/NOTES.txt new file mode 100644 index 0000000..087f3e4 --- /dev/null +++ b/charts/v3.4.3/templates/NOTES.txt @@ -0,0 +1,10 @@ +Please be patient while the CloudCasa agent is being deployed. It may take several minutes. + +The agent is configured with cluster ID: {{ .Values.cluster_id }} + +Once the agent completes startup, the state shown for the cluster in the CloudCasa Clusters/Overview +page (https://home.cloudcasa.io/clusters/overview) will change to "Active". +If the cluster stays in the "Registered" or "Pending" state, you may have provided the wrong ClusterID. + +You can check the agent deployment status using the command: kubectl get pods -n cloudcasa-io + diff --git a/charts/v3.4.3/templates/cluster-register.yaml b/charts/v3.4.3/templates/cluster-register.yaml new file mode 100644 index 0000000..b98dc31 --- /dev/null +++ b/charts/v3.4.3/templates/cluster-register.yaml @@ -0,0 +1,95 @@ +--- +# This list contains the CloudCasa Agent Manager and RBAC resources +# required to deploy the Cloudcasa agent. +apiVersion: v1 +kind: List +metadata: + name: cloudcasa-agent +items: +{{- if not (lookup "v1" "Namespace" "cloudcasa-io" "cloudcasa-io") }} +- apiVersion: v1 + kind: Namespace + metadata: + creationTimestamp: null + labels: + component: kubeagent-backup-helper + name: cloudcasa-io + spec: {} +{{- end }} +- apiVersion: v1 + kind: ServiceAccount + metadata: + creationTimestamp: null + labels: + component: kubeagent-backup-helper + name: cloudcasa-io + namespace: cloudcasa-io +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + creationTimestamp: null + labels: + component: kubeagent-backup-helper + name: cloudcasa-io + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin + subjects: + - kind: ServiceAccount + name: cloudcasa-io + namespace: cloudcasa-io +- apiVersion: apps/v1 + kind: Deployment + metadata: + name: cloudcasa-kubeagent-manager + namespace: cloudcasa-io + labels: + component: cloudcasa-kubeagent-manager + spec: + selector: + matchLabels: + app: cloudcasa-kubeagent-manager + strategy: + type: Recreate + replicas: 1 + template: + metadata: + labels: + app: cloudcasa-kubeagent-manager + spec: + containers: + - image: registry.connect.redhat.com/catalogicsoftware/cloudcasa-amds-kagent:3.5.7 + args: ["/usr/local/bin/kubeagentmanager", "--server_addr", "agent.cloudcasa.io:443", "--tls", "true"] + name: kubeagentmanager + resources: + requests: + memory: "64Mi" + cpu: "250m" + limits: + memory: "128Mi" + cpu: "500m" + volumeMounts: + - mountPath: /scratch + name: scratch + env: + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: AMDS_CLUSTER_ID + value: {{ .Values.cluster_id }} + - name: KUBEMOVER_IMAGE + value: registry.connect.redhat.com/catalogicsoftware/cloudcasa-amds-kagent:3.5.7 + - name: DEPLOYMENT_PLATFORM + {{ if (lookup "v1" "Namespace" "" "cattle-system") }} + value: "rancher" + {{ else }} + value: "helm" + {{ end }} + restartPolicy: Always + terminationGracePeriodSeconds: 0 + serviceAccountName: cloudcasa-io + volumes: + - emptyDir: {} + name: scratch diff --git a/charts/v3.4.3/templates/tests/test-agent.yaml b/charts/v3.4.3/templates/tests/test-agent.yaml new file mode 100644 index 0000000..8eb4163 --- /dev/null +++ b/charts/v3.4.3/templates/tests/test-agent.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "cloudcasa-test-agent" + namespace: cloudcasa-io + annotations: + "helm.sh/hook": test +spec: + containers: + - name: kubeagentmanager-test + image: registry.connect.redhat.com/catalogicsoftware/cloudcasa-amds-kagent:3.5.7 + command: ["bin/bash", "-c"] + args: + - kubectl get deployment cloudcasa-kubeagent-manager + - -o=jsonpath='{.status.conditions[?(@.type=="Available")].status}' | + - grep -q "True" + serviceAccountName: cloudcasa-io + restartPolicy: Never diff --git a/charts/v3.4.3/values.schema.json b/charts/v3.4.3/values.schema.json new file mode 100644 index 0000000..fd6e54b --- /dev/null +++ b/charts/v3.4.3/values.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema#", + "properties": { + "cluster_id": { + "description": "Cluster ID", + "type": "string" + } + }, + "title": "Values", + "type": "object" +} diff --git a/charts/v3.4.3/values.yaml b/charts/v3.4.3/values.yaml new file mode 100644 index 0000000..efeb3e8 --- /dev/null +++ b/charts/v3.4.3/values.yaml @@ -0,0 +1,2 @@ +## CloudCasa Cluster ID. To be provided by the user. +cluster_id: ""