How to deploy appsmith via yaml in k8s? - kubernetes

Any example appsmith yaml for deploying appsmith since I don't want use helm in prod environment?

There's no official direct YAML files for deploying Appsmith on Kubernetes today. The Helm chart at helm.appsmith.com, and as documented at https://docs.appsmith.com/getting-started/setup/installation-guides/kubernetes, is the recommended way to install Appsmith on your cluster.
Asking as an engineering team member with Appsmith, can you elaborate a little on why avoid Helm for production please?

Related

Migrate Kubernetes manifests to Helm charts

I'm currently deploying k8s using manifests and kubectl command.
Is there any automated way to convert these manifests to Helm charts?
If not, can you please give me a template or examples to follow in order to do this migration manually?
Thank you.
I tried helmify CLI but I was unable to install it.

How does ArgoCD sync/update a updated helm chart under the hood?

our team right now is using helm chart to deploy services to k8s cluster, and ArgoCD to sync the helm chart modification to k8s cluster.
My question is that, when ArgoCD performs a helm chart sync, what action does it do under the hood? does it use the command "helm upgrade" to do it? or else?
Thanks
Argo does not perform a helm install or helm upgrade of sorts; it is more closely related to a helm template <cmd+opts> | kubectl apply -f -.
I think you should look into the concept of GitOps.
Argo CD is responsible for pulling updated code from Git repositories
and deploying it directly to Kubernetes resources.
(quoted from https://codefresh.io/learn/argo-cd/)
I think best way is to package the chart into a CR instances in your env and then give argocd credentials to access the charts
The trick is how would you give argocd credentials and also if you have multiple charts how do sync all in one go

How can I use Gitlab's Container Registry for Helm Charts with ArgoCDs CI/CD Mechanism?

My situation is as follows:
have a kubernetes cluster with a couple of nodes
have argocd installed on the cluster and working great
using gitlab for my repo and build pipelines
have another repo for storing my helm charts
have docker images being built in gitlab and pushed to my gitlab registry
have argocd able to point to my helm chart repo and sync the helm chart with my k8s cluster
have helm chart archive files pushed to my gitlab repo
While this is a decent setup, it's not ideal.
The first problem i faced with using a helm chart git repo is that I can't (or don't know) how to differentiate my staging environment with my production environment. Since I have a dev environment and prod environment in my cluster, argocd syncs both environments with the helm chart repo. I could get around this with separate charts for each environment but that isn't a valid solution.
The second problem i faced, while trying to get around the above problem, is that I can't get argocd to pull helm charts from a gitlab oci registry. I made it so that my build pipeline pushed the helm chart archive file to my gitlab container registry with the tag dev-latest or prod-latest, which is great, just what I want. The problem is that argocd, as far as I can tell, can't pull from gitlab's container registry.
How do I go about getting my pipeline automated with gitlab as my repo and build pipeline, helm for packaging my application, and argocd for syncing my helm application with my k8s cluster?
is that I can't get argocd to pull helm charts from a gitlab oci registry.
You might be interested by the latest Jul. 2021 GitLab 14.1:
Build, publish, and share Helm charts
Helm defines a chart as a Helm package that contains all of the resource definitions necessary to run an application, tool, or service inside of a Kubernetes cluster.
For organizations that create and manage their own Helm charts, it’s important to have a central repository to collect and share them.
GitLab already supports a variety of other package manager formats.
Why not also support Helm? That’s what community member and MVP from the 14.0 milestone Mathieu Parent asked several months ago before breaking ground on the new GitLab Helm chart registry. The collaboration between the community and GitLab is part of our dual flywheel strategy and one of the reasons I love working at GitLab. Chapeau Mathieu!
Now you can use your GitLab project to publish and share packaged Helm charts.
Simply add your project as a remote, authenticating with a personal access, deploy, or CI/CD job token.
Once that’s done you can use the Helm client or GitLab CI/CD to manage your Helm charts.
You can also download the charts using the API or the user interface.
What’s next? First, we’d like to present additional metadata for charts.
Then we’ll start dogfooding the feature by using it as a replacement for https://charts.gitlab.io/.
So, try out the feature and let us know how it goes by commenting in the epic GitLab-#6366.
See Documentation and issue.

Does K0s support Helm v.3?

I am trying to use helm charts with k0s.
Having my own helm-charts app, I would like to create a local repo. But I cannot use the serve command since I am using version: 3.5.4 and the serve command had been ditched for security concerns.
I am not sure now how to create a local repo ? and where can I find tutorials or examples ?
Also, how to deploy my chart in k0s cluster ?
I would try to use ChartMuseum instead. You can follow the docs to create a local filesystem chart.
You simply deploy the same way as with helm v2. Make sure you add the chart repo and you have kubectl configured to point to the cluster that you want to talk to so that ~/.kube/config has the right configuration.
Yes it does, you can also utilize k8slens.dev to easily deploy helm charts to your Kubernetes clusters. Regardless of the distro..

How to clone a kubernetes deployment?

I need to clone my deployment including the volume. I couldn't find any resources on this question except about cloning volume using CSI driver as explained in this https://kubernetes-csi.github.io/docs/volume-cloning.html#overview
Is there a way to clone a deployment other than renaming the deployment and deploying it again through the kubectl?
Is there a way to clone a deployment other than renaming the
deployment and deploying it again through the kubectl?
Unfortunately no. At the time of this writing there is no such a tool that will allow to clone your deployment. So you will have to use the option already mentioned in the question or deploy that using helm chart.
With helm your can pass custom parameters such as --generate-name or edit values.yaml content to quickly deploy similar deployment.
Worth mentioning here is also Velero. A tool for backing up kubernetes resources and persistent volumes.