I am new to devops and I am wondering, what's the best way to use GKE, Terraform and Gitlab repository for CI/CD. Right now, there are sets of commands used with flux, cert manager, but it's not automated. What are the best practice, tools and whole scheme be used like? Thanks for the answers.
Best way to use Gitlab, Terraform, Flux and GKE in gitops principle
382 Views Asked by Jozef Vrana At
1
There are 1 best solutions below
Related Questions in GOOGLE-CLOUD-PLATFORM
- Google Logging API - What service name to use when writing entries from non-Google application?
- Custom exception message from google endpoints exception
- Unable to connect database of lamp instance from servlet running on tomcat instance of google cloud
- How to launch a Jar file using Spark on hadoop
- Google Cloud Bigtable Durability/Availability Guarantees
- How do I add a startup script to an existing VM from the developer console?
- What is the difference between an Instance and an Instance group
- How do i change files using ftp in google cloud?
- How to update all machines in an instance group on Google Cloud Platform?
- Setting up freeswitch server on Google cloud compute
- Google Cloud Endpoints: verifyToken: Signature length not correct
- Google Cloud BigTable connection setup time
- How GCE HTTP Cross-Region Load Balancing implemented
- Google Cloud Bigtable compression
- Google cloud SDK code to execute via cron
Related Questions in GITLAB
- I can push but not pull git
- Git first pull and push to master issue
- Can you create a project on GitLab using ssh?
- Adding A Certificate Authority in GitLab?
- GitLab shows deleted branches
- Files deleted with git filter-branch reappear after push and pull back
- Gitlab LDAP (Active Directory) Authentication without Server Side Access
- Cannot upgrade gitlab from 7.9.4
- GIT - Split working space by user (designer vs programmer)
- git diff not working on a bare repo, post-receive hook
- gitlab: Windows: How to use chmod and fix "Get Permission denied (publickey). fatal: Could not read from remote repository"
- git pull returns, fatal: protocol error: bad line length character: No s
- Custom post-receive hook with gitlab
- Installing GitLab CI Runner on Raspberry Pi 2 (Raspbian)
- From development to deployment with Git
Related Questions in TERRAFORM
- Terraform: associate an aws_iam_role with an aws_iam_policy
- How to change the subnet association from one route table to another route table using terraform?
- How to avoid the destroy action in terraform apply?
- Is there a way to create EMR security config with CloudFormation/Terraform
- Referring to variables in another terraform file you can't modify
- EC2 instances launched via Terraform do not pass the status checks or have insufficient data
- Recreate Same Security Group Rule Each time I execute "terrafrom apply/plan"
- Trouble setting terraform variable from CLI
- Terraform -var-file not working for file present in the same directory
- How to get the most recent ebs snapshot using terraform datasource?
- protocol Tcp with floatingIP disabled, must not be used with the same backend IP
- Shell script producing the escaping character (\) with escaped double qoutes
- vpc_zone_identifier should be a list
- Building a custom terraform provider errors out
- Create AWS RDS instance in non default VPC using terraform
Related Questions in GITOPS
- Logic behind ArgoCD sync of Application
- How do you rename a GitLab managed Terraform state file without destroying existing infrastructure?
- Failed to get existing workspaces: containers.Client#ListBlobs: Code="ContainerNotFound"
- Argocd - Brand new cluster and brand new error - ooohooo
- ArgoCD ignoreDifferences not working for openshift machinesets with kyverno mutation
- GitOps and Liquibase
- How to manage keycloak using gitops for multiple environment
- How to create yaml manifests from apache camel-k?
- How do I set ISTIO VirtualService host using configMap value WITHOUT helm
- How do I lookup configMap values to build k8s manifest using ArgoCD
- Istio canary updates using yaml files
- How to add a external cluster for deployment from ArgoCD CLI
- How to secure the environment repo in a GitOps setup?
- ArgoCD sync waves between apps
- ArgoCD tracking subdirectories in a specified path
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In my previous project we've tried quite a few approaches and in the end realised that deployment with Octopus Deploy was the best fit, though partly cause it was used wider across the company, but for deployment with terraform it was also quite good. The main benefit was having the concept of tenants which correspond to each client (in particular Google Cloud project) and for a tenant you can set plenty of variables which mostly going to be used by terraform. Depending on the list of variables having configured each tenant can be a quite tedious task but I guess it's only at the first setup. Then it's much quicker to update it and run actual deployment.
We've also tried GitOps as in having repo per client (GCP project) with those variables and in our deployment scripts just pulling those repos and it's good as well cause it brings all benefits of having specification in source code as in logging and being single source of truth. The main disadvantage though was on any change there merge request should have been opened and it could take quite a while. If in your case it's not neccessary and the pipeline running on the changes to such specs repos is not so long then you can try it, why not.
Another thing you can try is to put variables into Gitlab variables, but it also depends on number of environments you've got, if it's going to keep growing (assuming it is) it probably not a good idea as there's no much visibility over changes and it can be hard to keep track of all those variables.