From ba0f4edceb439ed391ab77e3eaa70690eb5f8725 Mon Sep 17 00:00:00 2001 From: Bob A Date: Wed, 13 Mar 2024 21:02:25 -0400 Subject: [PATCH] Add new v3.4.2 Helm chart (#19) * Remove build number from amds-kagent tag * Update appVersion field in chart * Change required k8s version to 1.20 * Update README and NOTES files * Remove unneeded Rancher-specific files * Remove uninstall comments from manifest file * Remove Rancher-specific instructions from base README file * Remove keep annotation on namespace in manifest * Fix linter warnings --- charts/v3.4.2/Chart.yaml | 18 ++++ charts/v3.4.2/README.md | 52 ++++++++++ charts/v3.4.2/templates/NOTES.txt | 10 ++ charts/v3.4.2/templates/cluster-register.yaml | 99 +++++++++++++++++++ charts/v3.4.2/values.yaml | 4 + 5 files changed, 183 insertions(+) create mode 100644 charts/v3.4.2/Chart.yaml create mode 100644 charts/v3.4.2/README.md create mode 100644 charts/v3.4.2/templates/NOTES.txt create mode 100644 charts/v3.4.2/templates/cluster-register.yaml create mode 100644 charts/v3.4.2/values.yaml diff --git a/charts/v3.4.2/Chart.yaml b/charts/v3.4.2/Chart.yaml new file mode 100644 index 0000000..13d276e --- /dev/null +++ b/charts/v3.4.2/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: cloudcasa +version: "3.4.2" +appVersion: "3.1.0" +kubeVersion: ">=1.20.0-0" +description: CloudCasa backup service for Kubernetes and cloud-native applications. Offering CloudCasa Pro and CloudCasa Velero management services. +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.2/README.md b/charts/v3.4.2/README.md new file mode 100644 index 0000000..fca4c6f --- /dev/null +++ b/charts/v3.4.2/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 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.2/templates/NOTES.txt b/charts/v3.4.2/templates/NOTES.txt new file mode 100644 index 0000000..087f3e4 --- /dev/null +++ b/charts/v3.4.2/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.2/templates/cluster-register.yaml b/charts/v3.4.2/templates/cluster-register.yaml new file mode 100644 index 0000000..d877056 --- /dev/null +++ b/charts/v3.4.2/templates/cluster-register.yaml @@ -0,0 +1,99 @@ +--- +# 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: catalogicsoftware/amds-kagent:3.1.0-prod + 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: catalogicsoftware/amds-kagent:3.1.0-prod + - name: DEPLOYMENT_PLATFORM + {{ if (lookup "v1" "Namespace" "" "cattle-system") }} + value: "rancher" + {{ else if (lookup "v1" "Namespace" "" "nirmata") }} + value: "nirmata" + {{ else if (lookup "v1" "Namespace" "" "rafay-system") }} + value: "rafay" + {{ else }} + value: "helm" + {{ end }} + restartPolicy: Always + terminationGracePeriodSeconds: 0 + serviceAccountName: cloudcasa-io + volumes: + - emptyDir: {} + name: scratch diff --git a/charts/v3.4.2/values.yaml b/charts/v3.4.2/values.yaml new file mode 100644 index 0000000..f0295c5 --- /dev/null +++ b/charts/v3.4.2/values.yaml @@ -0,0 +1,4 @@ +## Please note that this will override the parameters, including dependencies, configured to use the global value. + +## CloudCasa Cluster ID. To be provided by the user. +cluster_id: ""