Hot answers tagged

8

The .gitmodules file just records the path and remote URL to the submodule repository. The commit itself is stored in the tree object. You can query it like this: git ls-tree <ref> <path> where <ref> is a reference to some commit (e.g. HEAD, master, a commit SHA sum) and <path> is a path to a submodule. The output looks something ...


4

Try LFTP that has commands to mirror or parallel copy. LFTP can run over many protocols. The likely problem you have is that you are transfering a lot of data from a build service to a single vm over the Internet. Enterprises use the same tools and protocols but they pay for more bandwidth else ensure that their builds and deploy happens within the same ...


4

I'm not altogether sure if there actually is a problem you're trying to solve, or whether you are looking for confirmation that you are on the right track. Some thoughts: Internally openshift should be able to allocate dedicated pods Sure. Add a post-build step in your CI pipeline which does the following: Fashion a .yaml or .json description of that ...


3

It may be helpful to look at the different AWS developer services as you are trying to achieve your goal in the wrong services: Running the specific dotnet testing and publish steps are not done in CodeDeploy. Rather, they would be done in AWS CodeBuild, in the AWS Pipeline, or directly on your Jenkins Server. AWS CodeDeploy is for taking your build ...


3

It might not be obvious now, but usually as projects advance full regression costs (resources/time) grow much faster than static analysis ones. You'll also find that static analysis alone isn't a sufficiently solid bug gate, it must be complemented with regression testing as well. So I'd place the full regression after the static analysis in the CI/CD ...


3

The things that would be backed up would be the config files of the servers, the database and uploaded content as these will almost always be unique and necessary. The containers, VMs, even the webapps would NOT be backed up as these should all be uniform and constantly updated under the CI/CD principles. Currently I use a combination of scp and tar into an ...


3

Personally I'd keep them in separate repositories, for clear customer isolation: minimal/no risk of unwanted interference between customers different access control for different customers is possible different CI/CD pipelines and/or configs for different customers is possible simpler/standard CI/CD configurations clean per-customer repository history ...


3

Conflating deployment environments and branches often leads to problems like you describe. It does seem like a natural fit though and easily maps to mental model of an ideal solution but, real life is anything but ideal. Basically, git is not a deployment tool, one should not clone to deploy a version but fetch a package (a tarball, zip file, docker ...


3

There are different strategies and, depending on your specific problem domain, you need to decide what makes sense for you. For server side applications, especially micro services, you typically don't need release branches. You can work with pull requests, but once they hit master, it is common to deploy (from master) and never look back. Managing release ...


3

App repo's CI commits into Configuration repo with newly built image tags. Yes, this makes sense. Instead of using image tags you can use image digest, since the digest is generated from content, it is immutable, while tags may be updated (intentionally or unintentionally). This manifest update can be done with multiple tools: Using yq yq write \ --...


3

Q: "Check if all items are own by root." A: Put the list of the tools into the variable audit_tools. Compare the length of the lists. For example - hosts: localhost vars: audit_tools: - auditctl - aureport - ausearch - autrace - auditd - audispd - augenrules tasks: - block: - stat: ...


2

From spinnaker own documentation Rosco is the bakery. It is used to produce machine images (e.g. GCE images, AWS AMIs, Azure VM images). It presently wraps packer, but will shortly be expanded to support additional mechanisms for producing images. So yes, rosco uses HashiCorp's packer. The main reason to use packer is that you just need to change ...


2

You can use the rich jira rest API for this kind of automation work. Jira API provides mechanism to update logged hours using PUT /rest/api/2/issue/{issueIdOrKey}/worklog/{id} You can use this rest API endpoint to update the corresponding issue with the difference of first commit timestamp and first successful CD. Find more about it here.


2

Both are excellent tools, but it depends on your use cases for which is better. I would highly recommend using the entire AWS Ci/Cd suite (CodeBuild/CodePipeline/CodeDeploy) to gain the full benefit of using your resources in AWS. Here are pros for both: Jenkins Multitude of customizability plugins Integration with all cloud providers (GCP, Azure, etc.) ...


2

docker-compose up will remove containers when: The service name is the same, but has a change, in which case the old container is replaced with the new state of the service You include the --remove-orphans option when running docker-compose Otherwise, if you change the name of the service, and do not specify --remove-orphans, you will see "orphaned" ...


2

If your question is can Jenkins deploy to machine B then the answer is absolutely! Jenkins provides documentation on deployments here, and has an example of a multibranch pipeline deployment here. If you want machine B to deploy to a different computer (e.g. machine C) then you can do this by configuring machine B to be an "agent", and following the ...


2

It looks like that the docker login and the docker build were done by different users. If a docker login is performed, then a ~/.docker directory will be created in the namespace of user X, if the build is done by user Y then the latter user does not have a .docker folder and is not authorized to pull the image. One could verify this by echo $USER in the ...


2

My general experience is that CI/CD tools don't support impersonation or claims based authentication well or at-all. In addition you probably want the CI/CD tool to have more access than your users, because you want them to only use the CI/CD tool to change things. The way I have handled this in the past, however, was as follows: Have the pipeline call ...


2

Most CI/CD tooling will support permissions of some sort. For example: All of AWS CI/CD tooling supports limiting permissions via IAM. IAM also ties into AD which would give you that SSO (single sign on) feel. Virtually every major cloud provider will have equivalent permission based functionality (e.g. Azure, Google Cloud). Bamboo supports limiting who ...


2

The error message you have provided indicates that this is a problem with the configuration that could be permission related. Here are some steps to help resolve this issue: You can follow guides where other people have configured the two. Pay special attention to the permission settings that are selected. Double check your permissions on the servers. ...


2

The two approaches whilst somewhat overlapping solve two different problems: Feature flags allow you to decouple the action of deployment from the action of release. i.e. you can push a change to an API that adds functionality to support a new feature, then when your product owner wants to release it all they need to do is toggle the feature on. API ...


2

Update for anyone else who runs into this issue, when Spinnaker is installed using helm it's using an older version of the Halyard container which doesn't have the AWS CLI tool. This seems to be hard to resolve as just updating the values file for helm to the latest version doesn't seem to work and I didn't dig much into the specifics as didn't want to go ...


2

These are really the pitfalls as running a VM or traditional server with 32 bit CPUs. Most notably is memory addressing. 32 bit CPUs can only access up to 4 gigs of memory. This isn't something i would expect most containers have an issue with as they should be single, small, light applications. One thing that you might run into is any binary built ...


2

I don't know of any current plugins for doing this. That may because a lot of backup functionality is built into MSSQL. The easiest way to automate a backup via Jenkins may be to use a command line script to use a sql command: Sqlcmd -E -S touch -Q" BACKUP DATABASE [DBName] TO DISK = 'C:\artifact_directory\my_db_backup.BAK' You could also also avoid ...


2

One possible answer could come from the reason for using multiple branches as basis for environments in the first place. In some organisations (typically for large scale projects and often for historical reasons) it is desired to allow for cherry-picking hot fixes in each environment to limit the amount of changes (thus the risk) picked up in each iteration ...


2

Going from this, your ClusterRole isn't configured to allow access to deployments, and the ClusterRole you've listed isn't properly bound to your service account. You could configure it with something like I did below as a troubleshooting measure/to make sure you're able to properly configure permissions and rule out an issue with the serviceaccount's role ...


2

You have all the necessary tools for the 2 use cases you mentioned. For application development, it looks like you have something already set up. I'm assuming, for time's sake, you have automated both code quality and security scanning of your application and that is all working. If you haven't already started packaging your applications into helm to ...


2

Approach you are describing - where app version is substituted at helm upgrade command - is pretty popular as well. Maybe it's not well documented - I'm not sure about that. Yet another approach that people use is doing helm template which would compile everything (including variable resolution) into fixed k8s definitions and then doing GitOps on that. ...


2

So, I actually ended up with the following strategy. I separated the charts from the source code. Basically, I have a repository that tracks all the helm charts only Why? I wanted to have a repository representing my cluster(s) so it's easy to rebuild a cluster from it I also wanted to keep track of the current version deployed. Basically, this repository ...


2

My approach nowadays, always package your build process into Dockerfile. I.e. here is Dockerfile for one of my open-sourced Go projects: https://github.com/relizaio/relizaGoClient/blob/master/Dockerfile Note: if you're using go modules (which seems to be the case), replace RUN go get -d -v ./... with RUN go mod download in the build-stage. BTW, missing go ...


Only top voted, non community-wiki answers of a minimum length are eligible