From 30daa39a7ef9e0ac8d550d984564638a69f4e907 Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 10:43:10 +0200 Subject: [PATCH 001/282] added manual step description --- incubator/manual-step/README.md | 7 +++++++ incubator/manual-step/plugin.yaml | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 incubator/manual-step/README.md create mode 100644 incubator/manual-step/plugin.yaml diff --git a/incubator/manual-step/README.md b/incubator/manual-step/README.md new file mode 100644 index 00000000..4da1aa2c --- /dev/null +++ b/incubator/manual-step/README.md @@ -0,0 +1,7 @@ +# Import Docker Images Codefresh Plugin + +Pause execution till user connect to exposed URL and submit Form with required details + +## Environment Variables + +- `APPROVAL_URL`: url of manual approval form \ No newline at end of file diff --git a/incubator/manual-step/plugin.yaml b/incubator/manual-step/plugin.yaml new file mode 100644 index 00000000..deb3e5c4 --- /dev/null +++ b/incubator/manual-step/plugin.yaml @@ -0,0 +1,18 @@ +image: codefresh/manual-step +tag: master +version: 0.1.0 +description: Pause execution till user connect to exposed URL and submit Form with required details +keywords: + - docker + - manual +home: https://github.com/jennyps/cf-manual-step +sources: + - https://github.com/jennyps/cf-manual-step +maintainers: # (optional) + - name: Jenny Passi + email: jenny@codefresh.io +icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg +envs: + - name: APPROVAL_URL + type: required + description: url of manual approval form \ No newline at end of file From 427f648350db59c0fa302afb4bcc02c3490eb386 Mon Sep 17 00:00:00 2001 From: Eugene Semirski Date: Mon, 27 Nov 2017 13:14:41 +0200 Subject: [PATCH 002/282] dcos-app-deploy initial commit --- dcos-app-deploy/LICENSE | 0 dcos-app-deploy/NOTES.md | 0 dcos-app-deploy/README.md | 1 + dcos-app-deploy/plugin.yaml | 0 4 files changed, 1 insertion(+) create mode 100644 dcos-app-deploy/LICENSE create mode 100644 dcos-app-deploy/NOTES.md create mode 100644 dcos-app-deploy/README.md create mode 100644 dcos-app-deploy/plugin.yaml diff --git a/dcos-app-deploy/LICENSE b/dcos-app-deploy/LICENSE new file mode 100644 index 00000000..e69de29b diff --git a/dcos-app-deploy/NOTES.md b/dcos-app-deploy/NOTES.md new file mode 100644 index 00000000..e69de29b diff --git a/dcos-app-deploy/README.md b/dcos-app-deploy/README.md new file mode 100644 index 00000000..04fadfcf --- /dev/null +++ b/dcos-app-deploy/README.md @@ -0,0 +1 @@ +##dcos-app-deploy diff --git a/dcos-app-deploy/plugin.yaml b/dcos-app-deploy/plugin.yaml new file mode 100644 index 00000000..e69de29b From ce61e629e1054435d14880170ca3e315515a1a7a Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 13:26:29 +0200 Subject: [PATCH 003/282] add boilerpalte --- stable/send-slack-message/README.md | 19 +++++++++++++++++++ stable/send-slack-message/plugin.yaml | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 stable/send-slack-message/README.md create mode 100644 stable/send-slack-message/plugin.yaml diff --git a/stable/send-slack-message/README.md b/stable/send-slack-message/README.md new file mode 100644 index 00000000..84bd3f8e --- /dev/null +++ b/stable/send-slack-message/README.md @@ -0,0 +1,19 @@ +image: codefresh/plugin-publish-helm-chart +tag: 0.0.1 +version: 0.1.0 +description: Send message to slack channel +keywords: + - slack +home: https://github.com/codefresh-io/slack-message-sender +sources: + - https://github.com/codefresh-io/slack-message-sender +maintainers: # (optional) + - name: Oleg Sucharevich + email: olegs@codefresh.io +icon: https://upload.wikimedia.org/wikipedia/commons/7/76/Slack_Icon.png +envs: + - name: WEBHOOK_URL + type: required + description: Url to the channel + - name: DEBUG + description: print verbose install output \ No newline at end of file diff --git a/stable/send-slack-message/plugin.yaml b/stable/send-slack-message/plugin.yaml new file mode 100644 index 00000000..b6daec54 --- /dev/null +++ b/stable/send-slack-message/plugin.yaml @@ -0,0 +1,26 @@ +# Codefresh Helm Plugin + +Use Codefresh Slack plugin to send a message to a channel. + +## Usage + + +```yaml +--- +version: '1.0' + +steps: + + ... + + publish_to_repo: + image: codefresh/slack-message-sender + + ... + +``` + +## Environment Variables + +- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://gophers.slack.com/apps/new/A0F7XDUAZ-incoming-webhooks) +- `DEBUG` - print verbose output \ No newline at end of file From bc8a723b3b3551382e1aac99a1164e7f0188bb00 Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 13:27:47 +0200 Subject: [PATCH 004/282] fix typo --- stable/send-slack-message/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stable/send-slack-message/README.md b/stable/send-slack-message/README.md index 84bd3f8e..32e75bdb 100644 --- a/stable/send-slack-message/README.md +++ b/stable/send-slack-message/README.md @@ -1,5 +1,4 @@ -image: codefresh/plugin-publish-helm-chart -tag: 0.0.1 +image: codefresh/slack-message-sender version: 0.1.0 description: Send message to slack channel keywords: From c4ee851104bcd30346b7f7706b2c8bb517b29b0a Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 13:29:59 +0200 Subject: [PATCH 005/282] update catalog --- CATALOG.md | 1 + stable/{send-slack-message => slack}/README.md | 0 stable/{send-slack-message => slack}/plugin.yaml | 0 3 files changed, 1 insertion(+) rename stable/{send-slack-message => slack}/README.md (100%) rename stable/{send-slack-message => slack}/plugin.yaml (100%) diff --git a/CATALOG.md b/CATALOG.md index 2e37544d..1104fdbb 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -5,6 +5,7 @@ | Plugin | Description | Tags | | ------------------------------------ | ------------------- | ------------------- | | [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` | ## Incubator Plugins diff --git a/stable/send-slack-message/README.md b/stable/slack/README.md similarity index 100% rename from stable/send-slack-message/README.md rename to stable/slack/README.md diff --git a/stable/send-slack-message/plugin.yaml b/stable/slack/plugin.yaml similarity index 100% rename from stable/send-slack-message/plugin.yaml rename to stable/slack/plugin.yaml From d5c5441acab794b9d17ba8a02ab2c7741078c46b Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 13:31:34 +0200 Subject: [PATCH 006/282] add notes --- stable/slack/NOTES.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 stable/slack/NOTES.md diff --git a/stable/slack/NOTES.md b/stable/slack/NOTES.md new file mode 100644 index 00000000..842a96bc --- /dev/null +++ b/stable/slack/NOTES.md @@ -0,0 +1 @@ +## Notes \ No newline at end of file From d6a28e64d3821709a081e6c197848c211934334c Mon Sep 17 00:00:00 2001 From: Eugene Semirski Date: Mon, 27 Nov 2017 13:31:57 +0200 Subject: [PATCH 007/282] plugin.yaml modified --- dcos-app-deploy/plugin.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dcos-app-deploy/plugin.yaml b/dcos-app-deploy/plugin.yaml index e69de29b..f83243a0 100644 --- a/dcos-app-deploy/plugin.yaml +++ b/dcos-app-deploy/plugin.yaml @@ -0,0 +1,18 @@ +tag: 0.0.1 +version: 0.1.0 +description: Deploy an application on dcos cluster +keywords: + - dcos + - deploy + - deployment + +home: https://github.com/codefresh-io/cf-deploy-dcos + +sources: + + - https://github.com/codefresh-io/cf-deploy-dcos + +maintainers: # (optional) + + - name: Eugene Semirski + + email: eugene@codefresh.io + +icon: https://avatars0.githubusercontent.com/u/29493517?v=4&s=400 + +envs: + + - name: ENV_NAME + + type: required + + description: Some description From 280d0200800c6fa92874db6601626e710916e0e7 Mon Sep 17 00:00:00 2001 From: nick-sakovich Date: Mon, 27 Nov 2017 14:36:27 +0300 Subject: [PATCH 008/282] added github pr plugin --- incubator/github-pr/README.MD | 10 ++++++++++ incubator/github-pr/plugin.yaml | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 incubator/github-pr/README.MD create mode 100644 incubator/github-pr/plugin.yaml diff --git a/incubator/github-pr/README.MD b/incubator/github-pr/README.MD new file mode 100644 index 00000000..c3614e3d --- /dev/null +++ b/incubator/github-pr/README.MD @@ -0,0 +1,10 @@ +# GitHub Pull Request Codefresh Plugin + +Creates a new pull request in GitHub + +## Environment Variables + +- `GITHUB_TOKEN`: token for access to GitHub +- `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch +- `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. +- `TITLE`: The title of the pull request diff --git a/incubator/github-pr/plugin.yaml b/incubator/github-pr/plugin.yaml new file mode 100644 index 00000000..b4fc8d5a --- /dev/null +++ b/incubator/github-pr/plugin.yaml @@ -0,0 +1,28 @@ +image: codefresh/github-pull-request +tag: master +version: 0.1.0 +description: Creates GitHub pull request +keywords: + - docker + - github + - pull-request +home: https://github.com/codefresh-io/cf-github-pull-request +sources: + - https://github.com/codefresh-io/cf-github-pull-request +maintainers: # (optional) + - name: Nick Sakovich + email: nick.sakovich@codefresh.io +icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png +envs: + - name: GITHUB_TOKEN + type: required + description: Token for access to GitHub + - name: HEAD + type: required + description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch + - name: BASE + type: required + description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + - name: TITLE + type: required + description: The title of the pull request From 520a22977cde66bb9ab83c51db27d566e0fa27cd Mon Sep 17 00:00:00 2001 From: verchol Date: Mon, 27 Nov 2017 13:37:25 +0200 Subject: [PATCH 009/282] codefresh ecs-deploy plugin --- stable/ecs-deploy/plugin.yaml | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 stable/ecs-deploy/plugin.yaml diff --git a/stable/ecs-deploy/plugin.yaml b/stable/ecs-deploy/plugin.yaml new file mode 100644 index 00000000..ee2c5416 --- /dev/null +++ b/stable/ecs-deploy/plugin.yaml @@ -0,0 +1,36 @@ +image: codefresh/ecs +tag: 2.7.2 +version: 1.1.0 +description: Release a Helm chart (update or install) +keywords: + - ecs + - deploy + - containers +home: https://github.com/codefresh-io/cf-deploy-ecs.git +sources: + - https://github.com/codefresh-io/cf-deploy-ecs.git +maintainers: # (optional) + - name: Oleg Verhovsky + email: oleg@codefresh.io +icon: https://www.metricly.com/wp-content/uploads/2017/07/ECSIcon.png +envs: + - name: AWS_ACCESS_KEY_ID + type: required + description: Amazon access key ID + - name: AWS_SECRET_ACCESS_KEY + type: required + description: amazon secret key (make sure it's encrypted) + - name: aws-region + type: required + description: Helm release name + - name : region + type : required + description : aws region + - name : cluster_name + type : required + description : ecs cluster name + - name : service_name + type : required + description : ecs service name +context: + - kind: Amazon ECS From 69a9b7121c377380e63ceada2fa131c8625b1194 Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 27 Nov 2017 13:44:32 +0200 Subject: [PATCH 010/282] update catalog --- CATALOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CATALOG.md b/CATALOG.md index 2e37544d..69829d41 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -11,3 +11,6 @@ | Plugin | Description | Tags | | ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | | [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| Plugin | Description | Tags | +| ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | +| [Import Docker Images](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` | From 070efe29462a5c9d654dddf71f884ad7086439e0 Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 27 Nov 2017 13:45:11 +0200 Subject: [PATCH 011/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index 69829d41..331a9d82 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -13,4 +13,4 @@ | [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | | Plugin | Description | Tags | | ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | -| [Import Docker Images](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` | From 6f21922114816603ff8f70cae000811c10cb7c5a Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 27 Nov 2017 13:45:43 +0200 Subject: [PATCH 012/282] Update CATALOG.md --- CATALOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index 331a9d82..0d6697ab 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -11,6 +11,4 @@ | Plugin | Description | Tags | | ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | | [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | | [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` | From 42a1e9609ae31511380ca22ff34a5963be7d296a Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 27 Nov 2017 13:50:17 +0200 Subject: [PATCH 013/282] Create README.md --- stable/ecs-deploy/README.md | 114 ++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 stable/ecs-deploy/README.md diff --git a/stable/ecs-deploy/README.md b/stable/ecs-deploy/README.md new file mode 100644 index 00000000..2c9c73cc --- /dev/null +++ b/stable/ecs-deploy/README.md @@ -0,0 +1,114 @@ + +# cf-ecs-deploy +Deployment to Amazon ECS Service + +### Prerequiests +- Configured ECS Cluster with at least one running instance. +- Configured ECS Service and task definition with an image being deployed. + See http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html + +- AWS Credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) with following priviledges: +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "Stmt1479146904000", + "Effect": "Allow", + "Action": [ + "ecs:DescribeServices", + "ecs:DescribeTaskDefinition", + "ecs:DescribeTasks", + "ecs:ListClusters", + "ecs:ListServices", + "ecs:ListTasks", + "ecs:RegisterTaskDefinition", + "ecs:UpdateService" + ], + "Resource": [ + "*" + ] + } + ] +} +``` + +### Deployment with Codefresh +- Add encrypted environment variables for aws credentials. + * AWS_ACCESS_KEY_ID + * AWS_SECRET_ACCESS_KEY +- Add "deploy to ecs" step to codefresh.yml which runs codefresh/cf-deploy-ecs image with command cfecs-update + Specify the aws region, ecs cluster and service names. See `cfecs-update -h` for parameter references + +```yaml +# codefresh.yml example with deploy to ecs step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push to registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + deploy to ecs: + image: codefresh/cf-deploy-ecs + commands: + - cfecs-update + environment: + - AWS_ACCESS_KEY_ID=${{AWS_ACCESS_KEY_ID}} + - AWS_SECRET_ACCESS_KEY=${{AWS_SECRET_ACCESS_KEY}} + + when: + - name: "Execute for 'master' branch" + condition: "'${{CF_BRANCH}}' == 'master'" +``` + + +### Deployment Flow +- get ECS service by specified aws region, ecs cluster and service names +- create new revision from current task definition of the service. If --image-name and --image-tag are provided, replace the tag of the image +- launch update-service with new task definition revision +- wait for deployment to complete (by default, if running withou --no-wait) + * deployment is considered as completed successfully if runningCount == desiredCount for PRIMARY deployment - see `aws ecs describe-service` + * cfecs-update exits with timeout if after --timeout (default = 900s) runningCount != desiredCount script exits with timeout + * cfecs-update exits with error if --max-failed (default = 2) or more ecs tasks were stopped with error for the task definition being deployed. + ECS retries failed tasks continuously + +### Usage with docker + +```bash +docker run --rm -it -e AWS_ACCESS_KEY_ID=**** -e AWS_SECRET_ACCESS_KEY=**** codefresh/cf-ecs-deploy cfecs-update [options] +``` + +### cfecs-update -h +``` +usage: cfecs-update [-h] [-i IMAGE_NAME] [-t IMAGE_TAG] [--wait | --no-wait] + [--timeout TIMEOUT] [--max-failed MAX_FAILED] [--debug] + region_name cluster_name service_name + +Codefresh ECS Deploy + +positional arguments: + region_name AWS Region, ex. us-east-1 + cluster_name ECS Cluster Name + service_name ECS Service Name + +optional arguments: + -h, --help show this help message and exit + --wait Wait for deployment to complete (default) + --no-wait No Wait for deployment to complete + --timeout TIMEOUT deployment wait timeout (default 900s) + --max-failed MAX_FAILED + max failed tasks to consider deployment as failed + (default 2) + --debug show debug messages + + -i IMAGE_NAME, --image-name IMAGE_NAME + Image Name in ECS Task Definition to set new tag + -t IMAGE_TAG, --image-tag IMAGE_TAG + Tag for the image +``` From 6a705641bc3dbed6dffe1ed7e01c87f14a33f52c Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 13:52:14 +0200 Subject: [PATCH 014/282] added readme.md and plugin.yaml draft --- incubator/run-jenkins-jobs/README.md | 7 +++++++ incubator/run-jenkins-jobs/plugin.yaml | 28 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 incubator/run-jenkins-jobs/README.md create mode 100644 incubator/run-jenkins-jobs/plugin.yaml diff --git a/incubator/run-jenkins-jobs/README.md b/incubator/run-jenkins-jobs/README.md new file mode 100644 index 00000000..4da1aa2c --- /dev/null +++ b/incubator/run-jenkins-jobs/README.md @@ -0,0 +1,7 @@ +# Import Docker Images Codefresh Plugin + +Pause execution till user connect to exposed URL and submit Form with required details + +## Environment Variables + +- `APPROVAL_URL`: url of manual approval form \ No newline at end of file diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml new file mode 100644 index 00000000..2e846503 --- /dev/null +++ b/incubator/run-jenkins-jobs/plugin.yaml @@ -0,0 +1,28 @@ +image: codefresh/import-images +tag: master +version: 0.3.0 +description: Import metadata for existing Docker images into Codefresh +keywords: + - docker +home: https://github.com/codefresh-io/cf-import-image +sources: + - https://github.com/codefresh-io/cf-import-image +maintainers: # (optional) + - name: Alexei Ledenev + email: alexei@codefresh.io +icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg +envs: + - name: IMAGES + type: required + description: list of comma separated image names (with tags) + - name: REGISTRY + description: registry DNS name (including port if needed, default to `docker.io`) + - USERNAME`: Docker registry user name (optional) + - name: PASSWORD + description: Docker registry password (optional) + - name: CF_URL + type: required + description: Codefresh URL, for example https://g.codefresh.io + - name: CF_API_TOKEN + type: required + description: Codefresh API Token \ No newline at end of file From f7cf8725d91ed393fda18fc580ef05ebc9ff599d Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 13:54:17 +0200 Subject: [PATCH 015/282] edited readme and description --- incubator/run-jenkins-jobs/README.md | 7 +++-- incubator/run-jenkins-jobs/plugin.yaml | 37 +++++++++++++------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/incubator/run-jenkins-jobs/README.md b/incubator/run-jenkins-jobs/README.md index 4da1aa2c..bdc55986 100644 --- a/incubator/run-jenkins-jobs/README.md +++ b/incubator/run-jenkins-jobs/README.md @@ -1,7 +1,10 @@ # Import Docker Images Codefresh Plugin -Pause execution till user connect to exposed URL and submit Form with required details +Run single or multiple jenkins job from codefresh pipeline ## Environment Variables -- `APPROVAL_URL`: url of manual approval form \ No newline at end of file +- `JENKINS_USERNAME`: jenkins username +- `JENKINS_TOKEN`: token +- `JENKINS_URL`: jenkins machine url +- `JENKINS_JOB_LIST`: list of jenkins jobs to run separated by spaces \ No newline at end of file diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml index 2e846503..b0c358d2 100644 --- a/incubator/run-jenkins-jobs/plugin.yaml +++ b/incubator/run-jenkins-jobs/plugin.yaml @@ -1,28 +1,29 @@ -image: codefresh/import-images +image: codefresh/run-jenkins-jobs tag: master -version: 0.3.0 -description: Import metadata for existing Docker images into Codefresh +version: 0.1.0 +description: Run single or multiple jenkins job from codefresh pipeline keywords: - docker -home: https://github.com/codefresh-io/cf-import-image + - jenkins +home: https://github.com/codefresh-io/cf-run-jenkins-jobs sources: - - https://github.com/codefresh-io/cf-import-image + - https://github.com/codefresh-io/cf-run-jenkins-jobs maintainers: # (optional) - - name: Alexei Ledenev - email: alexei@codefresh.io + - name: Vadim Waisman + email: vadim@codefresh.io +- name: Jenny Passi + email: jenny@codefresh.io icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg envs: - - name: IMAGES + - name: JENKINS_USERNAME type: required - description: list of comma separated image names (with tags) - - name: REGISTRY - description: registry DNS name (including port if needed, default to `docker.io`) - - USERNAME`: Docker registry user name (optional) - - name: PASSWORD - description: Docker registry password (optional) - - name: CF_URL + description: jenkins username + - name: JENKINS_TOKEN type: required - description: Codefresh URL, for example https://g.codefresh.io - - name: CF_API_TOKEN + description: jenkins token + - name: JENKINS_URL type: required - description: Codefresh API Token \ No newline at end of file + description: jenkins machine url + - name: JENKINS_JOBS_LIST + type: required + description: list of jenkins jobs to run separated by spaces \ No newline at end of file From 2efe354a7141c45d1de5bba5008fb7f0587c37b6 Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 13:56:18 +0200 Subject: [PATCH 016/282] edited readme and yaml --- incubator/manual-step/README.md | 2 +- incubator/manual-step/plugin.yaml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/incubator/manual-step/README.md b/incubator/manual-step/README.md index 4da1aa2c..56540c41 100644 --- a/incubator/manual-step/README.md +++ b/incubator/manual-step/README.md @@ -1,6 +1,6 @@ # Import Docker Images Codefresh Plugin -Pause execution till user connect to exposed URL and submit Form with required details +Pause execution until user connect to exposed URL and submit Form with required details ## Environment Variables diff --git a/incubator/manual-step/plugin.yaml b/incubator/manual-step/plugin.yaml index deb3e5c4..50184de8 100644 --- a/incubator/manual-step/plugin.yaml +++ b/incubator/manual-step/plugin.yaml @@ -1,7 +1,7 @@ image: codefresh/manual-step tag: master version: 0.1.0 -description: Pause execution till user connect to exposed URL and submit Form with required details +description: Pause execution until user connect to exposed URL and submit Form with required details keywords: - docker - manual @@ -9,6 +9,8 @@ home: https://github.com/jennyps/cf-manual-step sources: - https://github.com/jennyps/cf-manual-step maintainers: # (optional) + - name: Vadim Waisman + email: vadim@codefresh.io - name: Jenny Passi email: jenny@codefresh.io icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg From 3f0647c3a2145c8de047eeb7e1acf311302be96c Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 13:58:26 +0200 Subject: [PATCH 017/282] update link to slack docs --- stable/slack/README.md | 3 +++ stable/slack/plugin.yaml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/stable/slack/README.md b/stable/slack/README.md index 32e75bdb..25d623d9 100644 --- a/stable/slack/README.md +++ b/stable/slack/README.md @@ -14,5 +14,8 @@ envs: - name: WEBHOOK_URL type: required description: Url to the channel + - name: SLACK_MESSAGE + type: required + description: Message to send - name: DEBUG description: print verbose install output \ No newline at end of file diff --git a/stable/slack/plugin.yaml b/stable/slack/plugin.yaml index b6daec54..e9436f38 100644 --- a/stable/slack/plugin.yaml +++ b/stable/slack/plugin.yaml @@ -22,5 +22,5 @@ steps: ## Environment Variables -- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://gophers.slack.com/apps/new/A0F7XDUAZ-incoming-webhooks) +- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) - `DEBUG` - print verbose output \ No newline at end of file From 717c83862b987f92c3f937abd7012cdc0bc212cc Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 14:00:41 +0200 Subject: [PATCH 018/282] removed manual step --- incubator/manual-step/README.md | 7 ------- incubator/manual-step/plugin.yaml | 20 -------------------- 2 files changed, 27 deletions(-) delete mode 100644 incubator/manual-step/README.md delete mode 100644 incubator/manual-step/plugin.yaml diff --git a/incubator/manual-step/README.md b/incubator/manual-step/README.md deleted file mode 100644 index 56540c41..00000000 --- a/incubator/manual-step/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Import Docker Images Codefresh Plugin - -Pause execution until user connect to exposed URL and submit Form with required details - -## Environment Variables - -- `APPROVAL_URL`: url of manual approval form \ No newline at end of file diff --git a/incubator/manual-step/plugin.yaml b/incubator/manual-step/plugin.yaml deleted file mode 100644 index 50184de8..00000000 --- a/incubator/manual-step/plugin.yaml +++ /dev/null @@ -1,20 +0,0 @@ -image: codefresh/manual-step -tag: master -version: 0.1.0 -description: Pause execution until user connect to exposed URL and submit Form with required details -keywords: - - docker - - manual -home: https://github.com/jennyps/cf-manual-step -sources: - - https://github.com/jennyps/cf-manual-step -maintainers: # (optional) - - name: Vadim Waisman - email: vadim@codefresh.io - - name: Jenny Passi - email: jenny@codefresh.io -icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg -envs: - - name: APPROVAL_URL - type: required - description: url of manual approval form \ No newline at end of file From 0770cf6fa8397ce8c3cb23a9b09a7e504d19d1c6 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 14:11:30 +0200 Subject: [PATCH 019/282] add Kompose plugin --- incubator/kompose/README.md | 45 +++++++++++++++++++++++++++++++++++ incubator/kompose/plugin.yaml | 34 ++++++++++++++++++++++++++ stable/helm/plugin.yaml | 2 +- 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 incubator/kompose/README.md create mode 100644 incubator/kompose/plugin.yaml diff --git a/incubator/kompose/README.md b/incubator/kompose/README.md new file mode 100644 index 00000000..8f7d032c --- /dev/null +++ b/incubator/kompose/README.md @@ -0,0 +1,45 @@ +# Codefresh Kompose Plugin + +Use Codefresh [Kompose](http://kompose.io) plugin to deploy or convert a Docker Compose file into Kubernetes resources. + +## Usage + +Set required and optional environment variable and add the following step to your Codefresh pipeline: + +```yaml +--- +version: '1.0' + +steps: + + ... + + release_to_env: + image: codefresh/plugin-kompose:v1.5.0 + + ... + +``` + +## Environment Variables + +- **required** `KUBE_CONTEXT` - Kubernetes context to use +- `FILE` - Docker Compose file to deploy (default `docker-compose.yaml` file) +- `NAMESPACE` - target Kubernetes namespace (default `default` namespace) +- `REPLICAS` - specify the number of replicas generated (default `1`) +- `VOLUMES` - volumes to be generated (`persistentVolumeClaim`|`emptyDir`) (default `persistentVolumeClaim`) +- `DRY_RUN` - do a "dry run" (print out) deployment (do not install anything, useful for Debug) +- `DEBUG` - print verbose install output + + +## Kubernetes Configuration + +Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. + +## Building Plugin + +Use `docker build` command to build the plugin. +Two build arguments can be provided to override default `kubectl`, `helm` and `kompose` version: + +- `HELM_VERSION` - default to `latest` +- `KOMPOSE_VERSION` - default to `v1.5.0` \ No newline at end of file diff --git a/incubator/kompose/plugin.yaml b/incubator/kompose/plugin.yaml new file mode 100644 index 00000000..ea49cec3 --- /dev/null +++ b/incubator/kompose/plugin.yaml @@ -0,0 +1,34 @@ +image: codefresh/plugin-helm +tag: v1.5.0 +version: 1.0.0 +description: Release a Docker Compose to Kubernetes +keywords: + - docker-compose + - docker + - kompose + - kubernetes +home: https://github.com/codefresh-io/cf-kompose-plugin +sources: + - https://github.com/codefresh-io/cf-kompose-plugin +maintainers: # (optional) + - name: Alexei Ledenev + email: alexei@codefresh.io +icon: http://cdn.rancher.com/wp-content/uploads/2016/04/20182217/compose-300x295.png +envs: + - name: KUBE_CONTEXT + type: required + description: Kubernetes context to use + - name: FILE + description: Docker Compose file to deploy (default "docker-compose.yaml` file) + - name: NAMESPACE + description: target Kubernetes namespace (default "default") + - name: VOLUMES + description: volumes to be generated ("persistentVolumeClaim"|"emptyDir") (default "persistentVolumeClaim") + - name: REPLICAS + description: specify the number of replicas generated (default 1) + - name: DRY_RUN + description: do a "dry run" (print out) deployment (do not install anything, useful for Debug) + - name: DEBUG + description: print verbose install output +context: + - kind: kubernetes diff --git a/stable/helm/plugin.yaml b/stable/helm/plugin.yaml index f95b4c5e..774cea96 100644 --- a/stable/helm/plugin.yaml +++ b/stable/helm/plugin.yaml @@ -13,7 +13,7 @@ maintainers: # (optional) email: alexei@codefresh.io icon: https://avatars0.githubusercontent.com/u/29493517?v=4&s=400 envs: - - name: KUBE_CONTEXT + - name: KUBE_CONTEXT type: required description: Kubernetes context to use - name: CHART_NAME From 5d0d4cc6192325cdf5da74b34a50c1b1dca050b8 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 14:17:35 +0200 Subject: [PATCH 020/282] Update catalog --- CATALOG.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index 1c005907..0e0410e6 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -2,14 +2,15 @@ ## Stable Plugins -| Plugin | Description | Tags | -| ------------------------------------ | ------------------- | ------------------- | -| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | Send message to slack | `slack` | +| Plugin | Description | Tags | +| -------------------------------------------- | -------------------------- | --------------------------------- | +| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | ## Incubator Plugins -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` | +| Plugin | Description | Tags | +| ---------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------- | +| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| [Deploy Komposae](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | From 68b3d681dfccda23a5cacb38958854e647e37314 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 14:18:54 +0200 Subject: [PATCH 021/282] spell error --- CATALOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index 0e0410e6..07568e9e 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -5,12 +5,12 @@ | Plugin | Description | Tags | | -------------------------------------------- | -------------------------- | --------------------------------- | | [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | Send message to slack | `slack` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | | [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | ## Incubator Plugins -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------- | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| [Deploy Komposae](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| Plugin | Description | Tags | +| ---------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | +| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | From 8fca18fe0549a0c6fe90cafca9d7aa4ab77aa887 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 14:27:17 +0200 Subject: [PATCH 022/282] fix naming --- stable/slack/README.md | 47 ++++++++++++++++++++++------------------ stable/slack/plugin.yaml | 47 ++++++++++++++++++---------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/stable/slack/README.md b/stable/slack/README.md index 25d623d9..e9436f38 100644 --- a/stable/slack/README.md +++ b/stable/slack/README.md @@ -1,21 +1,26 @@ -image: codefresh/slack-message-sender -version: 0.1.0 -description: Send message to slack channel -keywords: - - slack -home: https://github.com/codefresh-io/slack-message-sender -sources: - - https://github.com/codefresh-io/slack-message-sender -maintainers: # (optional) - - name: Oleg Sucharevich - email: olegs@codefresh.io -icon: https://upload.wikimedia.org/wikipedia/commons/7/76/Slack_Icon.png -envs: - - name: WEBHOOK_URL - type: required - description: Url to the channel - - name: SLACK_MESSAGE - type: required - description: Message to send - - name: DEBUG - description: print verbose install output \ No newline at end of file +# Codefresh Helm Plugin + +Use Codefresh Slack plugin to send a message to a channel. + +## Usage + + +```yaml +--- +version: '1.0' + +steps: + + ... + + publish_to_repo: + image: codefresh/slack-message-sender + + ... + +``` + +## Environment Variables + +- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) +- `DEBUG` - print verbose output \ No newline at end of file diff --git a/stable/slack/plugin.yaml b/stable/slack/plugin.yaml index e9436f38..25d623d9 100644 --- a/stable/slack/plugin.yaml +++ b/stable/slack/plugin.yaml @@ -1,26 +1,21 @@ -# Codefresh Helm Plugin - -Use Codefresh Slack plugin to send a message to a channel. - -## Usage - - -```yaml ---- -version: '1.0' - -steps: - - ... - - publish_to_repo: - image: codefresh/slack-message-sender - - ... - -``` - -## Environment Variables - -- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) -- `DEBUG` - print verbose output \ No newline at end of file +image: codefresh/slack-message-sender +version: 0.1.0 +description: Send message to slack channel +keywords: + - slack +home: https://github.com/codefresh-io/slack-message-sender +sources: + - https://github.com/codefresh-io/slack-message-sender +maintainers: # (optional) + - name: Oleg Sucharevich + email: olegs@codefresh.io +icon: https://upload.wikimedia.org/wikipedia/commons/7/76/Slack_Icon.png +envs: + - name: WEBHOOK_URL + type: required + description: Url to the channel + - name: SLACK_MESSAGE + type: required + description: Message to send + - name: DEBUG + description: print verbose install output \ No newline at end of file From 9afd45ddd315abc05033aafee14aa2538cf2ba66 Mon Sep 17 00:00:00 2001 From: Itai Gendler Date: Mon, 27 Nov 2017 14:38:19 +0200 Subject: [PATCH 023/282] Add codefresh cli plugin --- .gitignore | 1 + stable/codefresh-cli/NOTES.md | 1 + stable/codefresh-cli/README.md | 31 +++++++++++++++++++++++++++++++ stable/codefresh-cli/plugin.yaml | 12 ++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 .gitignore create mode 100644 stable/codefresh-cli/NOTES.md create mode 100644 stable/codefresh-cli/README.md create mode 100644 stable/codefresh-cli/plugin.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..62c89355 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file diff --git a/stable/codefresh-cli/NOTES.md b/stable/codefresh-cli/NOTES.md new file mode 100644 index 00000000..842a96bc --- /dev/null +++ b/stable/codefresh-cli/NOTES.md @@ -0,0 +1 @@ +## Notes \ No newline at end of file diff --git a/stable/codefresh-cli/README.md b/stable/codefresh-cli/README.md new file mode 100644 index 00000000..cd3ee25a --- /dev/null +++ b/stable/codefresh-cli/README.md @@ -0,0 +1,31 @@ +# Codefresh Cli Plugin + +Use Codefresh Cli plugin to perform operations on your Codefresh resources + +## Usage + + +```yaml +--- +version: '1.0' + +steps: + + ... + + annotate_image: + image: codefresh/cli + description: annotates image with metadata + command: annotate image IMAGE_ID -a key1=value1 -a key2=value2 + + run_pipeline: + image: codefresh/cli + description: run a pipeline + command: run pipeline PIPELINE_NAME REPO_OWNER REPO_NAME -b master + ... + +``` + +## Environment Variables + +- `CFCONFIG` - Path for cfconfig file path (default: ${HOME}/.cfconfig \ No newline at end of file diff --git a/stable/codefresh-cli/plugin.yaml b/stable/codefresh-cli/plugin.yaml new file mode 100644 index 00000000..b3cf301f --- /dev/null +++ b/stable/codefresh-cli/plugin.yaml @@ -0,0 +1,12 @@ +image: codefresh/cli +version: 0.1.0 +description: Operate on Codefresh resources +keywords: + - cli +home: https://github.com/codefresh-io/codefresh +sources: + - https://github.com/codefresh-io/codefresh +icon: http://cdn.osxdaily.com/wp-content/uploads/2014/08/terminal-icon-osx.png +envs: + - name: CFCONFIG + description: Path for cfconfig file path \ No newline at end of file From 7c1e198a0571a331ed0958d0038d440ffaf072fb Mon Sep 17 00:00:00 2001 From: Itai Gendler Date: Mon, 27 Nov 2017 14:42:15 +0200 Subject: [PATCH 024/282] update catalog --- CATALOG.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index 07568e9e..0c09c9c9 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -2,11 +2,12 @@ ## Stable Plugins -| Plugin | Description | Tags | -| -------------------------------------------- | -------------------------- | --------------------------------- | -| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | -| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | +| Plugin | Description | Tags | +| ----------------------------------------------- | ------------------------------ | --------------------------------- | +| [Codefresh Cli](stable/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` | +| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | ## Incubator Plugins From a2cbc950eabeed8854afd55f0961a287b409b158 Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 14:44:32 +0200 Subject: [PATCH 025/282] 1. Added info to catalog 2. refactored parameters list --- CATALOG.md | 0 incubator/run-jenkins-jobs/README.md | 2 +- incubator/run-jenkins-jobs/plugin.yaml | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 CATALOG.md diff --git a/CATALOG.md b/CATALOG.md new file mode 100644 index 00000000..e69de29b diff --git a/incubator/run-jenkins-jobs/README.md b/incubator/run-jenkins-jobs/README.md index bdc55986..fe1096ef 100644 --- a/incubator/run-jenkins-jobs/README.md +++ b/incubator/run-jenkins-jobs/README.md @@ -7,4 +7,4 @@ Run single or multiple jenkins job from codefresh pipeline - `JENKINS_USERNAME`: jenkins username - `JENKINS_TOKEN`: token - `JENKINS_URL`: jenkins machine url -- `JENKINS_JOB_LIST`: list of jenkins jobs to run separated by spaces \ No newline at end of file +- `JENKINS_JOB`: list of jenkins jobs to run separated by spaces \ No newline at end of file diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml index b0c358d2..c2eb3ebd 100644 --- a/incubator/run-jenkins-jobs/plugin.yaml +++ b/incubator/run-jenkins-jobs/plugin.yaml @@ -1,7 +1,7 @@ image: codefresh/run-jenkins-jobs tag: master version: 0.1.0 -description: Run single or multiple jenkins job from codefresh pipeline +description: Run jenkins job from codefresh pipeline keywords: - docker - jenkins @@ -24,6 +24,6 @@ envs: - name: JENKINS_URL type: required description: jenkins machine url - - name: JENKINS_JOBS_LIST + - name: JENKINS_JOB type: required description: list of jenkins jobs to run separated by spaces \ No newline at end of file From 3782c9072d55435efdd664a46e3858609f2cee56 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 14:48:43 +0200 Subject: [PATCH 026/282] move kompose to stable --- CATALOG.md | 21 +++++++++++---------- {incubator => stable}/kompose/README.md | 0 {incubator => stable}/kompose/plugin.yaml | 0 3 files changed, 11 insertions(+), 10 deletions(-) rename {incubator => stable}/kompose/README.md (100%) rename {incubator => stable}/kompose/plugin.yaml (100%) diff --git a/CATALOG.md b/CATALOG.md index 0c09c9c9..ad2bbc22 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -2,16 +2,17 @@ ## Stable Plugins -| Plugin | Description | Tags | -| ----------------------------------------------- | ------------------------------ | --------------------------------- | -| [Codefresh Cli](stable/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` | -| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | -| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | +| Plugin | Description | Tags | +| ----------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | +| [Codefresh Cli](stable/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` | +| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | +| [Deploy Kompose](stable/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | + ## Incubator Plugins -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| Plugin | Description | Tags | +| ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | +| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | diff --git a/incubator/kompose/README.md b/stable/kompose/README.md similarity index 100% rename from incubator/kompose/README.md rename to stable/kompose/README.md diff --git a/incubator/kompose/plugin.yaml b/stable/kompose/plugin.yaml similarity index 100% rename from incubator/kompose/plugin.yaml rename to stable/kompose/plugin.yaml From 53b91a4a8e5b46ed7c4edc4102f785edd64c4f89 Mon Sep 17 00:00:00 2001 From: jennyps Date: Mon, 27 Nov 2017 14:49:26 +0200 Subject: [PATCH 027/282] Update CATALOG.md --- CATALOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CATALOG.md b/CATALOG.md index e69de29b..8d80c807 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -0,0 +1,17 @@ +# Plugin Catalog + +## Stable Plugins + +| Plugin | Description | Tags | +| -------------------------------------------- | -------------------------- | --------------------------------- | +| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | + +## Incubator Plugins + +| Plugin | Description | Tags | +| ---------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | +| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [Run Jenkins Jobs](incubator/run-jenkins-jobs/README.md) | Run jenkins job from codefresh pipeline | `jenkins` `job` | From 81a0f0798488f388ba17d3ae941d12e641821d4c Mon Sep 17 00:00:00 2001 From: nick-sakovich Date: Mon, 27 Nov 2017 15:52:02 +0300 Subject: [PATCH 028/282] finished with githug pr plugin --- incubator/github-pr/README.MD | 2 ++ incubator/github-pr/plugin.yaml | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/incubator/github-pr/README.MD b/incubator/github-pr/README.MD index c3614e3d..7a625179 100644 --- a/incubator/github-pr/README.MD +++ b/incubator/github-pr/README.MD @@ -5,6 +5,8 @@ Creates a new pull request in GitHub ## Environment Variables - `GITHUB_TOKEN`: token for access to GitHub +- `GITHUB_REPO_OWNER`: name of repo owner +- `GITHUB_REPO_NAME`: name of repo - `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch - `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. - `TITLE`: The title of the pull request diff --git a/incubator/github-pr/plugin.yaml b/incubator/github-pr/plugin.yaml index b4fc8d5a..c815ab9c 100644 --- a/incubator/github-pr/plugin.yaml +++ b/incubator/github-pr/plugin.yaml @@ -1,4 +1,4 @@ -image: codefresh/github-pull-request +image: codefresh/github-pr-plugin tag: master version: 0.1.0 description: Creates GitHub pull request @@ -6,9 +6,9 @@ keywords: - docker - github - pull-request -home: https://github.com/codefresh-io/cf-github-pull-request +home: https://github.com/codefresh-io/github-pr-plugin sources: - - https://github.com/codefresh-io/cf-github-pull-request + - https://github.com/codefresh-io/github-pr-plugin maintainers: # (optional) - name: Nick Sakovich email: nick.sakovich@codefresh.io @@ -17,6 +17,12 @@ envs: - name: GITHUB_TOKEN type: required description: Token for access to GitHub + - name: GITHUB_REPO_OWNER + type: required + description: Name of repo owner + - name: GITHUB_REPO_NAME + type: required + description: Name of repo - name: HEAD type: required description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch From d1b826491b3ae8ae47424ed51a3945499124f423 Mon Sep 17 00:00:00 2001 From: olegs-codefresh Date: Mon, 27 Nov 2017 15:07:57 +0200 Subject: [PATCH 029/282] update docs --- stable/slack/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/stable/slack/README.md b/stable/slack/README.md index e9436f38..ee202801 100644 --- a/stable/slack/README.md +++ b/stable/slack/README.md @@ -13,9 +13,14 @@ steps: ... - publish_to_repo: + SendToSlack: + title: Sending message to slack image: codefresh/slack-message-sender - + commands: + - slack-message-sender send + environment: + - WEBHOOK_URL=${{SLACK_WEBHOOK_URL}} + - SLACK_MESSAGE=${{CF_COMMIT_MESSAGE}} ... ``` @@ -23,4 +28,5 @@ steps: ## Environment Variables - **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) +- **required** `SLACK_MESSAGE` - The message that will be sent - `DEBUG` - print verbose output \ No newline at end of file From 217505642ea4ea47d6431d9a91fa9ee7b1d44deb Mon Sep 17 00:00:00 2001 From: nick-sakovich Date: Mon, 27 Nov 2017 16:13:14 +0300 Subject: [PATCH 030/282] moved plugins to correct place --- {incubator => stable}/github-pr/README.MD | 0 {incubator => stable}/github-pr/plugin.yaml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {incubator => stable}/github-pr/README.MD (100%) rename {incubator => stable}/github-pr/plugin.yaml (100%) diff --git a/incubator/github-pr/README.MD b/stable/github-pr/README.MD similarity index 100% rename from incubator/github-pr/README.MD rename to stable/github-pr/README.MD diff --git a/incubator/github-pr/plugin.yaml b/stable/github-pr/plugin.yaml similarity index 100% rename from incubator/github-pr/plugin.yaml rename to stable/github-pr/plugin.yaml From 736b324af82da109e08989825bc01ec34ad6de22 Mon Sep 17 00:00:00 2001 From: kosta709 Date: Mon, 27 Nov 2017 16:20:23 +0200 Subject: [PATCH 031/282] added docker-service plugin --- incubator/docker-service/README.md | 55 ++++++++++++++++++++++++++++ incubator/docker-service/plugin.yaml | 14 +++++++ 2 files changed, 69 insertions(+) create mode 100644 incubator/docker-service/README.md create mode 100644 incubator/docker-service/plugin.yaml diff --git a/incubator/docker-service/README.md b/incubator/docker-service/README.md new file mode 100644 index 00000000..bdac7214 --- /dev/null +++ b/incubator/docker-service/README.md @@ -0,0 +1,55 @@ +# Codefresh docker-service plugin + +Use Codefresh docker-service plugin to create docker daemon and then use run on it any of +`docker build|run|...` or `docker-compose` on your repository + +## codefresh/docker-service Docker Image details +includes `docker`, `docker-machine` and `docker-compose` + +`docker-service-create` command accepts same parameters as `docker-machine create` (i.e --driver , --engine-opt, etc) and starts a docker daemon +on a provider specified by "--driver" parameter - see https://docs.docker.com/machine/reference/create/ +Then it saves docker-machine environment files to Codefresh Volume, so every `docker` command will use this created docker daemon + +`docker-service-delete` command deletes all previously created docker-machine environment + + +## Usage + +Set environment variable and add the following step to your Codefresh pipeline: + +```yaml +--- +version: '1.0' + +steps: + + ... + + # + create-my-docker: + image: codefresh/docker-service + commands: + - docker-service-create --driver amazonec2 --amazonec2-instance-type m4.large my-docker + + build-on-my-docker: + image: codefresh/docker-service + commands: + - docker build -t mycompany/repo:${{CF_BRANCH}} ${{CF_VOLUME_PATH}}/ + + run-on-my-docker: + image: codefresh/docker-service + commands: + - docker run -d mycompany/repo:${{CF_BRANCH}} + + delete-my-docler: + image: codefresh/docker-service + commands: + - docker-service-delete my-docker + + ... + +``` +## Environment Variables + +- DOCKER_MACHINE_NAME +- Codefresh variables: https://docs.codefresh.io/docs/variables diff --git a/incubator/docker-service/plugin.yaml b/incubator/docker-service/plugin.yaml new file mode 100644 index 00000000..5357ec51 --- /dev/null +++ b/incubator/docker-service/plugin.yaml @@ -0,0 +1,14 @@ +image: codefresh/docker-service +tag: master +version: 0.1.0 +description: Codefresh docker-service plugin +keywords: + - docker + - docker-machine + - docker-compose +home: https://github.com/codefresh-io/docker-service +sources: + - https://github.com/codefresh-io/docker-service +maintainers: # (optional) + - name: Kosta Klevensky + email: kosta@codefresh.io \ No newline at end of file From 09cc36f80d15a34437a837f9912ad8a96c435fa8 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 16:23:09 +0200 Subject: [PATCH 032/282] add examples to kompose step --- stable/kompose/example/codefresh.yaml | 18 ++++++++++++++++ stable/kompose/example/docker-compose.yaml | 24 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 stable/kompose/example/codefresh.yaml create mode 100644 stable/kompose/example/docker-compose.yaml diff --git a/stable/kompose/example/codefresh.yaml b/stable/kompose/example/codefresh.yaml new file mode 100644 index 00000000..67e8f0d0 --- /dev/null +++ b/stable/kompose/example/codefresh.yaml @@ -0,0 +1,18 @@ +version: '1.0' + +steps: + + dry_run: + image: codefresh/plugin-kompose:v1.5.0 + environment: + - NAMESPACE=kompose-test + - FILE=stable/kompose/example/docker-compose.yaml + - DEBUG=true + - DRY_RUN=true + + deploy_to_cluster: + image: codefresh/plugin-kompose:v1.5.0 + environment: + - NAMESPACE=kompose-test + - FILE=stable/kompose/example/docker-compose.yaml + - DEBUG=true diff --git a/stable/kompose/example/docker-compose.yaml b/stable/kompose/example/docker-compose.yaml new file mode 100644 index 00000000..5f847a4f --- /dev/null +++ b/stable/kompose/example/docker-compose.yaml @@ -0,0 +1,24 @@ +version: "2" + +services: + + redis-master: + image: gcr.io/google_containers/redis:e2e + ports: + - "6379" + + redis-slave: + image: gcr.io/google_samples/gb-redisslave:v1 + ports: + - "6379" + environment: + - GET_HOSTS_FROM=dns + + frontend: + image: gcr.io/google-samples/gb-frontend:v4 + ports: + - "80:80" + environment: + - GET_HOSTS_FROM=dns + labels: + kompose.service.type: LoadBalancer From 4aa0cd15510d80c2c965258e81d25d2a2f39dfae Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 16:32:36 +0200 Subject: [PATCH 033/282] updated catalog --- CATALOG.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index ad2bbc22..3693c68d 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -2,17 +2,17 @@ ## Stable Plugins -| Plugin | Description | Tags | -| ----------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | -| [Codefresh Cli](stable/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` | -| [Deploy Helm](stable/helm/README.md) | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | Send message to slack | `slack` `notify` | -| [Deploy to ECS](stable/ecs-deploy/README.md) | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | -| [Deploy Kompose](stable/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| Plugin | Author | Description | Tags | +| ----------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| [Codefresh Cli](stable/codefresh-cli/README.md) | @itai-codefresh | Operate on Codefresh resources | `cli` `codefresh` | +| [Deploy Helm](stable/helm/README.md) | @alexeil-led | Deploy a Helm chart | `kubernetes` `helm` | +| [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | +| [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | +| [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | ## Incubator Plugins -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | -------------------------------------------- | -------------------- | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| Plugin | Author | Description | Tags | +| ---------------------------------------------------------------- | ----------- | -------------------------------------------- | -------------------- | +| [Import Docker Images](incubator/import-docker-images/README.md) | @alexei-led | Import Docker images metadata into Codefresh | `docker` `codefresh` | From de7670f08e5659ccda9ad762613073f339a87486 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 16:40:25 +0200 Subject: [PATCH 034/282] add CF badge --- stable/kompose/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stable/kompose/README.md b/stable/kompose/README.md index 8f7d032c..e7e5a2eb 100644 --- a/stable/kompose/README.md +++ b/stable/kompose/README.md @@ -1,3 +1,5 @@ +[![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=codefresh-io&repoName=plugins&branch=master&pipelineName=Kompose%20Plugin&accountName=codefresh-inc&type=cf-1)]( https://g.codefresh.io/repositories/codefresh-io/plugins/builds?filter=trigger:build;branch:master;service:5a1c225585e11a0001cb2de1~Kompose Plugin) + # Codefresh Kompose Plugin Use Codefresh [Kompose](http://kompose.io) plugin to deploy or convert a Docker Compose file into Kubernetes resources. From d86a8e4124ad0aa5ee40d5fd61ae08921b051a91 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Mon, 27 Nov 2017 16:44:13 +0200 Subject: [PATCH 035/282] fix encoding --- stable/kompose/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stable/kompose/README.md b/stable/kompose/README.md index e7e5a2eb..fe11227d 100644 --- a/stable/kompose/README.md +++ b/stable/kompose/README.md @@ -1,4 +1,4 @@ -[![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=codefresh-io&repoName=plugins&branch=master&pipelineName=Kompose%20Plugin&accountName=codefresh-inc&type=cf-1)]( https://g.codefresh.io/repositories/codefresh-io/plugins/builds?filter=trigger:build;branch:master;service:5a1c225585e11a0001cb2de1~Kompose Plugin) +[![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=codefresh-io&repoName=plugins&branch=master&pipelineName=Kompose%20Plugin&accountName=codefresh-inc&type=cf-1)]( https://g.codefresh.io/repositories/codefresh-io/plugins/builds?filter=trigger:build;branch:master;service:5a1c225585e11a0001cb2de1~Kompose%20Plugin) # Codefresh Kompose Plugin From 377dec9e8e6d8b78dcaf1ec83cea99417f11ace4 Mon Sep 17 00:00:00 2001 From: kosta709 Date: Tue, 28 Nov 2017 10:26:26 +0200 Subject: [PATCH 036/282] docker-service plugin + README --- incubator/docker-service/README.md | 51 +----------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/incubator/docker-service/README.md b/incubator/docker-service/README.md index bdac7214..4d4ad14c 100644 --- a/incubator/docker-service/README.md +++ b/incubator/docker-service/README.md @@ -3,53 +3,4 @@ Use Codefresh docker-service plugin to create docker daemon and then use run on it any of `docker build|run|...` or `docker-compose` on your repository -## codefresh/docker-service Docker Image details -includes `docker`, `docker-machine` and `docker-compose` - -`docker-service-create` command accepts same parameters as `docker-machine create` (i.e --driver , --engine-opt, etc) and starts a docker daemon -on a provider specified by "--driver" parameter - see https://docs.docker.com/machine/reference/create/ -Then it saves docker-machine environment files to Codefresh Volume, so every `docker` command will use this created docker daemon - -`docker-service-delete` command deletes all previously created docker-machine environment - - -## Usage - -Set environment variable and add the following step to your Codefresh pipeline: - -```yaml ---- -version: '1.0' - -steps: - - ... - - # - create-my-docker: - image: codefresh/docker-service - commands: - - docker-service-create --driver amazonec2 --amazonec2-instance-type m4.large my-docker - - build-on-my-docker: - image: codefresh/docker-service - commands: - - docker build -t mycompany/repo:${{CF_BRANCH}} ${{CF_VOLUME_PATH}}/ - - run-on-my-docker: - image: codefresh/docker-service - commands: - - docker run -d mycompany/repo:${{CF_BRANCH}} - - delete-my-docler: - image: codefresh/docker-service - commands: - - docker-service-delete my-docker - - ... - -``` -## Environment Variables - -- DOCKER_MACHINE_NAME -- Codefresh variables: https://docs.codefresh.io/docs/variables +See https://github.com/codefresh-io/docker-service \ No newline at end of file From a36464e74a8da63d9574d942d9cd38c4ee1bc9e6 Mon Sep 17 00:00:00 2001 From: nick-codefresh Date: Tue, 28 Nov 2017 12:59:37 +0300 Subject: [PATCH 037/282] updated README for github-pr plugin --- stable/github-pr/README.MD | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/stable/github-pr/README.MD b/stable/github-pr/README.MD index 7a625179..27c33099 100644 --- a/stable/github-pr/README.MD +++ b/stable/github-pr/README.MD @@ -10,3 +10,33 @@ Creates a new pull request in GitHub - `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch - `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. - `TITLE`: The title of the pull request + +## Deployment with Codefresh +- Add encrypted environment variables for: + * GITHUB_TOKEN + +- Add "github-pr" step as descibed below + +```yaml +# codefresh.yml example with github pr step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push to registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + github-pr: + image: codefresh/github-pr-plugin + environment: + - GITHUB_REPO_OWNER=${{CF_REPO_OWNER}} + - GITHUB_REPO_NAME=${{CF_REPO_NAME}} + - BASE=master + - HEAD=${{CF_BRANCH}} + - TITLE=Codefresh PR for ${{CF_BRANCH}} +``` From 7e32c4cb13119ce8c35b94d5cd24266bef7da0d6 Mon Sep 17 00:00:00 2001 From: nick-codefresh Date: Tue, 28 Nov 2017 13:09:57 +0300 Subject: [PATCH 038/282] added github pr plugin into catalog --- CATALOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CATALOG.md b/CATALOG.md index 3693c68d..dea376c0 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -9,6 +9,7 @@ | [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` `pull request` ## Incubator Plugins From 0683409c22b3fa7ee64e86383b052a12b6da119a Mon Sep 17 00:00:00 2001 From: kosta709 Date: Tue, 28 Nov 2017 12:43:48 +0200 Subject: [PATCH 039/282] added docker-service to catalog --- CATALOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CATALOG.md b/CATALOG.md index dea376c0..235806d7 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -17,3 +17,4 @@ | Plugin | Author | Description | Tags | | ---------------------------------------------------------------- | ----------- | -------------------------------------------- | -------------------- | | [Import Docker Images](incubator/import-docker-images/README.md) | @alexei-led | Import Docker images metadata into Codefresh | `docker` `codefresh` | +| [Docker Service](incubator/docker-service/README.md) | @kosta-codefresh | creates docker daemon and then use it in pipeline | `docker` `codefresh` | \ No newline at end of file From d5250b9b09d312044c86f375a3e9d399368cebca Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Tue, 28 Nov 2017 15:52:25 +0200 Subject: [PATCH 040/282] fix yaml formatting --- incubator/run-jenkins-jobs/plugin.yaml | 2 +- stable/ecs-deploy/plugin.yaml | 30 +++++++++++++------------- stable/github-pr/plugin.yaml | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml index c2eb3ebd..e6a183fd 100644 --- a/incubator/run-jenkins-jobs/plugin.yaml +++ b/incubator/run-jenkins-jobs/plugin.yaml @@ -11,7 +11,7 @@ sources: maintainers: # (optional) - name: Vadim Waisman email: vadim@codefresh.io -- name: Jenny Passi + - name: Jenny Passi email: jenny@codefresh.io icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg envs: diff --git a/stable/ecs-deploy/plugin.yaml b/stable/ecs-deploy/plugin.yaml index ee2c5416..632a213b 100644 --- a/stable/ecs-deploy/plugin.yaml +++ b/stable/ecs-deploy/plugin.yaml @@ -17,20 +17,20 @@ envs: - name: AWS_ACCESS_KEY_ID type: required description: Amazon access key ID - - name: AWS_SECRET_ACCESS_KEY - type: required - description: amazon secret key (make sure it's encrypted) - - name: aws-region - type: required - description: Helm release name - - name : region - type : required - description : aws region - - name : cluster_name - type : required - description : ecs cluster name - - name : service_name - type : required - description : ecs service name + - name: AWS_SECRET_ACCESS_KEY + type: required + description: amazon secret key (make sure it's encrypted) + - name: aws-region + type: required + description: Helm release name + - name : region + type : required + description : aws region + - name : cluster_name + type : required + description : ecs cluster name + - name : service_name + type : required + description : ecs service name context: - kind: Amazon ECS diff --git a/stable/github-pr/plugin.yaml b/stable/github-pr/plugin.yaml index c815ab9c..3a34edb8 100644 --- a/stable/github-pr/plugin.yaml +++ b/stable/github-pr/plugin.yaml @@ -25,7 +25,7 @@ envs: description: Name of repo - name: HEAD type: required - description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch + description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this - username:branch - name: BASE type: required description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. From 7c589535541d504917839b42e26921b160e4a1f3 Mon Sep 17 00:00:00 2001 From: vadim Date: Tue, 28 Nov 2017 15:59:02 +0200 Subject: [PATCH 041/282] move jenkins plugin to stable --- incubator/run-jenkins-jobs/README.md | 10 -------- stable/run-jenkins-job/README.md | 23 +++++++++++++++++++ .../run-jenkins-job}/plugin.yaml | 0 3 files changed, 23 insertions(+), 10 deletions(-) delete mode 100644 incubator/run-jenkins-jobs/README.md create mode 100644 stable/run-jenkins-job/README.md rename {incubator/run-jenkins-jobs => stable/run-jenkins-job}/plugin.yaml (100%) diff --git a/incubator/run-jenkins-jobs/README.md b/incubator/run-jenkins-jobs/README.md deleted file mode 100644 index fe1096ef..00000000 --- a/incubator/run-jenkins-jobs/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Import Docker Images Codefresh Plugin - -Run single or multiple jenkins job from codefresh pipeline - -## Environment Variables - -- `JENKINS_USERNAME`: jenkins username -- `JENKINS_TOKEN`: token -- `JENKINS_URL`: jenkins machine url -- `JENKINS_JOB`: list of jenkins jobs to run separated by spaces \ No newline at end of file diff --git a/stable/run-jenkins-job/README.md b/stable/run-jenkins-job/README.md new file mode 100644 index 00000000..d93d5c0c --- /dev/null +++ b/stable/run-jenkins-job/README.md @@ -0,0 +1,23 @@ +# Import Docker Images Codefresh Plugin + +Run single or multiple jenkins job from codefresh pipeline + +## Environment Variables + +- `JENKINS_USER`: jenkins username +- `JENKINS_TOKEN`: token +- `JENKINS_URL`: jenkins machine url +- `JENKINS_JOB`: jenkins job to run + +Usage Example: + +version: '1.0' +steps: + RunJenkins: + title: Triggering Jenkins Job + image: codefresh/cf-run-jenkins-job + environment: + - JENKINS_URL=http://: + - JENKINS_USER= + - JENKINS_TOKEN= + - JENKINS_JOB= diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/stable/run-jenkins-job/plugin.yaml similarity index 100% rename from incubator/run-jenkins-jobs/plugin.yaml rename to stable/run-jenkins-job/plugin.yaml From 561e4de91605809978a286531d23defca669385b Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Tue, 28 Nov 2017 16:32:32 +0200 Subject: [PATCH 042/282] Delete plugin.yaml --- stable/run-jenkins-job/plugin.yaml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 stable/run-jenkins-job/plugin.yaml diff --git a/stable/run-jenkins-job/plugin.yaml b/stable/run-jenkins-job/plugin.yaml deleted file mode 100644 index c2eb3ebd..00000000 --- a/stable/run-jenkins-job/plugin.yaml +++ /dev/null @@ -1,29 +0,0 @@ -image: codefresh/run-jenkins-jobs -tag: master -version: 0.1.0 -description: Run jenkins job from codefresh pipeline -keywords: - - docker - - jenkins -home: https://github.com/codefresh-io/cf-run-jenkins-jobs -sources: - - https://github.com/codefresh-io/cf-run-jenkins-jobs -maintainers: # (optional) - - name: Vadim Waisman - email: vadim@codefresh.io -- name: Jenny Passi - email: jenny@codefresh.io -icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg -envs: - - name: JENKINS_USERNAME - type: required - description: jenkins username - - name: JENKINS_TOKEN - type: required - description: jenkins token - - name: JENKINS_URL - type: required - description: jenkins machine url - - name: JENKINS_JOB - type: required - description: list of jenkins jobs to run separated by spaces \ No newline at end of file From da5b058127c2bf94af32fac1ee3bf10b0258696a Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Tue, 28 Nov 2017 16:33:48 +0200 Subject: [PATCH 043/282] Create plugin.yaml --- stable/run-jenkins-job/plugin.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 stable/run-jenkins-job/plugin.yaml diff --git a/stable/run-jenkins-job/plugin.yaml b/stable/run-jenkins-job/plugin.yaml new file mode 100644 index 00000000..b593a4c7 --- /dev/null +++ b/stable/run-jenkins-job/plugin.yaml @@ -0,0 +1,29 @@ +image: codefresh/run-jenkins-jobs +tag: master +version: 0.1.0 +description: Run jenkins job from codefresh pipeline +keywords: + - docker + - jenkins +home: https://github.com/codefresh-io/cf-run-jenkins-jobs +sources: + - https://github.com/codefresh-io/cf-run-jenkins-jobs +maintainers: # (optional) + - name: Vadim Waisman + email: vadim@codefresh.io +- name: Jenny Passi + email: jenny@codefresh.io +icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg +envs: + - name: JENKINS_USERNAME + type: required + description: jenkins username + - name: JENKINS_TOKEN + type: required + description: jenkins token + - name: JENKINS_URL + type: required + description: jenkins machine url + - name: JENKINS_JOB + type: required + description: list of jenkins jobs to run separated by spaces From d43f547870eb7f5f760002ef9c9d22c0e44949f7 Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Tue, 28 Nov 2017 16:35:53 +0200 Subject: [PATCH 044/282] Create plugin.yaml --- incubator/run-jenkins-jobs/plugin.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 incubator/run-jenkins-jobs/plugin.yaml diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/incubator/run-jenkins-jobs/plugin.yaml @@ -0,0 +1 @@ + From be12b3098c73ac4d48fc39598c6e4fac72aa54eb Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Tue, 28 Nov 2017 16:37:09 +0200 Subject: [PATCH 045/282] Delete plugin.yaml --- incubator/run-jenkins-jobs/plugin.yaml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 incubator/run-jenkins-jobs/plugin.yaml diff --git a/incubator/run-jenkins-jobs/plugin.yaml b/incubator/run-jenkins-jobs/plugin.yaml deleted file mode 100644 index 8b137891..00000000 --- a/incubator/run-jenkins-jobs/plugin.yaml +++ /dev/null @@ -1 +0,0 @@ - From 9b3813f1c6928a557d5aeba8a4853b65614e0eb1 Mon Sep 17 00:00:00 2001 From: David Levy Date: Tue, 28 Nov 2017 16:39:27 +0200 Subject: [PATCH 046/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index 8b570dd4..dc6e952f 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -9,7 +9,7 @@ | [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub +| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | ## Incubator Plugins From 0eceb0d3dc7e1874d927ede025028bceecee2a78 Mon Sep 17 00:00:00 2001 From: David Levy Date: Tue, 28 Nov 2017 16:40:52 +0200 Subject: [PATCH 047/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index dc6e952f..19bb2518 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -9,7 +9,7 @@ | [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | +| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | | ## Incubator Plugins From de3f6b46b146164abaf7962c3f04d3ef909148bd Mon Sep 17 00:00:00 2001 From: David Levy Date: Tue, 28 Nov 2017 16:44:04 +0200 Subject: [PATCH 048/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index 19bb2518..f82c2b5a 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -9,7 +9,7 @@ | [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | | +| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | ## Incubator Plugins From b47170f0b1c9371616126da151fca1a75a5f962d Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Fri, 1 Dec 2017 20:55:44 +0200 Subject: [PATCH 049/282] Update CATALOG.md --- CATALOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index f82c2b5a..cc7d37e7 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -10,11 +10,11 @@ | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | +| [Run Jenkins Jobs](incubator/run-jenkins-jobs/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | ## Incubator Plugins | Plugin | Description | Tags | | ---------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | | [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [Run Jenkins Jobs](incubator/run-jenkins-jobs/README.md) | Run jenkins job from codefresh pipeline | `jenkins` `job` | +| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | From 65a07a1c0e16e6088fae672a8f38dd76bae7780e Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Fri, 1 Dec 2017 20:56:49 +0200 Subject: [PATCH 050/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index cc7d37e7..362fcb67 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -10,7 +10,7 @@ | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](incubator/run-jenkins-jobs/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | +| [Run Jenkins Jobs](stable/run-jenkins-jobs/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | ## Incubator Plugins From b3735e89d5ae4eaf0b55d733928c4490deb6ab9a Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:00:14 +0200 Subject: [PATCH 051/282] Update CATALOG.md --- CATALOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CATALOG.md b/CATALOG.md index 362fcb67..c430ac83 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -10,7 +10,7 @@ | [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](stable/run-jenkins-jobs/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | +| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | ## Incubator Plugins From 04b7a42e64f1c04cc0b2e620fad2390630cbe1ca Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:01:13 +0200 Subject: [PATCH 052/282] Update README.md --- stable/run-jenkins-job/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stable/run-jenkins-job/README.md b/stable/run-jenkins-job/README.md index d93d5c0c..627c3f0d 100644 --- a/stable/run-jenkins-job/README.md +++ b/stable/run-jenkins-job/README.md @@ -1,4 +1,4 @@ -# Import Docker Images Codefresh Plugin +# Run Jenkins Job Codefresh Plugin Run single or multiple jenkins job from codefresh pipeline From 290de1edcdc54545378cc8d090f2fe0c18e73e4c Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:01:58 +0200 Subject: [PATCH 053/282] Update README.md --- stable/run-jenkins-job/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stable/run-jenkins-job/README.md b/stable/run-jenkins-job/README.md index 627c3f0d..1fefd5db 100644 --- a/stable/run-jenkins-job/README.md +++ b/stable/run-jenkins-job/README.md @@ -1,6 +1,6 @@ # Run Jenkins Job Codefresh Plugin -Run single or multiple jenkins job from codefresh pipeline +Run jenkins job from codefresh pipeline ## Environment Variables From 49d900966cfa4bb57cb516b1d69f3c3c1ae32ae3 Mon Sep 17 00:00:00 2001 From: Eugene Semirski Date: Sun, 3 Dec 2017 17:40:15 +0200 Subject: [PATCH 054/282] dcos-app-deploy/plugin.yaml added --- stable/dcos-app-deploy/NOTES.md | 1 + stable/dcos-app-deploy/README.md | 101 +++++++++++++++++++++++++++++ stable/dcos-app-deploy/plugin.yaml | 34 ++++++++++ 3 files changed, 136 insertions(+) create mode 100644 stable/dcos-app-deploy/NOTES.md create mode 100644 stable/dcos-app-deploy/README.md create mode 100644 stable/dcos-app-deploy/plugin.yaml diff --git a/stable/dcos-app-deploy/NOTES.md b/stable/dcos-app-deploy/NOTES.md new file mode 100644 index 00000000..7dc7fc44 --- /dev/null +++ b/stable/dcos-app-deploy/NOTES.md @@ -0,0 +1 @@ +## Notes diff --git a/stable/dcos-app-deploy/README.md b/stable/dcos-app-deploy/README.md new file mode 100644 index 00000000..6431b8a7 --- /dev/null +++ b/stable/dcos-app-deploy/README.md @@ -0,0 +1,101 @@ +# cf-deploy-dcos +The repository contains code for `codefresh/cf-deploy-dcos` image building. This image makes an application deployment on DC/OS cluster using application definition json file. +It takes application deployment template (deployment.tmpl) and generates application deployment json file substituting variables in the template with the the environment variables values then applies the application deployment json file to DC/OS cluster using DC/OS CLI command. + + +# Usage +In order to use the `codefresh/cf-deploy-dcos` image we need to do the following: + +1. Define environment variables in Codefresh pipeline. + +- `DCOS_URL` **required** - DC/OS cluster URL +- `DCOS_CLUSTER_NAME` **required** - DC/OS cluster name +- `DCOS_CLUSTER_ID` **required** - DC/OS cluster ID +- `DCOS_DCOS_ACS_TOKEN` **required** - DC/OS cluster existing user's token (make it encrypted) +- `DCOS_SSL_VERIFY` default is true, if we want to bypass SSL certificate verification - set it to `false` +- `APP_ID` - application name +- `IMAGE_NAME` - application image name +- `IMAGE_TAG` - application image tag + +2. Create deployment.tmpl and codefresh.yml files in an application repository at the root level. + +``` +codefresh.yml +--- +version: '1.0' +steps: + BuildingDockerImage: + type: build + image_name: applcation/image + ... + + PushToRegistry: + type: push + candidate: ${{BuildingDockerImage}} + ... + + DeployToDcos: + image: codefresh/cf-deploy-dcos:latest + working_directory: ${{main_clone}} + commands: + - /cf-deploy-dcos deployment.tmpl + environment: + - DCOS_URL=${{DCOS_URL}} + - DCOS_CLUSTER_NAME=${{DCOS_CLUSTER_NAME}} + - DCOS_CLUSTER_ID=${{DCOS_CLUSTER_ID}} + - DCOS_DCOS_ACS_TOKEN=${{DCOS_DCOS_ACS_TOKEN}} + - DCOS_SSL_VERIFY=${{DCOS_SSL_VERIFY}} + - APP_ID=${{APP_ID}} + - IMAGE_NAME=${{IMAGE_NAME}} + - IMAGE_TAG=${{IMAGE_TAG}} +``` +We define freestyle step (DeployToDcos in the example above) and environment variables the same as in the Codefresh pipeline. + +``` +deployment.tmpl + +{ + "id": "{{APP_ID}}", + "instances": 1, + "cpus": 0.1, + "mem": 64, + "container": { + "type" : "DOCKER", + "docker": { + "image": "{{IMAGE_NAME}}:{{IMAGE_TAG}}", + "forcePullImage": true, + "privileged": false, + "network": "BRIDGE", + "portMappings": [ + { "hostPort": 80, "containerPort": 8081, "protocol": "tcp", "name": "http"} + ] + } + }, + "acceptedResourceRoles": [ + "slave_public" + ] +} +``` +`APP_ID`, `IMAGE_NAME` and `IMAGE_TAG` variables are just examples. We can parametrise any value in application deployment template depending on our requirements. +But if we set some parameter `{{PARAMETER}}` in application deployment template we should ensure that this parameter is set both in Codefresh pipeline and in codefresh.yml freestyle step as well. + +Notes: we can use already configured DC/OS CLI dcos command to get DC/OS cluster parameters. +Example: +``` +dcos cluster list --attached --json + +[ + { + "attached": true, + "cluster_id": "9d50f776-****-433c-****-ebb01eaafbbc", + "name": "dcos-master", + "url": "https://dcos-master.cloudapp.azure.com", + "version": "1.10.2" + } +] +``` +``` +dcos config show core.dcos_acs_token + +eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik9UQkVOakZFTWtWQ09VRTRPRVpGTlRNMFJrWXlRa015Tnprd1JrSkVRemRCTWpBM1FqYzVOZyJ9.ey******** +``` diff --git a/stable/dcos-app-deploy/plugin.yaml b/stable/dcos-app-deploy/plugin.yaml new file mode 100644 index 00000000..6187c301 --- /dev/null +++ b/stable/dcos-app-deploy/plugin.yaml @@ -0,0 +1,34 @@ +image: codefresh/cf-deploy-dcos +tag: latest +version: 0.1.0 +description: Deploy an application on dcos cluster +keywords: + - dcos + - deploy + - deployment +home: https://github.com/codefresh-io/cf-deploy-dcos +sources: + - https://github.com/codefresh-io/cf-deploy-dcos +maintainers: # (optional) + - name: Eugene Semirski + email: eugene@codefresh.io +icon: https://avatars0.githubusercontent.com/u/29493517?v=4&s=400 +envs: + - name: DCOS_URL + type: required + description: DC/OS cluster URL + - name: DCOS_CLUSTER_NAME + type: required + description: DC/OS cluster name + - name: DCOS_CLUSTER_ID + type: required + description: DC/OS cluster ID + - name: DCOS_DCOS_ACS_TOKEN + type: required + description: DC/OS cluster existing user's token + - name: DCOS_SSL_VERIFY + type: not_required + description: default is true, if we want to bypass SSL certificate verification - set it to false + - name: PARAMETER + type: not_required + description: see README.md for details From 0b51c626fe78851a52cb41ab76de07aeb84d1fa4 Mon Sep 17 00:00:00 2001 From: Eugene Semirski Date: Sun, 3 Dec 2017 17:50:20 +0200 Subject: [PATCH 055/282] dcos-app-deploy plugin added to CATALOG.md --- CATALOG.md | 1 + dcos-app-deploy/LICENSE | 0 dcos-app-deploy/NOTES.md | 0 dcos-app-deploy/README.md | 1 - dcos-app-deploy/plugin.yaml | 18 ------------------ 5 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 dcos-app-deploy/LICENSE delete mode 100644 dcos-app-deploy/NOTES.md delete mode 100644 dcos-app-deploy/README.md delete mode 100644 dcos-app-deploy/plugin.yaml diff --git a/CATALOG.md b/CATALOG.md index c430ac83..481ffb68 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -11,6 +11,7 @@ | [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | | [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | +| [Deploy to DCOS](stable/dcos-app-deploy/README.md) | @eugene-codefresh | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | ## Incubator Plugins diff --git a/dcos-app-deploy/LICENSE b/dcos-app-deploy/LICENSE deleted file mode 100644 index e69de29b..00000000 diff --git a/dcos-app-deploy/NOTES.md b/dcos-app-deploy/NOTES.md deleted file mode 100644 index e69de29b..00000000 diff --git a/dcos-app-deploy/README.md b/dcos-app-deploy/README.md deleted file mode 100644 index 04fadfcf..00000000 --- a/dcos-app-deploy/README.md +++ /dev/null @@ -1 +0,0 @@ -##dcos-app-deploy diff --git a/dcos-app-deploy/plugin.yaml b/dcos-app-deploy/plugin.yaml deleted file mode 100644 index f83243a0..00000000 --- a/dcos-app-deploy/plugin.yaml +++ /dev/null @@ -1,18 +0,0 @@ -tag: 0.0.1 -version: 0.1.0 -description: Deploy an application on dcos cluster -keywords: - - dcos - - deploy - - deployment - +home: https://github.com/codefresh-io/cf-deploy-dcos - +sources: - + - https://github.com/codefresh-io/cf-deploy-dcos - +maintainers: # (optional) - + - name: Eugene Semirski - + email: eugene@codefresh.io - +icon: https://avatars0.githubusercontent.com/u/29493517?v=4&s=400 - +envs: - + - name: ENV_NAME - + type: required - + description: Some description From e7cad46d5cf94d89152cd4baf35dcb7be2b16ddf Mon Sep 17 00:00:00 2001 From: Anton Weiss Date: Tue, 5 Dec 2017 12:27:30 +0200 Subject: [PATCH 056/282] Add Jira plugin --- CATALOG.md | 2 +- stable/jira/NOTES.md | 1 + stable/jira/README.md | 33 +++++++++++++++++++++++++++++++++ stable/jira/plugin.yaml | 23 +++++++++++++++++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 stable/jira/NOTES.md create mode 100644 stable/jira/README.md create mode 100644 stable/jira/plugin.yaml diff --git a/CATALOG.md b/CATALOG.md index 481ffb68..7f37fd02 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -12,7 +12,7 @@ | [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | | [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | | [Deploy to DCOS](stable/dcos-app-deploy/README.md) | @eugene-codefresh | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | - +| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines | `jira` `workflow` ## Incubator Plugins | Plugin | Description | Tags | diff --git a/stable/jira/NOTES.md b/stable/jira/NOTES.md new file mode 100644 index 00000000..842a96bc --- /dev/null +++ b/stable/jira/NOTES.md @@ -0,0 +1 @@ +## Notes \ No newline at end of file diff --git a/stable/jira/README.md b/stable/jira/README.md new file mode 100644 index 00000000..99f95e1e --- /dev/null +++ b/stable/jira/README.md @@ -0,0 +1,33 @@ +# Codefresh Jira Plugin + +Use Codefresh Jira plugin to interact with a Jira instance. + +## Usage + + +```yaml +--- +version: '1.0' + +steps: + + ... + + UpdateJira: + title: Update Jira Issue + image: otomato/jira-cli:alpine + commands: + - yes n | jira-cli update ${JIRAID} --comment 'New docker image otomato/bringon:${{CF_SHORT_REVISION}}. Build log is here ${{CF_BUILD_URL}}' --jira-url ${JIRA_URL} -u ${JIRA_USR} -p ${JIRA_PWD} + when: + condition: + all: + JiraIdFound: 'match("${JIRAID}", "[A-Z]+-[0-9]+", true)' + ... + +``` + +## Environment Variables + +- **required** `JIRA_URL` - Url to Jira instance +- **required** `JIRA_USR` - Jira user +- **required** `JIRA_PWD` - - Jira password diff --git a/stable/jira/plugin.yaml b/stable/jira/plugin.yaml new file mode 100644 index 00000000..33f31aac --- /dev/null +++ b/stable/jira/plugin.yaml @@ -0,0 +1,23 @@ +image: otomato/jira-cli +tag: alpine +version: 0.1.0 +description: Update a Jira ticket +keywords: + - jira +home: https://github.com/codefreshdemo/jira-cli-docker +sources: + - https://github.com/codefreshdemo/jira-cli-docker +maintainers: # (optional) + - name: Ant Weiss + email: anton@otomato.link +icon: https://github.com/codefreshdemo/jira-cli-docker/blob/master/jira-logo.png +envs: + - name: JIRA_URL + type: required + description: Url to Jira instance + - name: JIRA_USR + type: required + description: Jira user + - name: JIRA_PWD + type: required + description: Jira password From a84008d9e91301b053a98022cf25fdd7fe3902ac Mon Sep 17 00:00:00 2001 From: Raziel Date: Fri, 22 Dec 2017 14:26:58 -0800 Subject: [PATCH 057/282] Update README.md --- stable/slack/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stable/slack/README.md b/stable/slack/README.md index ee202801..6b3470ec 100644 --- a/stable/slack/README.md +++ b/stable/slack/README.md @@ -1,4 +1,4 @@ -# Codefresh Helm Plugin +# Codefresh Slack Plugin Use Codefresh Slack plugin to send a message to a channel. @@ -29,4 +29,4 @@ steps: - **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) - **required** `SLACK_MESSAGE` - The message that will be sent -- `DEBUG` - print verbose output \ No newline at end of file +- `DEBUG` - print verbose output From 4b868412c05693e72173abb5a48f33a7a6045818 Mon Sep 17 00:00:00 2001 From: dan-Codefresh Date: Wed, 27 Dec 2017 17:18:17 -0800 Subject: [PATCH 058/282] Add docs for how to use custom vars --- stable/helm/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/stable/helm/README.md b/stable/helm/README.md index 708a7c06..e2369ee4 100644 --- a/stable/helm/README.md +++ b/stable/helm/README.md @@ -33,3 +33,4 @@ steps: - `DEBUG` - print verbose install output - `WAIT` - block step execution till installation completed and all Kubernetes resources are ready - `TIMEOUT` - wait timeout (5min by default) +- `custom_var_name` - override helm variables with new values. For example, if you have a variable `image.tag` to override the variable would be `custom_image_tag`. From 6020ec241b0c268374789ba94b044ea6b917425b Mon Sep 17 00:00:00 2001 From: dan-Codefresh Date: Wed, 27 Dec 2017 17:19:44 -0800 Subject: [PATCH 059/282] Update docs to match master --- stable/helm/README.md | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/stable/helm/README.md b/stable/helm/README.md index e2369ee4..77b6bf29 100644 --- a/stable/helm/README.md +++ b/stable/helm/README.md @@ -1,6 +1,6 @@ # Codefresh Helm Plugin -Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified (by context) Kubernetes cluster. +Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified (by context) Kubernetes cluster. ## Usage @@ -25,7 +25,7 @@ steps: - **required** `CHART_NAME` - Helm chart name - **required** `RELEASE_NAME` - Helm release name -- **required** `KUBE_CONTEXT` - Kubernetes context to use (cluster name from Codefresh-Kubernetes integration) +- **required** `KUBE_CONTEXT` - Kubernetes context to use - `NAMESPACE` - target Kubernetes namespace - `CHART_VERSION` - application chart version to install - `CHART_REPO_URL` - Helm chart repository URL @@ -33,4 +33,27 @@ steps: - `DEBUG` - print verbose install output - `WAIT` - block step execution till installation completed and all Kubernetes resources are ready - `TIMEOUT` - wait timeout (5min by default) -- `custom_var_name` - override helm variables with new values. For example, if you have a variable `image.tag` to override the variable would be `custom_image_tag`. + +### Overriding Helm Variables + +Codefresh Helm plugin supports overriding Helm variables. + +#### Naming Guide + +Prefix environment variable with `custom_` (or `CUSTOM_`) and replace any `.` character with `_`. + +```text +# set ENV variable in Codefresh UI +custom_myimage_pullPolicy=Always +# Codefresh Helm plugin will add option below to the 'helm update --install' command +--set myimage.pullPolicy=Always + +# Another example +CUSTOM_redis_resources_requests_memory=256Mi +# translates to ... +--set redis.resources.requests.memory=256Mi +``` + +## Kubernetes Configuration + +Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. From 9dc2da43053e013eae102b8af810262a61394a17 Mon Sep 17 00:00:00 2001 From: vadim-codefresh <33721754+vadim-codefresh@users.noreply.github.com> Date: Wed, 10 Jan 2018 21:36:44 +0200 Subject: [PATCH 060/282] Update README.md --- stable/run-jenkins-job/README.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/stable/run-jenkins-job/README.md b/stable/run-jenkins-job/README.md index 1fefd5db..df11e088 100644 --- a/stable/run-jenkins-job/README.md +++ b/stable/run-jenkins-job/README.md @@ -1,20 +1,28 @@ -# Run Jenkins Job Codefresh Plugin +# Trigger Jenkins Job -Run jenkins job from codefresh pipeline -## Environment Variables +## Run locally +`go get codefresh-io/cf-run-jenkins-job` +``` +NAME: + cf-run-jenkins-job -- `JENKINS_USER`: jenkins username -- `JENKINS_TOKEN`: token -- `JENKINS_URL`: jenkins machine url -- `JENKINS_JOB`: jenkins job to run +DESCRIPTION: + Trigger Jenkins Job -Usage Example: +## Mandatory Parameters: + + JENKINS_URL - Jenkins Master URL + JENKINS_USER - Jenkins User Name + JENKINS_TOKEN - Jenkins Token + JENKINS_JOB - Jenkins Job Name + +## Usage Example: version: '1.0' steps: RunJenkins: - title: Triggering Jenkins Job + title: Triggering Jenkins Job image: codefresh/cf-run-jenkins-job environment: - JENKINS_URL=http://: From 1acdf9b7b7e0fb53d2da9621d222b287448d3c81 Mon Sep 17 00:00:00 2001 From: Itai Gendler Date: Tue, 23 Jan 2018 10:53:03 +0200 Subject: [PATCH 061/282] Update README.md --- stable/codefresh-cli/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stable/codefresh-cli/README.md b/stable/codefresh-cli/README.md index cd3ee25a..bbca3395 100644 --- a/stable/codefresh-cli/README.md +++ b/stable/codefresh-cli/README.md @@ -21,11 +21,11 @@ steps: run_pipeline: image: codefresh/cli description: run a pipeline - command: run pipeline PIPELINE_NAME REPO_OWNER REPO_NAME -b master + command: run PIPELINE_ID -b master ... ``` ## Environment Variables -- `CFCONFIG` - Path for cfconfig file path (default: ${HOME}/.cfconfig \ No newline at end of file +- `CFCONFIG` - Path for cfconfig file path (default: ${HOME}/.cfconfig From f21bafae6d1a5206a5e309166f242ebf5b125898 Mon Sep 17 00:00:00 2001 From: Dustin Van Buskirk Date: Sat, 27 Jan 2018 14:06:32 -0800 Subject: [PATCH 062/282] adding twistlock scanning plugin from Steelcase --- stable/twistlock-scan/Dockerfile | 50 ++++++ stable/twistlock-scan/LICENSE.md | 7 + stable/twistlock-scan/README.md | 105 +++++++++++ stable/twistlock-scan/codefresh.yml | 41 +++++ stable/twistlock-scan/scripts/twistlock.py | 195 +++++++++++++++++++++ 5 files changed, 398 insertions(+) create mode 100644 stable/twistlock-scan/Dockerfile create mode 100644 stable/twistlock-scan/LICENSE.md create mode 100644 stable/twistlock-scan/README.md create mode 100644 stable/twistlock-scan/codefresh.yml create mode 100644 stable/twistlock-scan/scripts/twistlock.py diff --git a/stable/twistlock-scan/Dockerfile b/stable/twistlock-scan/Dockerfile new file mode 100644 index 00000000..9f511082 --- /dev/null +++ b/stable/twistlock-scan/Dockerfile @@ -0,0 +1,50 @@ +FROM ubuntu:xenial + +ENV LANG C.UTF-8 + +RUN { \ + echo '#!/bin/sh'; \ + echo 'set -e'; \ + echo; \ + echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ + } > /usr/local/bin/docker-java-home && \ + chmod +x /usr/local/bin/docker-java-home + +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzip2 \ + unzip \ + xz-utils \ + apt-transport-https \ + ca-certificates \ + curl \ + software-properties-common \ + python3-openssl && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" && \ + apt-get update && apt-get install -y --no-install-recommends \ + docker-ce=17.09.0~ce-0~ubuntu && \ + apt-get install -y \ + openjdk-8-jre \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + [ "$JAVA_HOME" = "$(docker-java-home)" ]; \ + \ + update-alternatives --get-selections | awk -v home="$JAVA_HOME" 'index($3, home) == 1 { $2 = "manual"; print | "update-alternatives --set-selections" }'; \ + update-alternatives --query java | grep -q 'Status: manual' && \ + mkdir /packages && \ + curl -o /packages/twistcli https://cdn.twistlock.com/support/twistcli && \ + curl -o /packages/nexus-iq-cli-1.38.0-02.jar https://download.sonatype.com/clm/scanner/nexus-iq-cli-1.38.0-02.jar + +COPY scripts /scripts + +RUN chmod +x -R /packages +RUN chmod +x -R /scripts + +WORKDIR /scripts + +ENTRYPOINT ["/usr/bin/python3"] +CMD [""] diff --git a/stable/twistlock-scan/LICENSE.md b/stable/twistlock-scan/LICENSE.md new file mode 100644 index 00000000..d39b0063 --- /dev/null +++ b/stable/twistlock-scan/LICENSE.md @@ -0,0 +1,7 @@ +© 2017 Steelcase Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/stable/twistlock-scan/README.md b/stable/twistlock-scan/README.md new file mode 100644 index 00000000..150dcd3c --- /dev/null +++ b/stable/twistlock-scan/README.md @@ -0,0 +1,105 @@ +# Security Scanning Tools [![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=SC-TechDev&repoName=docker-security-scanner&branch=master&pipelineName=docker-security-scanner&accountName=sctechdevservice&type=cf-1)]( https://g.codefresh.io/repositories/SC-TechDev/docker-security-scanner/builds?filter=trigger:build;branch:master;service:59e62c5410e3d100019e7f3d~docker-security-scanner) + +Docker image which invokes security script using TwistCLI (Nexus coming soon) + +### Prerequisites: + +Codefresh Subscription (Dedicated Infrastructure) - https://codefresh.io/ + +Twistlock Subscription - https://www.twistlock.com/ + +### Documentation: + +Twistlock CLI: https://twistlock.desk.com/customer/en/portal/articles/2875595-twistcli?b_id=16619 + +Nexus IQ CLI: TBD + +## Script Library + +### twistlock.py + +Executes TwistCLI to scan Docker image given. + +### options + +To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh Pipeline and also to your codefresh.yaml. + + +Example `codefresh.yml` build is below with required ENVIRONMENT VARIABLES in place. + + +| ENVIRONMENT VARIABLE | SCRIPT ARGUMENT | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|----------------------------|--------------------------------------|----------|---------|----------|---------------------------------------------------------------------------------------------------------------------------------| +| CF_METADATA | [ -c, --cf_metadata ] | null | boolean | No | In combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation | +| TL_CONSOLE_HOSTNAME | [ -C, --tl_console_hostname ] | null | string | Yes | hostname/ip | +| TL_CONSOLE_PORT | [ -P, --tl_console_port ] | null | string | Yes | port | +| TL_CONSOLE_USERNAME | [ -U, --tl_console_username ] | null | string | Yes | username | +| TL_CONSOLE_PASSWORD | [ -X, --tl_console_password ] | null | string | Yes | password | +| TL_ONLY | [ -Z, --tl_only ] | null | boolean | Yes | Twistlock Console Only (Required for now Nexus TBD) | +| TL_TLS_ENABLED | [ -T, --tl_tls_enabled ] | null | boolean | No | enable TLS | +| TL_HASH | [ -H, --tl_hash ] | [ sha1 ] | string | No | [ md5, sha1, sha256 ] hashing algorithm | +| TL_UPLOAD | [ -R, --tl_upload ] | null | boolean | No | ( ignores all options below if set and only returns report url ) uploads report to Twistlock to be used later via Twistlock API | +| TL_DETAILS | [ -D, --tl_details ] | null | boolean | No | prints an itemized list of each vulnerability found by the scanner | +| TL_ONLY_FIXED | [ -O, --tl_only_fixed ] | null | boolean | No | reports just the vulnerabilites that have fixes available | +| TL_COMPLIANCE_THRESHOLD | [ -M, --tl_compliance_threshold ] | null | string | No | [ low, medium, high ] sets the the minimal severity compliance issue that returns a fail exit code | +| TL_VULNERABILITY_THRESHOLD | [ -V, --tl_vulnerability_threshold ] | null | string | No | [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code | + +### codefresh.yml + +Codefresh Build Step to execute Twistlock scan. +All `${{var}}` variables must be put into Codefresh Build Parameters +codefresh.yml +```console + buildimage: + type: build + title: Build Runtime Image + dockerfile: Dockerfile + image_name: # Image you're building/scanning [repository/image] + tag: latest-cf-build-candidate + + nexus_iq_scan_build_stage: + type: composition + composition: + version: '2' + services: + imagebuild: + image: ${{buildimage}} + command: sh -c "exit 0" + labels: + build.image.id: ${{CF_BUILD_ID}} + composition_candidates: + scan_service: + image: sctechdev/docker-security-scanner + environment: + - TL_CONSOLE_HOSTNAME=${{TL_CONSOLE_HOSTNAME}} + - TL_CONSOLE_PORT=${{TL_CONSOLE_PORT}} + - TL_CONSOLE_USERNAME=${{TL_CONSOLE_USERNAME}} + - TL_CONSOLE_PASSWORD=${{TL_CONSOLE_PASSWORD}} + - TL_ONLY=${{TL_ONLY}} + command: twistlock.py -i "$$(docker inspect $$(docker inspect $$(docker ps -aqf label=build.image.id=${{CF_BUILD_ID}}) -f {{.Config.Image}}) -f {{.Id}} | sed 's/sha256://g')" + depends_on: + - imagebuild + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /var/lib/docker:/var/lib/docker + # Everything below this line is Optional for CF_METADATA + - '${{CF_VOLUME_NAME}}:/codefresh/volume' + add_flow_volume_to_composition: true + + export: + title: "Exporting variables..." + image: alpine + commands: + - echo "Exporting variables..." + + set_metadata: + title: "Setting metadata on image..." + image: alpine + commands: + - echo "Setting metadata on image..." + on_finish: + metadata: + set: + - '${{build_step.imageId}}': + - TwistlockSecurityReport: ${{TL_REPORT_URL}} +``` \ No newline at end of file diff --git a/stable/twistlock-scan/codefresh.yml b/stable/twistlock-scan/codefresh.yml new file mode 100644 index 00000000..31881bcb --- /dev/null +++ b/stable/twistlock-scan/codefresh.yml @@ -0,0 +1,41 @@ +version: '1.0' + +steps: + + buildimage: + type: build + description: image build step + dockerfile: Dockerfile + image_name: sctechdev/docker-security-scanner + tag: latest-cf-build-candidate + + push_image: + type: push + candidate: ${{buildimage}} + tag: latest + when: + branch: + only: + - master + push_image1: + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + + push_image_nexus_latest: + title: Push to Nexus Repo (latest) + type: push + candidate: ${{buildimage}} + tag: latest + registry: sonatype-docker-internal + when: + branch: + only: + - master + + push_image_neuxs_gitbranch_gitsha: + title: Push to Nexus Repo (gitbranch + gitsha) + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + registry: sonatype-docker-internal diff --git a/stable/twistlock-scan/scripts/twistlock.py b/stable/twistlock-scan/scripts/twistlock.py new file mode 100644 index 00000000..50510ebf --- /dev/null +++ b/stable/twistlock-scan/scripts/twistlock.py @@ -0,0 +1,195 @@ +import sys +import subprocess +import time +import os +import getopt +import ssl +import re + +def main(argv): + try: + st_scanner_jar = '/packages/nexus-iq-cli-1.38.0-02.jar' + tl_scanner_exec = '/packages/twistcli' + cf_metadata = os.environ.get('CF_METADATA') + docker_image_id = os.environ.get('DOCKER_IMAGE_ID') + st_application_id = os.environ.get('NEXUS_IQ_APPLICATION_ID') + st_url = os.environ.get('NEXUS_IQ_URL') + st_username = os.environ.get('NEXUS_IQ_USERNAME') + st_password = os.environ.get('NEXUS_IQ_PASSWORD') + st_stage = os.environ.get('NEXUS_IQ_STAGE', 'Build') + tl_console_hostname = os.environ.get('TL_CONSOLE_HOSTNAME') + tl_console_port = os.environ.get('TL_CONSOLE_PORT') + tl_console_username = os.environ.get('TL_CONSOLE_USERNAME') + tl_console_password = os.environ.get('TL_CONSOLE_PASSWORD') + tl_only = os.environ.get('TL_ONLY') + tl_tls_enabled = os.environ.get('TL_TLS_ENABLED') + tl_hash = os.environ.get('TL_HASH', 'sha1') + tl_include_package_files = os.environ.get('TL_INCLUDE_PACKAGE_FILES') + tl_upload = os.environ.get('TL_UPLOAD') + tl_details = os.environ.get('TL_DETAILS') + tl_only_fixed = os.environ.get('TL_ONLY_FIXED') + tl_compliance_threshold = os.environ.get('TL_COMPLIANCE_THRESHOLD') + tl_vulnerability_threshold = os.environ.get('TL_VULNERABILITY_THRESHOLD') + java_home = os.environ.get('JAVA_HOME', '/usr/lib/jvm/java-8-openjdk-amd64') + java_keystore_password = os.environ.get('JAVA_KEYSTORE_PASSWORD', 'changeit') + opts, args = getopt.getopt(argv,"h:c:i:a:j:u:p:s:t:E:C:P:U:X:Z:J:K:T:H:F:R:D:O:M:V:", + ["help", "docker_image_id=", "cf_metadata", "st_application_id=", "st_scanner_jar=", "st_url=", "st_username=", "st_password=", "st_stage=", + "tl_scanner_exec=", "tl_console_hostname", "tl_console_port", "tl_console_username=", "tl_console_password=", "tl_only", + "tl_tls_enabled", "tl_hash", "tl_include_package_files", "tl_upload", "tl_details", "tl_only_fixed", "tl_compliance_threshold", + "tl_vulnerability_threshold", "java_home=", "java_keystore_password" + ] + ) + except getopt.GetoptError: + print('Unrecognized Argument! See arguments list using -h or --help. Ex. twistlock.py --help') + sys.exit(2) + for opt, arg in opts: + if opt == ("h","--help"): + print('twistlock.py --arg value or twistlock.py -a value') + print('-c --cf_metadata - Adds scanner info to Docker image metadata for Codefresh builds') + print('-i --docker_image_id [DOCKER_IMAGE_ID] - Docker Image ID short or long IDs accepted') + print('-a --st_application_id [NEXUS_IQ_APPLICATION_ID] - Applications ID in Nexus IQ') + print('-j --st_scanner_jar - Location of nexus-iq-cli*.jar file') + print('-u --st_username [NEXUS_IQ_USERNAME] - Nexus IQ Username') + print('-p --st_password [NEXUS_IQ_PASSWORD] - Password for Nexus IQ Username') + print('-s --st_url [NEXUS_IQ_URL] - Sonatype URL must be HTTPS with Valid Cert') + print('-t --st_stage [NEXUS_IQ_STAGE] - Sonatype Stage') + print('-E --tl_scanner_exec - Location of twistlock-scanner executable') + print('-C --tl_console_hostname [TL_CONSOLE_HOSTNAME] - Hostname/IP for Twistlock Console') + print('-P --tl_console_port [TL_CONSOLE_PORT] - Twistock Console port') + print('-U --tl_console_username [TL_CONSOLE_USERNAME] - Twistlock Console Username') + print('-X --tl_console_password [TL_CONSOLE_PASSWORD] - Password for Twistlock Console Username') + print('-Z --tl_only [TL_ONLY] - Run a stand-alone Twistlock scan') + print('-T --tl_tls_enabled [TL_TLS_ENABLED] - Enabled TLS/HTTPS for Twistlock scan') + print('-H --tl_hash [TL_HASH] - Specifies the hashing algorithm. Supported values are md5, sha1, and sha256') + print('-F --tl_include_package_files [TL_INCLUDE_PACKAGE_FILES] - List all packages in the image') + print('-R --tl_upload [TL_UPLOAD] - Whether to upload the scan result') + print('-D --tl_details [TL_DETAILS] - Prints an itemized list of each vulnerability found by the scanner') + print('-O --tl_only_fixed [TL_ONLY_FIXED] - Reports just the vulnerabilities that have fixes available') + print('-M --tl_compliance_threshold [TL_COMPLIANCE_THRESHOLD] - Sets the minimum severity compliance issue that returns a fail exit code') + print('-V --tl_vulnerability_threshold [TL_VULNERABILITY_THRESHOLD] - Sets the minimum severity vulnerability that returns a fail exit code') + print('-J --java_home [JAVA_HOME] - Java Home Directory (no trailing /)') + print('-K --java_keystore_password [JAVA_KEYSTORE_PASSWORD] - Java Keystore Password') + sys.exit() + elif opt in ("-c", "--cf_metadata"): + cf_metadata = arg + elif opt in ("-i", "--docker_image_id"): + docker_image_id = arg + elif opt in ("-a", "--st_application_id"): + st_application_id = arg + elif opt in ("-j", "--st_scanner_jar"): + st_scanner_jar = arg + elif opt in ("-s", "--st_url"): + st_url = arg + elif opt in ("-u", "--st_username"): + st_username = arg + elif opt in ("-p", "--st_password"): + st_password = arg + elif opt in ("-t", "--st_stage"): + st_stage = arg + elif opt in ("-E", "--tl_scanner_exec"): + tl_scanner_exec = arg + elif opt in ("-C", "--tl_console_hostname"): + tl_console_hostname = arg + elif opt in ('-P', "--tl_console_port"): + tl_console_port = arg + elif opt in ("-U", "--tl_console_username"): + tl_console_username = arg + elif opt in ('-X', "--tl_console_password"): + tl_console_password = arg + elif opt in ('-Z', "--tl_only"): + tl_only = arg + elif opt in ('-T', "--tl_tls_enabled"): + tl_tls_enabled = arg + elif opt in ('-H', "--tl_hash"): + tl_hash = arg + elif opt in ('-F', "--tl_include_package_files"): + tl_include_package_files = arg + elif opt in ('-R', "--tl_upload"): + tl_upload = arg + elif opt in ('-D', "--tl_details"): + tl_details = arg + elif opt in ('-O', "--tl_only_fixed"): + tl_only_fixed = arg + elif opt in ('-M', "--tl_compliance_threshold"): + tl_compliance_threshold = arg + elif opt in ('-V', "--tl_vulnerability_threshold"): + tl_vulnerability_threshold = arg + elif opt in ('-J', "--java_home"): + java_home = arg + elif opt in ('-K', "--java_keystore_password"): + java_keystore_password = arg + + # Determine if TLS is required + if not (tl_only or tl_tls_enable): + # Download and store Twistlock Console site cert + cert = ssl.get_server_certificate((tl_console_hostname, tl_console_port)) + cert, file=open("twistlock.cer", "w") + + # Run stand-alone Twistlock Scan + if tl_only: + + # Determine Protocol + tl_console_protocol = 'https' if tl_tls_enabled else 'http' + + # Base twistcli commnad to scan images + twistcli_base_command = '/packages/twistcli images scan' + + # Required twistcli options to successfully scan image + twistcli_required_options = ("--address '{}://{}:{}' --user '{}' --password '{}' --hash '{}'" + .format(tl_console_protocol, tl_console_hostname, tl_console_port, tl_console_username, tl_console_password, tl_hash)) + + # Optional twistcli options + options = [] + if tl_include_package_files: + options.append("--include-package-files") + if tl_upload: + options.append("--upload") + if tl_details: + options.append("--details") + if tl_compliance_threshold: + options.append("--compliance-threshold '{}'".format(tl_compliance_threshold)) + if tl_vulnerability_threshold: + options.append("--vulnerability-threshold '{}'".format(tl_vulnerability_threshold)) + twistcli_optional_options = ' '.join(options) + + # Concatenate twistcli executable with command + twistcli_exec = ' '.join([twistcli_base_command, twistcli_required_options, twistcli_optional_options, docker_image_id]) + # Execute command but pipe stdout to variable and parse for Twistlock URL + if cf_metadata: + proc = subprocess.Popen(twistcli_exec, shell=True, stdout=subprocess.PIPE) + stdout = proc.communicate()[0].decode('utf-8').strip('\n') + tl_report_url = ''.join(re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', stdout)) + with open('/codefresh/volume/env_vars_to_export', 'a') as f: + print('Twistlock Report: ' + tl_report_url) + f.write('TL_REPORT_URL=' + tl_report_url) + f.close() + # Execute command and send stdout to console + else: + proc = subprocess.Popen(twistcli_exec, shell=True) + stdout, stderr = proc.communicate() + if proc.returncode != 0: + sys.exit(1) + + else: + + # Import site cert into java keystore + command = ['keytool -importcert -noprompt -file twistlock.cer -alias twistlock -storepass {} -keystore {}/jre/lib/security/cacerts' + .format(java_keystore_password, java_home) + ] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + + # Start Docker + command = ['for i in {1..5}; do service docker start && break || sleep 15; done'] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + + # Run Twistlock Scan and send file to Sonatype + command = ["java -cp {} com.sonatype.insight.scan.cli.TwistlockPolicyEvaluatorCli -i {} -a '{}:{}' -s '{}' --twistlock-scanner-executable {} --twistlock-console-url https://{}:{} --twistlock-console-username {} --twistlock-console-password '{}' --stage '{}' {}" + .format(st_scanner_jar, st_application_id, st_username, st_password, st_url, tl_scanner_exec, tl_console_hostname, tl_console_port, tl_console_username, tl_console_password, st_stage, docker_image_id) + ] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + +if __name__ == "__main__": + main(sys.argv[1:]) \ No newline at end of file From 9bd5ed7f5baea94d2889177f5cd362c4ec63f1b6 Mon Sep 17 00:00:00 2001 From: Dustin Van Buskirk Date: Sat, 27 Jan 2018 14:42:36 -0800 Subject: [PATCH 063/282] adding required plugin.yaml --- stable/twistlock-scan/plugin.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 stable/twistlock-scan/plugin.yaml diff --git a/stable/twistlock-scan/plugin.yaml b/stable/twistlock-scan/plugin.yaml new file mode 100644 index 00000000..e69de29b From 83c331621988751640e328acd4d9129e3e2d1ed3 Mon Sep 17 00:00:00 2001 From: Dustin Van Buskirk Date: Sat, 27 Jan 2018 15:01:27 -0800 Subject: [PATCH 064/282] adding content to plugin.yaml --- stable/twistlock-scan/plugin.yaml | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/stable/twistlock-scan/plugin.yaml b/stable/twistlock-scan/plugin.yaml index e69de29b..2aa31afd 100644 --- a/stable/twistlock-scan/plugin.yaml +++ b/stable/twistlock-scan/plugin.yaml @@ -0,0 +1,65 @@ +image: docker.io/sctechdev/docker-security-scanner +tag: master-c81e6d4 +version: 2.2 +description: Execute Twistlock image scan as build step +keywords: + - Twistlock 2.2 +home: https://hub.docker.com/r/sctechdev/docker-security-scanner/ +sources: + - https://github.com/SC-TechDev/docker-security-scanner +maintainers: + - name: Dustin Van Buskirk + email: dev@vanbuskirk.me + - name: Varun Tagore + email: rondevops@gmail.com +icon: A URL to an SVG or PNG image to be used as an icon (optional) +envs: + - name: CF_METADATA + type: required + description: Boolean; combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation + - name: TL_CONSOLE_HOSTNAME + type: required + description: Hostname or IP of Twistlock Console + - name: TL_CONSOLE_PORT + type: required + description: Port of Twistlock Console + - name: TL_CONSOLE_USERNAME + type: required + description: Username of Twistlock Console + - name: TL_CONSOLE_PASSWORD + type: required + description: Password of Twistlock Console User + - name: TL_ONLY + type: required + description: Twistlock Console Scan Only (No Nexus) + - name: TL_TLS_ENABLED + type: optional + description: Boolean; Enable TLS connection to Twistlock Console + - name: TL_HASH + type: optional + description: Hashing Algorithm to use + - name: TL_UPLOAD + type: optional + description: Upload report to Twistlock Console and return URL (Overrides all other options only returns URL) + - name: TL_DETAILS + type: optional + description: Prints an itemized list of each vulnerability found by the scanner + - name: TL_ONLY_FIXED + type: optional + description: reports just the vulnerabilites that have fixes available + - name: TL_COMPLIANCE_THRESHOLD + type: optional + description: [ low, medium, high ] sets the the minimal severity compliance issue that returns a fail exit code + - name: TL_VULNERABILITY_THRESHOLD + type: optional + description: [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code +volumes: + - name: /var/run/docker.sock:/var/run/docker.sock + required: true + description: Docker socket for DIND + - name: /var/lib/docker:/var/lib/docker + required: true + description: Docker lib access for DIND + - name: '${{CF_VOLUME_NAME}}:/codefresh/volume' + required: false + description: Volume required if setting Docker image metadata using Codefresh \ No newline at end of file From a3648fc018f7635c95d66bd0070382c658c2c22b Mon Sep 17 00:00:00 2001 From: Dustin Van Buskirk Date: Wed, 31 Jan 2018 10:06:26 -0800 Subject: [PATCH 065/282] need to update readme here to match plugin readme --- stable/helm/README.md | 68 ++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/stable/helm/README.md b/stable/helm/README.md index 77b6bf29..f4d1e24a 100644 --- a/stable/helm/README.md +++ b/stable/helm/README.md @@ -6,6 +6,18 @@ Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specifi Set required and optional environment variable and add the following step to your Codefresh pipeline: +Example Variables: + +The example below will run `helm upgrade` using Helm chart with the name `mychart` located in `https://helmrepo.codefresh.io/codefresh/helm` Helm chart repository using the `myrelease` Helm release name against `mycluster` Kubernetes cluster in the `mynamespace` Kubernetes Namespace. + +```text +CHART_NAME=mychart +RELEASE_NAME=myrelease +KUBE_CONTEXT=mycluster +NAMESPACE=mynamespace +CHART_REPO_URL=https://helmrepo.codefresh.io/codefresh/helm +``` + ```yaml --- version: '1.0' @@ -14,8 +26,16 @@ steps: ... - release_to_env: - image: codefresh/plugin-helm:2.7.2 + Helm Upgrade: + title: Helm Upgrade + image: 'codefresh/plugin-helm:2.8.0' + environment: + - CHART_NAME=${{CHART_NAME}} + - RELEASE_NAME=${{RELEASE_NAME}} + - KUBE_CONTEXT=${{KUBE_CONTEXT}} + - NAMESPACE=${{NAMESPACE}} + - DEBUG_CHART=${{DEBUG_CHART}} + - CHART_REPO_URL=${{CHART_REPO_URL}} ... @@ -23,35 +43,43 @@ steps: ## Environment Variables -- **required** `CHART_NAME` - Helm chart name -- **required** `RELEASE_NAME` - Helm release name -- **required** `KUBE_CONTEXT` - Kubernetes context to use -- `NAMESPACE` - target Kubernetes namespace -- `CHART_VERSION` - application chart version to install -- `CHART_REPO_URL` - Helm chart repository URL -- `DRY_RUN` - do a "dry run" installation (do not install anything, useful for Debug) -- `DEBUG` - print verbose install output -- `WAIT` - block step execution till installation completed and all Kubernetes resources are ready -- `TIMEOUT` - wait timeout (5min by default) +| Variables | Required | Default | Description | +|----------------|----------|---------|-----------------------------------------------------------------------------------------| +| CHART_NAME | YES | | Helm chart name | +| RELEASE_NAME | YES | | Helm release name | +| KUBE_CONTEXT | YES | | Kubernetes context to use (Custom Cluster Name in Codefresh) | +| NAMESPACE | NO | | Target Kubernetes namespace | +| CHART_VERSION | NO | | Helm chart version to install | +| CHART_REPO_URL | NO | | Helm chart repository URL (Required unless code repository contains Helm chart) | +| DRY_RUN | NO | | Do a "dry run" installation (do not install anything, useful for Debug) | +| DEBUG | NO | | Print verbose install output | +| WAIT | NO | | Block step execution till installation completed and all Kubernetes resources are ready | +| TIMEOUT | NO | 5 Min | Wait Timeout | ### Overriding Helm Variables Codefresh Helm plugin supports overriding Helm variables. -#### Naming Guide - -Prefix environment variable with `custom_` (or `CUSTOM_`) and replace any `.` character with `_`. +To supply value file, add an environment variable with the name prefix of `CUSTOMFILE_` (case *in*sensitive), and the value should point to an existing values file. +To override specific values, add an environment variable with the name prefix of `CUSTOM_` (case *in*sensitive), and replace any `.` characters in the name with `_`. The value should be the value for the variable. +Examples: ```text -# set ENV variable in Codefresh UI -custom_myimage_pullPolicy=Always +CUSTOM_myimage_pullPolicy=Always # Codefresh Helm plugin will add option below to the 'helm update --install' command --set myimage.pullPolicy=Always -# Another example -CUSTOM_redis_resources_requests_memory=256Mi +CUSTOMFILE_prod='values-prod.yaml' +# Codefresh Helm plugin will add option below to the 'helm update --install' command +--values values-prod.yaml +``` + +If a variable contains a `_`, replace the `_` character with `__`. + +```text +custom_env_open_STORAGE__AMAZON__BUCKET=my-s3-bucket # translates to ... ---set redis.resources.requests.memory=256Mi +--set env.open.STORAGE_AMAZON_BUCKET=my-s3-bucket ``` ## Kubernetes Configuration From 1e415db796bb59176069db1483f0adcb0b8010c0 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 21 Feb 2018 16:07:05 +0200 Subject: [PATCH 066/282] new helm plugin --- incubator/helm/.swp | Bin 0 -> 12288 bytes {stable => incubator}/helm/README.md | 98 ++++++++++++----------- incubator/helm/plugin.yaml | 37 +++++++++ stable/helm-legacy/.swp | Bin 0 -> 12288 bytes stable/{helm => helm-legacy}/NOTES.md | 0 stable/helm-legacy/README.md | 38 +++++++++ stable/{helm => helm-legacy}/plugin.yaml | 2 +- 7 files changed, 126 insertions(+), 49 deletions(-) create mode 100644 incubator/helm/.swp rename {stable => incubator}/helm/README.md (55%) create mode 100644 incubator/helm/plugin.yaml create mode 100644 stable/helm-legacy/.swp rename stable/{helm => helm-legacy}/NOTES.md (100%) create mode 100644 stable/helm-legacy/README.md rename stable/{helm => helm-legacy}/plugin.yaml (81%) diff --git a/incubator/helm/.swp b/incubator/helm/.swp new file mode 100644 index 0000000000000000000000000000000000000000..28879d2baa226aa7d23b0c5f20111d7fb67cac67 GIT binary patch literal 12288 zcmeI&K~BOz6b9hIl_o}w>|7zPsT4OZ>;lLb2o@4(jjqPh(nu_6(+&x^@dBR0Q+N#% zZ{ZnCe5I`-Nw*Tr-|#b;H^aQg5P$##AOHafKmY=NE+B&f zd!nveY3J>9EUb*_6axex009U<00Izz00bZa0SG_<0vjk`IgIV@GuEQSzyD{?{~t7e zr@T^LD9@C8N}Cez4Jdb%4&{PUp%f{fdmD&=TZRAxAOHafKmY;|fB*y_0D*rlU{53I zPu#IL(#p!I>qPV_v)t;+%JP(rW`Q5d($8l_ZTZY!%a_zpNU6EbqNS2F&W>oB1EZ&l zTk)thtT3x42aB1QYp(BS)sETVqS@;j{Kn80|HGGRw$|rYyguNfTi3Z3ewUlAdf!Nj Hw#vQ$=DBjh literal 0 HcmV?d00001 diff --git a/stable/helm/README.md b/incubator/helm/README.md similarity index 55% rename from stable/helm/README.md rename to incubator/helm/README.md index f4d1e24a..7e3de486 100644 --- a/stable/helm/README.md +++ b/incubator/helm/README.md @@ -1,12 +1,59 @@ # Codefresh Helm Plugin -Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified (by context) Kubernetes cluster. +Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified Kubernetes cluster. ## Usage -Set required and optional environment variable and add the following step to your Codefresh pipeline: +Set required and optional environment variable and add the following step to your Codefresh pipeline like so: -Example Variables: +```yaml +Helm Upgrade: + image: 'codefresh/plugin-helm:2.8.0' +``` + +## Environment Variables + +Name|Required|Description +---|---|--- +KUBE_CONTEXT|required|Kubernetes context to use (the name of the cluster as configured in Codefresh) +CHART_NAME|required|Helm chart name to release (path to chart folder, or name of packaged chart) +RELEASE_NAME|required|Helm release name +NAMESPACE|required|target Kubernetes namespace +TILLER_NAMESPACE|required|Kubernetes namespace where tiller is at +CHART_VERSION|required|application chart version to install +CHART_REPO_URL|required|Helm chart repository URL (overriden by injected Helm repository context) +CUSTOMFILE_|optional|Values file to provide to Helm (as --file). see usage information below. +CUSTOM_|optional|Value to provide to Helm (as --set). see usage information below. + +## Helm Values + +To supply value file, add an environment variable with the name prefix of `CUSTOMFILE_` (case *in*sensitive), and the value should point to an existing values file. +To override specific values, add an environment variable with the name prefix of `CUSTOM_` (case *in*sensitive), and replace any `.` characters in the name with `_`. The value should be the value for the variable. + +Examples: +```text +CUSTOM_myimage_pullPolicy=Always +# Codefresh Helm plugin will add option below to the 'helm update --install' command +--set myimage.pullPolicy=Always + +CUSTOMFILE_prod='values-prod.yaml' +# Codefresh Helm plugin will add option below to the 'helm update --install' command +--values values-prod.yaml +``` + +If a variable contains a `_`, replace the `_` character with `__`. + +```text +custom_env_open_STORAGE__AMAZON__BUCKET=my-s3-bucket +# translates to ... +--set env.open.STORAGE_AMAZON_BUCKET=my-s3-bucket +``` + +## Kubernetes Configuration + +Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. + +## Example The example below will run `helm upgrade` using Helm chart with the name `mychart` located in `https://helmrepo.codefresh.io/codefresh/helm` Helm chart repository using the `myrelease` Helm release name against `mycluster` Kubernetes cluster in the `mynamespace` Kubernetes Namespace. @@ -40,48 +87,3 @@ steps: ... ``` - -## Environment Variables - -| Variables | Required | Default | Description | -|----------------|----------|---------|-----------------------------------------------------------------------------------------| -| CHART_NAME | YES | | Helm chart name | -| RELEASE_NAME | YES | | Helm release name | -| KUBE_CONTEXT | YES | | Kubernetes context to use (Custom Cluster Name in Codefresh) | -| NAMESPACE | NO | | Target Kubernetes namespace | -| CHART_VERSION | NO | | Helm chart version to install | -| CHART_REPO_URL | NO | | Helm chart repository URL (Required unless code repository contains Helm chart) | -| DRY_RUN | NO | | Do a "dry run" installation (do not install anything, useful for Debug) | -| DEBUG | NO | | Print verbose install output | -| WAIT | NO | | Block step execution till installation completed and all Kubernetes resources are ready | -| TIMEOUT | NO | 5 Min | Wait Timeout | - -### Overriding Helm Variables - -Codefresh Helm plugin supports overriding Helm variables. - -To supply value file, add an environment variable with the name prefix of `CUSTOMFILE_` (case *in*sensitive), and the value should point to an existing values file. -To override specific values, add an environment variable with the name prefix of `CUSTOM_` (case *in*sensitive), and replace any `.` characters in the name with `_`. The value should be the value for the variable. - -Examples: -```text -CUSTOM_myimage_pullPolicy=Always -# Codefresh Helm plugin will add option below to the 'helm update --install' command ---set myimage.pullPolicy=Always - -CUSTOMFILE_prod='values-prod.yaml' -# Codefresh Helm plugin will add option below to the 'helm update --install' command ---values values-prod.yaml -``` - -If a variable contains a `_`, replace the `_` character with `__`. - -```text -custom_env_open_STORAGE__AMAZON__BUCKET=my-s3-bucket -# translates to ... ---set env.open.STORAGE_AMAZON_BUCKET=my-s3-bucket -``` - -## Kubernetes Configuration - -Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. diff --git a/incubator/helm/plugin.yaml b/incubator/helm/plugin.yaml new file mode 100644 index 00000000..837260a6 --- /dev/null +++ b/incubator/helm/plugin.yaml @@ -0,0 +1,37 @@ +image: codefresh/cfstep-helm +tag: 2.8.1 +version: 1.0.0 +description: Release a Helm chart (update or install) +keywords: + - helm + - kubernetes +home: https://github.com/codefresh-io/pugins/tree/master/incubator/helm +sources: + - https://github.com/codefresh-contrib/cfplugin-step +maintainers: # (optional) + - name: Itay Shakury + email: itaysk@codefresh.io +icon: https://avatars0.githubusercontent.com/u/29493517?v=4&s=400 +envs: + - name: KUBE_CONTEXT + type: required + description: Kubernetes context to use (the name of the cluster as configured in Codefresh) + - name: CHART_NAME + type: required + description: Helm chart name to release (path to chart folder, or name of packaged chart) + - name: RELEASE_NAME + description: Helm release name + - name: NAMESPACE + description: target Kubernetes namespace + - name: TILLER_NAMESPACE + description: Kubernetes namespace where tiller is at + - name: CHART_VERSION + description: application chart version to install + - name: CHART_REPO_URL + description: Helm chart repository URL (overriden by injected Helm repository context) + - name: CUSTOMFILE_ + description: Values file to provide to Helm (as --file). see usage information below. + - name: CUSTOM_ + description: Value to provide to Helm (as --set). see usage information below. +context: + - kind: kubernetes diff --git a/stable/helm-legacy/.swp b/stable/helm-legacy/.swp new file mode 100644 index 0000000000000000000000000000000000000000..28879d2baa226aa7d23b0c5f20111d7fb67cac67 GIT binary patch literal 12288 zcmeI&K~BOz6b9hIl_o}w>|7zPsT4OZ>;lLb2o@4(jjqPh(nu_6(+&x^@dBR0Q+N#% zZ{ZnCe5I`-Nw*Tr-|#b;H^aQg5P$##AOHafKmY=NE+B&f zd!nveY3J>9EUb*_6axex009U<00Izz00bZa0SG_<0vjk`IgIV@GuEQSzyD{?{~t7e zr@T^LD9@C8N}Cez4Jdb%4&{PUp%f{fdmD&=TZRAxAOHafKmY;|fB*y_0D*rlU{53I zPu#IL(#p!I>qPV_v)t;+%JP(rW`Q5d($8l_ZTZY!%a_zpNU6EbqNS2F&W>oB1EZ&l zTk)thtT3x42aB1QYp(BS)sETVqS@;j{Kn80|HGGRw$|rYyguNfTi3Z3ewUlAdf!Nj Hw#vQ$=DBjh literal 0 HcmV?d00001 diff --git a/stable/helm/NOTES.md b/stable/helm-legacy/NOTES.md similarity index 100% rename from stable/helm/NOTES.md rename to stable/helm-legacy/NOTES.md diff --git a/stable/helm-legacy/README.md b/stable/helm-legacy/README.md new file mode 100644 index 00000000..e70cf24d --- /dev/null +++ b/stable/helm-legacy/README.md @@ -0,0 +1,38 @@ +> There is a new Helm plugin with added capabilities, we are keeping this plugin as is for backward-compatibility. +The new plugin can be found here: [/incubator/helm](https://github.com/codefresh-io/plugins/tree/master/incubator/helm) + +# Codefresh Helm Plugin + +Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified (by context) Kubernetes cluster. + +## Usage + +Set required and optional environment variable and add the following step to your Codefresh pipeline: + +```yaml +--- +version: '1.0' + +steps: + + ... + + release_to_env: + image: codefresh/plugin-helm:2.7.2 + + ... + +``` + +## Environment Variables + +- **required** `CHART_NAME` - Helm chart name +- **required** `RELEASE_NAME` - Helm release name +- **required** `KUBE_CONTEXT` - Kubernetes context to use (cluster name from Codefresh-Kubernetes integration) +- `NAMESPACE` - target Kubernetes namespace +- `CHART_VERSION` - application chart version to install +- `CHART_REPO_URL` - Helm chart repository URL +- `DRY_RUN` - do a "dry run" installation (do not install anything, useful for Debug) +- `DEBUG` - print verbose install output +- `WAIT` - block step execution till installation completed and all Kubernetes resources are ready +- `TIMEOUT` - wait timeout (5min by default) diff --git a/stable/helm/plugin.yaml b/stable/helm-legacy/plugin.yaml similarity index 81% rename from stable/helm/plugin.yaml rename to stable/helm-legacy/plugin.yaml index 774cea96..fed4a017 100644 --- a/stable/helm/plugin.yaml +++ b/stable/helm-legacy/plugin.yaml @@ -1,7 +1,7 @@ image: codefresh/plugin-helm tag: 2.7.2 version: 1.1.0 -description: Release a Helm chart (update or install) +description: Release a Helm chart (update or install). There is a new Helm plugin with added capabilities, we are keeping this plugin as is for backward-compatibility. The new plugin is at /incubator/helm (https://github.com/codefresh-io/plugins/tree/master/incubator/helm) keywords: - helm - kubernetes From f6f353721765b42a54cca33c0451d904db1c1685 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 21 Feb 2018 16:16:46 +0200 Subject: [PATCH 067/282] new helm readme change --- incubator/helm/.swp | Bin 12288 -> 0 bytes incubator/helm/README.md | 7 ++++++- incubator/helm/plugin.yaml | 1 - 3 files changed, 6 insertions(+), 2 deletions(-) delete mode 100644 incubator/helm/.swp diff --git a/incubator/helm/.swp b/incubator/helm/.swp deleted file mode 100644 index 28879d2baa226aa7d23b0c5f20111d7fb67cac67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI&K~BOz6b9hIl_o}w>|7zPsT4OZ>;lLb2o@4(jjqPh(nu_6(+&x^@dBR0Q+N#% zZ{ZnCe5I`-Nw*Tr-|#b;H^aQg5P$##AOHafKmY=NE+B&f zd!nveY3J>9EUb*_6axex009U<00Izz00bZa0SG_<0vjk`IgIV@GuEQSzyD{?{~t7e zr@T^LD9@C8N}Cez4Jdb%4&{PUp%f{fdmD&=TZRAxAOHafKmY;|fB*y_0D*rlU{53I zPu#IL(#p!I>qPV_v)t;+%JP(rW`Q5d($8l_ZTZY!%a_zpNU6EbqNS2F&W>oB1EZ&l zTk)thtT3x42aB1QYp(BS)sETVqS@;j{Kn80|HGGRw$|rYyguNfTi3Z3ewUlAdf!Nj Hw#vQ$=DBjh diff --git a/incubator/helm/README.md b/incubator/helm/README.md index 7e3de486..059ea911 100644 --- a/incubator/helm/README.md +++ b/incubator/helm/README.md @@ -8,7 +8,7 @@ Set required and optional environment variable and add the following step to you ```yaml Helm Upgrade: - image: 'codefresh/plugin-helm:2.8.0' + image: 'codefresh/cfstep-helm:2.8.0' ``` ## Environment Variables @@ -53,6 +53,11 @@ custom_env_open_STORAGE__AMAZON__BUCKET=my-s3-bucket Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. +## Helm Reposiroty Configuration + +To install a chart from a private repository, add your repository in Codefresh, and inject it into the pipeline by selecting it under "Environment Variables" -> "Import from shared configuration". +Then you can simple select the chart with the `CHART_NAME` variable. No additional configuration needed. + ## Example The example below will run `helm upgrade` using Helm chart with the name `mychart` located in `https://helmrepo.codefresh.io/codefresh/helm` Helm chart repository using the `myrelease` Helm release name against `mycluster` Kubernetes cluster in the `mynamespace` Kubernetes Namespace. diff --git a/incubator/helm/plugin.yaml b/incubator/helm/plugin.yaml index 837260a6..53d2c471 100644 --- a/incubator/helm/plugin.yaml +++ b/incubator/helm/plugin.yaml @@ -1,5 +1,4 @@ image: codefresh/cfstep-helm -tag: 2.8.1 version: 1.0.0 description: Release a Helm chart (update or install) keywords: From c0f08c34a34120a406a1e84d892583bdfc084f43 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 28 Feb 2018 13:31:32 +0200 Subject: [PATCH 068/282] update example to avoid confision with private repos --- incubator/helm/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/incubator/helm/README.md b/incubator/helm/README.md index 059ea911..bc6caea1 100644 --- a/incubator/helm/README.md +++ b/incubator/helm/README.md @@ -1,6 +1,6 @@ # Codefresh Helm Plugin -Use Codefresh [Helm](https://helm.sh) plugin to deploy a Helm chart into specified Kubernetes cluster. +You can always use the `helm` command line in a freestyle step, like any other command line tool, but for Helm, You might want to check out out helm deployment step. ## Usage @@ -44,9 +44,9 @@ CUSTOMFILE_prod='values-prod.yaml' If a variable contains a `_`, replace the `_` character with `__`. ```text -custom_env_open_STORAGE__AMAZON__BUCKET=my-s3-bucket +custom_env_open_SOME__VAR__REF=myvalue # translates to ... ---set env.open.STORAGE_AMAZON_BUCKET=my-s3-bucket +--set env.open.SOME_VAR_REF=myvalue ``` ## Kubernetes Configuration From 4815cb055146d7fe211bcc3d980c67ca7a6ab03d Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Thu, 1 Mar 2018 12:12:26 +0200 Subject: [PATCH 069/282] clair --- incubator/clair/README.md | 29 +++++++++++++++++++++++++++++ incubator/clair/plugin.yaml | 19 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 incubator/clair/README.md create mode 100644 incubator/clair/plugin.yaml diff --git a/incubator/clair/README.md b/incubator/clair/README.md new file mode 100644 index 00000000..50520b3d --- /dev/null +++ b/incubator/clair/README.md @@ -0,0 +1,29 @@ +# Codefresh Clair Plugin + +Clair is an open source Docker Image securitu scanning server. For more information see here: https://github.com/coreos/clair/ + +There's an open source CLI tool for clair, called 'klar' that you can use to integrate secrurity scan into your pipeline. More info on klar: https://github.com/optiopay/klar + +## Usage + +Set environment variables described below, and run the command with the given image to scan: + +```yaml +scan: + image: 'codefresh/klar:master' + commands: + - /klar codefresh/helm:2.8.1 +``` + +(in this example we are scanning the helm image tagged 2.8.1 under codefresh organization in Docker Hub) + +## Environment Variables + +The minimal setup is described below. Please see Klar documentation for additional configuration. + +Name|Required|Description +---|---|--- +CLAIR_ADDR|Yes|The address of the clair server +DOCKER_USER|No|Docker registry account name +DOCKER_PASSWORD|No|Docker registry account password + diff --git a/incubator/clair/plugin.yaml b/incubator/clair/plugin.yaml new file mode 100644 index 00000000..4c8e1d10 --- /dev/null +++ b/incubator/clair/plugin.yaml @@ -0,0 +1,19 @@ +image: codefresh/klar:master +version: 1.0.0 +description: Scan an image with Clair +keywords: + - clair +home: https://github.com/codefresh-io/pugins/tree/master/incubator/clair +sources: + - https://github.com/optiopay/klar +envs: + - name: CLAIR_ADDR + type: required + description: The address of the clair server + - name: DOCKER_USER + type: required + description: Docker registry account name. + - name: DOCKER_PASSWORD + description: Docker registry account password. +context: + - kind: Clair From 19d56c2ce4700c2e50abb3d6146146df95546543 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 7 Mar 2018 20:29:01 +0200 Subject: [PATCH 070/282] catalog update --- CATALOG.md | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/CATALOG.md b/CATALOG.md index 7f37fd02..ba259f6e 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -2,20 +2,25 @@ ## Stable Plugins -| Plugin | Author | Description | Tags | -| ----------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| [Codefresh Cli](stable/codefresh-cli/README.md) | @itai-codefresh | Operate on Codefresh resources | `cli` `codefresh` | -| [Deploy Helm](stable/helm/README.md) | @alexeil-led | Deploy a Helm chart | `kubernetes` `helm` | -| [Slack](stable/slack/README.md) | @olegs-codefresh | Send message to slack | `slack` `notify` | -| [Deploy to ECS](stable/ecs-deploy/README.md) | @verchol | Deploy docker image to ECS | `ecs` `deploy` `containers` `aws` | -| [Deploy Kompose](stable/kompose/README.md) | @alexei-led | Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](stable/github-pr/README.MD) | @nick-codefresh | Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps | Run jenkins job from codefresh pipeline | `jenkins` `job` | +| Plugin| Author| Description| Tags| +| --- | --- | --- | --- | +| [Codefresh Cli](stable/codefresh-cli/README.md) | @itai-codefresh | Operate on Codefresh resources | `cli` `codefresh`| +| [Deploy Helm](stable/helm-legacy/README.md)| @alexeil-led| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| +| [Slack](stable/slack/README.md)| @olegs-codefresh | Send message to slack| `slack` `notify`| +| [Deploy to ECS](stable/ecs-deploy/README.md)| @verchol| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | +| [Deploy Kompose](stable/kompose/README.md)| @alexei-led| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [GitHub PR](stable/github-pr/README.MD)| @nick-codefresh | Creates pull request to GitHub | `github` | +| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](stable/dcos-app-deploy/README.md) | @eugene-codefresh | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | -| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines | `jira` `workflow` +| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| +| [release to npm](stable/release-to-NPM/README.md) | @ziv-codefresh | Release npm modules from a pipeline | `npm` | +| [Twistlock](stable/twistlock-scan) | @dustinvanbuskirk | Security scanning of docker images using Twistlock | `security` | + ## Incubator Plugins -| Plugin | Description | Tags | -| ---------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh | `docker` `codefresh` | -| [Deploy Kompose](incubator/kompose/README.md) | Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | +| Plugin| Description| Tags| +| --- | --- | --- | +| [Helm](incubator/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| +| [Clair](incubator/clair/README.md) | Security scanning of Docker images using Clair | `security` | +| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| +| [Deploy Kompose](incubator/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | From a10e413b130238c71882a9dda5d6f03b4624df86 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 14 Mar 2018 17:35:44 +0200 Subject: [PATCH 071/282] CMD_PS --- incubator/helm/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/incubator/helm/README.md b/incubator/helm/README.md index bc6caea1..6bf9eb92 100644 --- a/incubator/helm/README.md +++ b/incubator/helm/README.md @@ -24,6 +24,7 @@ CHART_VERSION|required|application chart version to install CHART_REPO_URL|required|Helm chart repository URL (overriden by injected Helm repository context) CUSTOMFILE_|optional|Values file to provide to Helm (as --file). see usage information below. CUSTOM_|optional|Value to provide to Helm (as --set). see usage information below. +CMD_PS|optional|Command Postscript - this will be appended to the command string. Can be used to set additional parameters supported by the command but not exposed as variables. ## Helm Values From 4de36cdeb978c9e88b1177b12031e61e7a63ab8d Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Thu, 26 Apr 2018 14:14:29 +0300 Subject: [PATCH 072/282] Update README.md --- incubator/helm/README.md | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/incubator/helm/README.md b/incubator/helm/README.md index 6bf9eb92..18436de0 100644 --- a/incubator/helm/README.md +++ b/incubator/helm/README.md @@ -58,38 +58,3 @@ Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kub To install a chart from a private repository, add your repository in Codefresh, and inject it into the pipeline by selecting it under "Environment Variables" -> "Import from shared configuration". Then you can simple select the chart with the `CHART_NAME` variable. No additional configuration needed. - -## Example - -The example below will run `helm upgrade` using Helm chart with the name `mychart` located in `https://helmrepo.codefresh.io/codefresh/helm` Helm chart repository using the `myrelease` Helm release name against `mycluster` Kubernetes cluster in the `mynamespace` Kubernetes Namespace. - -```text -CHART_NAME=mychart -RELEASE_NAME=myrelease -KUBE_CONTEXT=mycluster -NAMESPACE=mynamespace -CHART_REPO_URL=https://helmrepo.codefresh.io/codefresh/helm -``` - -```yaml ---- -version: '1.0' - -steps: - - ... - - Helm Upgrade: - title: Helm Upgrade - image: 'codefresh/plugin-helm:2.8.0' - environment: - - CHART_NAME=${{CHART_NAME}} - - RELEASE_NAME=${{RELEASE_NAME}} - - KUBE_CONTEXT=${{KUBE_CONTEXT}} - - NAMESPACE=${{NAMESPACE}} - - DEBUG_CHART=${{DEBUG_CHART}} - - CHART_REPO_URL=${{CHART_REPO_URL}} - - ... - -``` From 3e3445cb8cb7f5268deb1f578ef7439ae8fdf7fe Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Fri, 4 May 2018 21:39:43 +0300 Subject: [PATCH 073/282] doc link --- incubator/helm/README.md | 61 +--------------------------------------- 1 file changed, 1 insertion(+), 60 deletions(-) diff --git a/incubator/helm/README.md b/incubator/helm/README.md index 18436de0..02c900c6 100644 --- a/incubator/helm/README.md +++ b/incubator/helm/README.md @@ -1,60 +1 @@ -# Codefresh Helm Plugin - -You can always use the `helm` command line in a freestyle step, like any other command line tool, but for Helm, You might want to check out out helm deployment step. - -## Usage - -Set required and optional environment variable and add the following step to your Codefresh pipeline like so: - -```yaml -Helm Upgrade: - image: 'codefresh/cfstep-helm:2.8.0' -``` - -## Environment Variables - -Name|Required|Description ----|---|--- -KUBE_CONTEXT|required|Kubernetes context to use (the name of the cluster as configured in Codefresh) -CHART_NAME|required|Helm chart name to release (path to chart folder, or name of packaged chart) -RELEASE_NAME|required|Helm release name -NAMESPACE|required|target Kubernetes namespace -TILLER_NAMESPACE|required|Kubernetes namespace where tiller is at -CHART_VERSION|required|application chart version to install -CHART_REPO_URL|required|Helm chart repository URL (overriden by injected Helm repository context) -CUSTOMFILE_|optional|Values file to provide to Helm (as --file). see usage information below. -CUSTOM_|optional|Value to provide to Helm (as --set). see usage information below. -CMD_PS|optional|Command Postscript - this will be appended to the command string. Can be used to set additional parameters supported by the command but not exposed as variables. - -## Helm Values - -To supply value file, add an environment variable with the name prefix of `CUSTOMFILE_` (case *in*sensitive), and the value should point to an existing values file. -To override specific values, add an environment variable with the name prefix of `CUSTOM_` (case *in*sensitive), and replace any `.` characters in the name with `_`. The value should be the value for the variable. - -Examples: -```text -CUSTOM_myimage_pullPolicy=Always -# Codefresh Helm plugin will add option below to the 'helm update --install' command ---set myimage.pullPolicy=Always - -CUSTOMFILE_prod='values-prod.yaml' -# Codefresh Helm plugin will add option below to the 'helm update --install' command ---values values-prod.yaml -``` - -If a variable contains a `_`, replace the `_` character with `__`. - -```text -custom_env_open_SOME__VAR__REF=myvalue -# translates to ... ---set env.open.SOME_VAR_REF=myvalue -``` - -## Kubernetes Configuration - -Add Kubernetes integration to Codefresh: `> Account Settings > Integration > Kubernetes`. From now on, you can use added Kubernetes cluster in Codefresh pipeline, addressing its context by the name you see in `Clusters` menu. - -## Helm Reposiroty Configuration - -To install a chart from a private repository, add your repository in Codefresh, and inject it into the pipeline by selecting it under "Environment Variables" -> "Import from shared configuration". -Then you can simple select the chart with the `CHART_NAME` variable. No additional configuration needed. +See documentation here: [https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/](https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/) From f335a0f24fb5f7ba11341e9c2d3b338fe72db330 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:34:46 +0300 Subject: [PATCH 074/282] reorg --- CATALOG.md | 26 ------ README.md | 84 +++++------------- {incubator => plugins}/clair/README.md | 0 {incubator => plugins}/clair/plugin.yaml | 0 {stable => plugins}/codefresh-cli/NOTES.md | 0 {stable => plugins}/codefresh-cli/README.md | 0 {stable => plugins}/codefresh-cli/plugin.yaml | 0 {stable => plugins}/dcos-app-deploy/NOTES.md | 0 {stable => plugins}/dcos-app-deploy/README.md | 0 .../dcos-app-deploy/plugin.yaml | 0 .../docker-service/README.md | 0 .../docker-service/plugin.yaml | 0 {stable => plugins}/ecs-deploy/README.md | 0 {stable => plugins}/ecs-deploy/plugin.yaml | 0 {stable => plugins}/github-pr/README.MD | 0 {stable => plugins}/github-pr/plugin.yaml | 0 {stable => plugins}/helm-legacy/.swp | Bin {stable => plugins}/helm-legacy/NOTES.md | 0 {stable => plugins}/helm-legacy/README.md | 0 {stable => plugins}/helm-legacy/plugin.yaml | 0 {incubator => plugins}/helm/README.md | 0 {incubator => plugins}/helm/plugin.yaml | 0 .../import-docker-images/README.md | 0 .../import-docker-images/plugin.yaml | 0 {stable => plugins}/jira/NOTES.md | 0 {stable => plugins}/jira/README.md | 0 {stable => plugins}/jira/plugin.yaml | 0 {stable => plugins}/kompose/README.md | 0 .../kompose/example/codefresh.yaml | 0 .../kompose/example/docker-compose.yaml | 0 {stable => plugins}/kompose/plugin.yaml | 0 {stable => plugins}/relese-to-NPM/NOTES.md | 0 {stable => plugins}/relese-to-NPM/README.md | 0 {stable => plugins}/relese-to-NPM/plugin.yaml | 0 {stable => plugins}/run-jenkins-job/README.md | 0 .../run-jenkins-job/plugin.yaml | 0 {stable => plugins}/slack/NOTES.md | 0 {stable => plugins}/slack/README.md | 0 {stable => plugins}/slack/plugin.yaml | 0 {stable => plugins}/twistlock-scan/Dockerfile | 0 {stable => plugins}/twistlock-scan/LICENSE.md | 0 {stable => plugins}/twistlock-scan/README.md | 0 .../twistlock-scan/codefresh.yml | 0 .../twistlock-scan/plugin.yaml | 0 .../twistlock-scan/scripts/twistlock.py | 0 45 files changed, 24 insertions(+), 86 deletions(-) delete mode 100644 CATALOG.md rename {incubator => plugins}/clair/README.md (100%) rename {incubator => plugins}/clair/plugin.yaml (100%) rename {stable => plugins}/codefresh-cli/NOTES.md (100%) rename {stable => plugins}/codefresh-cli/README.md (100%) rename {stable => plugins}/codefresh-cli/plugin.yaml (100%) rename {stable => plugins}/dcos-app-deploy/NOTES.md (100%) rename {stable => plugins}/dcos-app-deploy/README.md (100%) rename {stable => plugins}/dcos-app-deploy/plugin.yaml (100%) rename {incubator => plugins}/docker-service/README.md (100%) rename {incubator => plugins}/docker-service/plugin.yaml (100%) rename {stable => plugins}/ecs-deploy/README.md (100%) rename {stable => plugins}/ecs-deploy/plugin.yaml (100%) rename {stable => plugins}/github-pr/README.MD (100%) rename {stable => plugins}/github-pr/plugin.yaml (100%) rename {stable => plugins}/helm-legacy/.swp (100%) rename {stable => plugins}/helm-legacy/NOTES.md (100%) rename {stable => plugins}/helm-legacy/README.md (100%) rename {stable => plugins}/helm-legacy/plugin.yaml (100%) rename {incubator => plugins}/helm/README.md (100%) rename {incubator => plugins}/helm/plugin.yaml (100%) rename {incubator => plugins}/import-docker-images/README.md (100%) rename {incubator => plugins}/import-docker-images/plugin.yaml (100%) rename {stable => plugins}/jira/NOTES.md (100%) rename {stable => plugins}/jira/README.md (100%) rename {stable => plugins}/jira/plugin.yaml (100%) rename {stable => plugins}/kompose/README.md (100%) rename {stable => plugins}/kompose/example/codefresh.yaml (100%) rename {stable => plugins}/kompose/example/docker-compose.yaml (100%) rename {stable => plugins}/kompose/plugin.yaml (100%) rename {stable => plugins}/relese-to-NPM/NOTES.md (100%) rename {stable => plugins}/relese-to-NPM/README.md (100%) rename {stable => plugins}/relese-to-NPM/plugin.yaml (100%) rename {stable => plugins}/run-jenkins-job/README.md (100%) rename {stable => plugins}/run-jenkins-job/plugin.yaml (100%) rename {stable => plugins}/slack/NOTES.md (100%) rename {stable => plugins}/slack/README.md (100%) rename {stable => plugins}/slack/plugin.yaml (100%) rename {stable => plugins}/twistlock-scan/Dockerfile (100%) rename {stable => plugins}/twistlock-scan/LICENSE.md (100%) rename {stable => plugins}/twistlock-scan/README.md (100%) rename {stable => plugins}/twistlock-scan/codefresh.yml (100%) rename {stable => plugins}/twistlock-scan/plugin.yaml (100%) rename {stable => plugins}/twistlock-scan/scripts/twistlock.py (100%) diff --git a/CATALOG.md b/CATALOG.md deleted file mode 100644 index ba259f6e..00000000 --- a/CATALOG.md +++ /dev/null @@ -1,26 +0,0 @@ -# Plugin Catalog - -## Stable Plugins - -| Plugin| Author| Description| Tags| -| --- | --- | --- | --- | -| [Codefresh Cli](stable/codefresh-cli/README.md) | @itai-codefresh | Operate on Codefresh resources | `cli` `codefresh`| -| [Deploy Helm](stable/helm-legacy/README.md)| @alexeil-led| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| -| [Slack](stable/slack/README.md)| @olegs-codefresh | Send message to slack| `slack` `notify`| -| [Deploy to ECS](stable/ecs-deploy/README.md)| @verchol| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | -| [Deploy Kompose](stable/kompose/README.md)| @alexei-led| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](stable/github-pr/README.MD)| @nick-codefresh | Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)|@vadim-codefresh, @jennyps| Run jenkins job from codefresh pipeline| `jenkins` `job`| -| [Deploy to DCOS](stable/dcos-app-deploy/README.md) | @eugene-codefresh | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | -| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| -| [release to npm](stable/release-to-NPM/README.md) | @ziv-codefresh | Release npm modules from a pipeline | `npm` | -| [Twistlock](stable/twistlock-scan) | @dustinvanbuskirk | Security scanning of docker images using Twistlock | `security` | - -## Incubator Plugins - -| Plugin| Description| Tags| -| --- | --- | --- | -| [Helm](incubator/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| -| [Clair](incubator/clair/README.md) | Security scanning of Docker images using Clair | `security` | -| [Import Docker Images](incubator/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| -| [Deploy Kompose](incubator/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | diff --git a/README.md b/README.md index 3711b872..2af0f64d 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,24 @@ -# Codefresh Plugins - -Use this repository to submit official Plugins for Codefresh. Plugins are curated automated step definitions for Codefresh. For more information about using Codefresh, see its -[documentation](https://docs.codefresh.io). - -## How do I install these plugins? - -Codefresh Plugins are available as plain Docker images. As long as Plugin Docker image is accessible, Codefresh can use it for its pipelines. - -## How do I use plugins from the Incubator repository? - -*TBD* - -## Codefresh Plugin Format - -Take a look at the [example plugin](#) for reference when you're writing your first few plugins. - -The Plugin folder must contain `plugin.yaml` and `README.md` files. - -Before contributing a Plugin, become familiar with the format. Note that the project is still under active development and the format may still evolve a bit. - -## Repository Structure - -This GitHub repository contains the source for the packaged and versioned plugins released in the [`gs://codefresh-plugins` Google Storage bucket](https://console.cloud.google.com/storage/browser/codefresh-plugins/) (the Plugins Repository). - -The Plugins in the `stable/` directory in the master branch of this repository match the latest packaged Plugins in the Plugin Repository, though there may be previous versions of a Plugin available in that Plugin Repository. - -The purpose of this repository is to provide a place for maintaining and contributing official Plugins, with CI processes in place for managing the releasing of Plugins into the Plugin Repository. - -The Plugins in this repository are organized into two folders: -* stable -* incubator - -Stable Plugins meet the criteria in the [technical requirements](CONTRIBUTING.md#technical-requirements). - -Incubator Plugins are those that do not meet these criteria. Having the incubator folder allows plugins to be shared and improved on until they are ready to be moved into the stable folder. The plugins in the `incubator/` directory can be found in the [`gs://codefresh-plugins-incubator` Google Storage Bucket](https://console.cloud.google.com/storage/browser/codefresh-plugins-incubator). - -In order to get a Plugin from incubator to stable, Plugin maintainers should open a pull request that moves the plugin folder. - -## Contributing a Plugin - -We'd love for you to contribute a Plugin that provides a useful automated step for Codefresh. Please read our [Contribution Guide](CONTRIBUTING.md) for more information on how you can contribute Plugins. - -## Review Process - -The following outlines the review procedure used by the Plugin repository maintainers. Github labels are used to indicate state change during the review process. - -* ***AWAITING REVIEW*** - Initial triage which indicates that the PR is ready for review by the maintainers team. All e2e tests must pass in-order to move to this state -* ***CHANGES NEEDED*** - Review completed by at least one maintainer and changes needed by contributor (explicit even when using the review feature of Github) -* ***CODE REVIEWED*** - The plugin structure has been reviewed and found to be satisfactory given the [technical requirements](CONTRIBUTING.md#technical-requirements) (may happen in parallel to UX REVIEWED) -* ***UX REVIEWED*** - The plugin installation UX has been reviewed and found to be satisfactory. (may happen in parallel to CODE REVIEWED) -* ***LGTM*** - Added ONLY once both UX/CODE reviewed are both present. Merge must be handled by someone OTHER than the maintainer that added the LGTM label. This label indicates that given a quick pass of the comments this change is ready to merge - -### Stale Pull Requests - -After initial review feedback, if no updates have been made to the pull request for 1 week, the `stale` label will be added. If after another week there are still no updates it will be closed. Please re-open if/when you have made the proper adjustments. - -## Status of the Project - -This project is still under active development, so you might run into [issues](https://github.com/codefresh-io/plugins/issues). If you do, please don't be shy about letting us know, or better yet, contribute a fix or feature. \ No newline at end of file +# Codefresh plugins + +Codefresh Plugins are Docker images made especially for use in a Codefresh freestyle step. Each plugin facilitates a common task that would otherwise by difficult to achieve. +See each plugin readme for more info and usage instructions. + +## Plugins + +| Plugin| Author| Description| Tags| +| --- | --- | --- | --- | +| [Codefresh Cli](codefresh-cli/README.md) | Operate on Codefresh resources | `cli` `codefresh`| +| [Deploy Helm](helm-legacy/README.md)| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| +| [Slack](slack/README.md)| Send message to slack| `slack` `notify`| +| [Deploy to ECS](ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | +| [Deploy Kompose](kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [GitHub PR](github-pr/README.MD)| Creates pull request to GitHub | `github` | +| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| +| [Deploy to DCOS](dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | +| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| +| [release to npm](release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | +| [Twistlock](twistlock-scan) | Security scanning of docker images using Twistlock | `security` | +| [Helm](helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| +| [Clair](clair/README.md) | Security scanning of Docker images using Clair | `security` | +| [Import Docker Images](import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| +| [Deploy Kompose](kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | diff --git a/incubator/clair/README.md b/plugins/clair/README.md similarity index 100% rename from incubator/clair/README.md rename to plugins/clair/README.md diff --git a/incubator/clair/plugin.yaml b/plugins/clair/plugin.yaml similarity index 100% rename from incubator/clair/plugin.yaml rename to plugins/clair/plugin.yaml diff --git a/stable/codefresh-cli/NOTES.md b/plugins/codefresh-cli/NOTES.md similarity index 100% rename from stable/codefresh-cli/NOTES.md rename to plugins/codefresh-cli/NOTES.md diff --git a/stable/codefresh-cli/README.md b/plugins/codefresh-cli/README.md similarity index 100% rename from stable/codefresh-cli/README.md rename to plugins/codefresh-cli/README.md diff --git a/stable/codefresh-cli/plugin.yaml b/plugins/codefresh-cli/plugin.yaml similarity index 100% rename from stable/codefresh-cli/plugin.yaml rename to plugins/codefresh-cli/plugin.yaml diff --git a/stable/dcos-app-deploy/NOTES.md b/plugins/dcos-app-deploy/NOTES.md similarity index 100% rename from stable/dcos-app-deploy/NOTES.md rename to plugins/dcos-app-deploy/NOTES.md diff --git a/stable/dcos-app-deploy/README.md b/plugins/dcos-app-deploy/README.md similarity index 100% rename from stable/dcos-app-deploy/README.md rename to plugins/dcos-app-deploy/README.md diff --git a/stable/dcos-app-deploy/plugin.yaml b/plugins/dcos-app-deploy/plugin.yaml similarity index 100% rename from stable/dcos-app-deploy/plugin.yaml rename to plugins/dcos-app-deploy/plugin.yaml diff --git a/incubator/docker-service/README.md b/plugins/docker-service/README.md similarity index 100% rename from incubator/docker-service/README.md rename to plugins/docker-service/README.md diff --git a/incubator/docker-service/plugin.yaml b/plugins/docker-service/plugin.yaml similarity index 100% rename from incubator/docker-service/plugin.yaml rename to plugins/docker-service/plugin.yaml diff --git a/stable/ecs-deploy/README.md b/plugins/ecs-deploy/README.md similarity index 100% rename from stable/ecs-deploy/README.md rename to plugins/ecs-deploy/README.md diff --git a/stable/ecs-deploy/plugin.yaml b/plugins/ecs-deploy/plugin.yaml similarity index 100% rename from stable/ecs-deploy/plugin.yaml rename to plugins/ecs-deploy/plugin.yaml diff --git a/stable/github-pr/README.MD b/plugins/github-pr/README.MD similarity index 100% rename from stable/github-pr/README.MD rename to plugins/github-pr/README.MD diff --git a/stable/github-pr/plugin.yaml b/plugins/github-pr/plugin.yaml similarity index 100% rename from stable/github-pr/plugin.yaml rename to plugins/github-pr/plugin.yaml diff --git a/stable/helm-legacy/.swp b/plugins/helm-legacy/.swp similarity index 100% rename from stable/helm-legacy/.swp rename to plugins/helm-legacy/.swp diff --git a/stable/helm-legacy/NOTES.md b/plugins/helm-legacy/NOTES.md similarity index 100% rename from stable/helm-legacy/NOTES.md rename to plugins/helm-legacy/NOTES.md diff --git a/stable/helm-legacy/README.md b/plugins/helm-legacy/README.md similarity index 100% rename from stable/helm-legacy/README.md rename to plugins/helm-legacy/README.md diff --git a/stable/helm-legacy/plugin.yaml b/plugins/helm-legacy/plugin.yaml similarity index 100% rename from stable/helm-legacy/plugin.yaml rename to plugins/helm-legacy/plugin.yaml diff --git a/incubator/helm/README.md b/plugins/helm/README.md similarity index 100% rename from incubator/helm/README.md rename to plugins/helm/README.md diff --git a/incubator/helm/plugin.yaml b/plugins/helm/plugin.yaml similarity index 100% rename from incubator/helm/plugin.yaml rename to plugins/helm/plugin.yaml diff --git a/incubator/import-docker-images/README.md b/plugins/import-docker-images/README.md similarity index 100% rename from incubator/import-docker-images/README.md rename to plugins/import-docker-images/README.md diff --git a/incubator/import-docker-images/plugin.yaml b/plugins/import-docker-images/plugin.yaml similarity index 100% rename from incubator/import-docker-images/plugin.yaml rename to plugins/import-docker-images/plugin.yaml diff --git a/stable/jira/NOTES.md b/plugins/jira/NOTES.md similarity index 100% rename from stable/jira/NOTES.md rename to plugins/jira/NOTES.md diff --git a/stable/jira/README.md b/plugins/jira/README.md similarity index 100% rename from stable/jira/README.md rename to plugins/jira/README.md diff --git a/stable/jira/plugin.yaml b/plugins/jira/plugin.yaml similarity index 100% rename from stable/jira/plugin.yaml rename to plugins/jira/plugin.yaml diff --git a/stable/kompose/README.md b/plugins/kompose/README.md similarity index 100% rename from stable/kompose/README.md rename to plugins/kompose/README.md diff --git a/stable/kompose/example/codefresh.yaml b/plugins/kompose/example/codefresh.yaml similarity index 100% rename from stable/kompose/example/codefresh.yaml rename to plugins/kompose/example/codefresh.yaml diff --git a/stable/kompose/example/docker-compose.yaml b/plugins/kompose/example/docker-compose.yaml similarity index 100% rename from stable/kompose/example/docker-compose.yaml rename to plugins/kompose/example/docker-compose.yaml diff --git a/stable/kompose/plugin.yaml b/plugins/kompose/plugin.yaml similarity index 100% rename from stable/kompose/plugin.yaml rename to plugins/kompose/plugin.yaml diff --git a/stable/relese-to-NPM/NOTES.md b/plugins/relese-to-NPM/NOTES.md similarity index 100% rename from stable/relese-to-NPM/NOTES.md rename to plugins/relese-to-NPM/NOTES.md diff --git a/stable/relese-to-NPM/README.md b/plugins/relese-to-NPM/README.md similarity index 100% rename from stable/relese-to-NPM/README.md rename to plugins/relese-to-NPM/README.md diff --git a/stable/relese-to-NPM/plugin.yaml b/plugins/relese-to-NPM/plugin.yaml similarity index 100% rename from stable/relese-to-NPM/plugin.yaml rename to plugins/relese-to-NPM/plugin.yaml diff --git a/stable/run-jenkins-job/README.md b/plugins/run-jenkins-job/README.md similarity index 100% rename from stable/run-jenkins-job/README.md rename to plugins/run-jenkins-job/README.md diff --git a/stable/run-jenkins-job/plugin.yaml b/plugins/run-jenkins-job/plugin.yaml similarity index 100% rename from stable/run-jenkins-job/plugin.yaml rename to plugins/run-jenkins-job/plugin.yaml diff --git a/stable/slack/NOTES.md b/plugins/slack/NOTES.md similarity index 100% rename from stable/slack/NOTES.md rename to plugins/slack/NOTES.md diff --git a/stable/slack/README.md b/plugins/slack/README.md similarity index 100% rename from stable/slack/README.md rename to plugins/slack/README.md diff --git a/stable/slack/plugin.yaml b/plugins/slack/plugin.yaml similarity index 100% rename from stable/slack/plugin.yaml rename to plugins/slack/plugin.yaml diff --git a/stable/twistlock-scan/Dockerfile b/plugins/twistlock-scan/Dockerfile similarity index 100% rename from stable/twistlock-scan/Dockerfile rename to plugins/twistlock-scan/Dockerfile diff --git a/stable/twistlock-scan/LICENSE.md b/plugins/twistlock-scan/LICENSE.md similarity index 100% rename from stable/twistlock-scan/LICENSE.md rename to plugins/twistlock-scan/LICENSE.md diff --git a/stable/twistlock-scan/README.md b/plugins/twistlock-scan/README.md similarity index 100% rename from stable/twistlock-scan/README.md rename to plugins/twistlock-scan/README.md diff --git a/stable/twistlock-scan/codefresh.yml b/plugins/twistlock-scan/codefresh.yml similarity index 100% rename from stable/twistlock-scan/codefresh.yml rename to plugins/twistlock-scan/codefresh.yml diff --git a/stable/twistlock-scan/plugin.yaml b/plugins/twistlock-scan/plugin.yaml similarity index 100% rename from stable/twistlock-scan/plugin.yaml rename to plugins/twistlock-scan/plugin.yaml diff --git a/stable/twistlock-scan/scripts/twistlock.py b/plugins/twistlock-scan/scripts/twistlock.py similarity index 100% rename from stable/twistlock-scan/scripts/twistlock.py rename to plugins/twistlock-scan/scripts/twistlock.py From 8e6ad5c6a9d0dfe9e364a4113ce8847e622aeee2 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:37:44 +0300 Subject: [PATCH 075/282] fix urls --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 2af0f64d..54d93360 100644 --- a/README.md +++ b/README.md @@ -7,18 +7,18 @@ See each plugin readme for more info and usage instructions. | Plugin| Author| Description| Tags| | --- | --- | --- | --- | -| [Codefresh Cli](codefresh-cli/README.md) | Operate on Codefresh resources | `cli` `codefresh`| -| [Deploy Helm](helm-legacy/README.md)| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| -| [Slack](slack/README.md)| Send message to slack| `slack` `notify`| -| [Deploy to ECS](ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | -| [Deploy Kompose](kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](github-pr/README.MD)| Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| -| [Deploy to DCOS](dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | +| [Codefresh Cli](plugins/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` `codefresh`| +| [Deploy Helm](plugins/helm-legacy/README.md)| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| +| [Slack](plugins/slack/README.md)| Send message to slack| `slack` `notify`| +| [Deploy to ECS](plugins/ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | +| [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [GitHub PR](plugins/github-pr/README.MD)| Creates pull request to GitHub | `github` | +| [Run Jenkins Jobs](plugins/https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| +| [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | | [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| -| [release to npm](release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | -| [Twistlock](twistlock-scan) | Security scanning of docker images using Twistlock | `security` | -| [Helm](helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| -| [Clair](clair/README.md) | Security scanning of Docker images using Clair | `security` | -| [Import Docker Images](import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| -| [Deploy Kompose](kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | +| [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | +| [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | +| [Helm](plugins/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| +| [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | +| [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| +| [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | From 23e71bb54a5e5326358a0dacec9671433a720ab1 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:39:07 +0300 Subject: [PATCH 076/282] remove old helm --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 54d93360..b1338abe 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ See each plugin readme for more info and usage instructions. | Plugin| Author| Description| Tags| | --- | --- | --- | --- | +| [Helm](plugins/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| | [Codefresh Cli](plugins/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` `codefresh`| -| [Deploy Helm](plugins/helm-legacy/README.md)| [Deprecated - see Incubator/helm instead] Deploy a Helm chart| `kubernetes` `helm`| | [Slack](plugins/slack/README.md)| Send message to slack| `slack` `notify`| | [Deploy to ECS](plugins/ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | @@ -18,7 +18,6 @@ See each plugin readme for more info and usage instructions. | [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | | [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | -| [Helm](plugins/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| | [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | From 303f91ef3a8eea3fc7e464b115d0e475e22ec489 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:44:56 +0300 Subject: [PATCH 077/282] fix urls --- README.md | 4 ++-- plugins/{relese-to-NPM => release-to-NPM}/NOTES.md | 0 plugins/{relese-to-NPM => release-to-NPM}/README.md | 0 plugins/{relese-to-NPM => release-to-NPM}/plugin.yaml | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename plugins/{relese-to-NPM => release-to-NPM}/NOTES.md (100%) rename plugins/{relese-to-NPM => release-to-NPM}/README.md (100%) rename plugins/{relese-to-NPM => release-to-NPM}/plugin.yaml (100%) diff --git a/README.md b/README.md index b1338abe..96c075c9 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ See each plugin readme for more info and usage instructions. | [Deploy to ECS](plugins/ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](plugins/github-pr/README.MD)| Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](plugins/https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| +| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | -| [Interact with Jira](https://github.com/codefresh-io/plugins/tree/master/stable/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| +| [Interact with Jira](plugins/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | | [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | diff --git a/plugins/relese-to-NPM/NOTES.md b/plugins/release-to-NPM/NOTES.md similarity index 100% rename from plugins/relese-to-NPM/NOTES.md rename to plugins/release-to-NPM/NOTES.md diff --git a/plugins/relese-to-NPM/README.md b/plugins/release-to-NPM/README.md similarity index 100% rename from plugins/relese-to-NPM/README.md rename to plugins/release-to-NPM/README.md diff --git a/plugins/relese-to-NPM/plugin.yaml b/plugins/release-to-NPM/plugin.yaml similarity index 100% rename from plugins/relese-to-NPM/plugin.yaml rename to plugins/release-to-NPM/plugin.yaml From 012966daf6e344c346505651d9a7f05ff951118c Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:47:18 +0300 Subject: [PATCH 078/282] helm readme description --- plugins/helm/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/helm/README.md b/plugins/helm/README.md index 02c900c6..df6d49fc 100644 --- a/plugins/helm/README.md +++ b/plugins/helm/README.md @@ -1 +1,2 @@ -See documentation here: [https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/](https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/) +# Codefresh Helm Plugin +The Codefresh Helm plugin facilitates authentication, configuration, and execution of Helm CLI commands in a Codefresh pipeline. For more info, see the documentation here: [https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/](https://codefresh.io/docs/docs/new-helm/using-helm-in-codefresh-pipeline/) From 7fb121bc015a8683751cb90199e9cf49b07648e2 Mon Sep 17 00:00:00 2001 From: Itay Shakury Date: Wed, 9 May 2018 12:48:30 +0300 Subject: [PATCH 079/282] fix urls --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96c075c9..6f557f19 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See each plugin readme for more info and usage instructions. | [Deploy to ECS](plugins/ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | | [GitHub PR](plugins/github-pr/README.MD)| Creates pull request to GitHub | `github` | -| [Run Jenkins Jobs](https://github.com/codefresh-io/plugins/tree/master/stable/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| +| [Run Jenkins Jobs](plugins/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | | [Interact with Jira](plugins/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | From 90ea252f0eeb48bb3be24ddbd7124ea145bc95c7 Mon Sep 17 00:00:00 2001 From: Alexei Ledenev Date: Wed, 30 May 2018 11:58:34 +0300 Subject: [PATCH 080/282] update docs; fix yaml --- docs/plugin.md | 2 ++ plugins/run-jenkins-job/plugin.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/plugin.md b/docs/plugin.md index ef390a52..af6e1228 100644 --- a/docs/plugin.md +++ b/docs/plugin.md @@ -50,6 +50,8 @@ volumes: - name: The volume name required: true | false (default "false") description: A short description for attached volume +context: + - kind: Codefresh context kind to inject automatically to the plugin ``` diff --git a/plugins/run-jenkins-job/plugin.yaml b/plugins/run-jenkins-job/plugin.yaml index b593a4c7..7a1a9283 100644 --- a/plugins/run-jenkins-job/plugin.yaml +++ b/plugins/run-jenkins-job/plugin.yaml @@ -11,7 +11,7 @@ sources: maintainers: # (optional) - name: Vadim Waisman email: vadim@codefresh.io -- name: Jenny Passi + - name: Jenny Passi email: jenny@codefresh.io icon: https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/11/1479211772build-image-with-dockerfile_feature.jpg envs: From 021fa5ec225aea6d409d1101e0ed8a84bdd9d3f9 Mon Sep 17 00:00:00 2001 From: "Kostis (Codefresh)" <39800303+kostis-codefresh@users.noreply.github.com> Date: Tue, 5 Jun 2018 00:21:50 +0300 Subject: [PATCH 081/282] Aligned content of columns with actual headers --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6f557f19..c525e89d 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ See each plugin readme for more info and usage instructions. ## Plugins -| Plugin| Author| Description| Tags| -| --- | --- | --- | --- | +| Plugin| Description| Tags| +| --- | --- | --- | | [Helm](plugins/helm/README.md) | Deploy Helm charts | `kubernetes` `helm`| | [Codefresh Cli](plugins/codefresh-cli/README.md) | Operate on Codefresh resources | `cli` `codefresh`| | [Slack](plugins/slack/README.md)| Send message to slack| `slack` `notify`| @@ -15,7 +15,7 @@ See each plugin readme for more info and usage instructions. | [GitHub PR](plugins/github-pr/README.MD)| Creates pull request to GitHub | `github` | | [Run Jenkins Jobs](plugins/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | -| [Interact with Jira](plugins/jira/README.md)|@antweiss | Interact with Jira from codefresh pipelines| `jira` `workflow`| +| [Interact with Jira](plugins/jira/README.md) | Interact with Jira from codefresh pipelines| `jira` `workflow`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | | [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | From 0827a8b3f6bed88f7ac273914a3a1106e48e5aba Mon Sep 17 00:00:00 2001 From: "Kostis (Codefresh)" <39800303+kostis-codefresh@users.noreply.github.com> Date: Tue, 5 Jun 2018 10:54:30 +0300 Subject: [PATCH 082/282] Removed duplicate row --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c525e89d..6f530270 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,4 @@ See each plugin readme for more info and usage instructions. | [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| -| [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes Kompose | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | + From f336659159d4787504b21a6aabcd3b5e527bb908 Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 09:29:14 -0600 Subject: [PATCH 083/282] Create README.md --- plugins/cfstep-twistlock/README.md | 134 +++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 plugins/cfstep-twistlock/README.md diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md new file mode 100644 index 00000000..3d6ac18c --- /dev/null +++ b/plugins/cfstep-twistlock/README.md @@ -0,0 +1,134 @@ +# cf-twistlock-plugin +## Codefresh Twistlock Plugin + +Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-twistlock/tags/ + +The Docker image uses the Twistlock API v2.3: https://twistlock.desk.com/customer/en/portal/articles/2912404-twistlock-api-2-3 + +Plugin that allow users to perform Twistlocl Security Scans on their images. + +This plugin **does not** require access to Docker Daemon. + + +## Prerequisites: + +- Codefresh Subscription - https://codefresh.io/ +- Twistlock Subscription - https://www.twistlock.com/ + +## Options +These options are set as Environment Variables at your pipeline (either at Pipeline configuraion, and/or Step definition) +To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh Pipeline and also to your codefresh.yaml. + +| ENVIRONMENT VARIABLE | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|--|--|--|--|--| +| TL_CONSOLE_HOSTNAME | null | string | Yes | hostname/ip | +| TL_CONSOLE_PORT | null | string | Yes | port | +| TL_CONSOLE_USERNAME | null | string | Yes | username | +| TL_CONSOLE_PASSWORD | null | string | Yes | password | +| TL_COMPLIANCE_THRESHOLD | null | string | Yes | [ low, medium, high, critical ] sets the the minimal severity compliance issue that returns a fail exit code | +| TL_VULNERABILITY_THRESHOLD | null | string | Yes | [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code | +| TL_REGISTRY | null | string | Yes | Registry URL. (e.g.: docker.io, cfcr.io). This should match the Registry URL set at Twistlock Console | +| TL_IMAGE_NAME | null | string | Yes | The full image name (excluding the registry URL) (e.g.: myrepo/myimage) | +| TL_IMAGE_TAG | null | string | Yes | The tag of the image to scan. | + +> **Threshold description** +> +> - low: the most **restrictive**. When thresholds are set to this level, the scanning process will fail with any issue or vulnearability found. +> - critical: the most **permissive**. When thresholds are set to this level, the scanning process will fail only if a critical issue or vulnearability is found (or a combination of lower level vulnerabilities that summed up result in a risk score higher than 1000). + + + +## How to use it (example) + +Summary: in this example, we're going to scan an image built by Codefresh. + +The image's Dockerfile is defined in this sample repo: https://github.com/francisco-codefresh/twistlock_demo + +For scanning purposes, the image will be pushed to a temporary registry, which can be seen as a "Registry of unscanned images". Once there, we can initiate the scan in Twistlock console. + +In order for this to work, the registry to scan must be previously added to TwistlocK Console. + +Once the security scan finishes, we annote the image based on the Security Report created by Twistlock. + +In our example pipeline, if the compliance and vulnerability thresholds are not exceeded, then, we push the resulting image to our final, curated, registry. + +### Configure the registry to scan in Twistlock + +In your Twistlock dashboard go to `#!/defend/vulnerabilities/registry` . And add a new "registry settings" record. + +In this case, we are going to use Docker Hub as our temporary registry. And these are the settings used: + +- Version: Docker Registry v2 +- Registry: docker.io +- Repository name: franciscocodefresh/twistlockdemo-temp +- Tag: +- Username: +- Password: + +### Set up a pipeline with the following configuration + +Now, create a pipeline associated to your repo, in this case, our demo repo is "twistlock_demo" (mentioned above) + +#### Environment Variables (configured at Pipeline Configuration): + +``` +TL_CONSOLE_HOSTNAME=169.254.169.254 +TL_CONSOLE_PORT=8083 +TL_CONSOLE_USERNAME=myuser +TL_CONSOLE_PASSWORD=mypassword +TL_COMPLIANCE_THRESHOLD=critical +TL_VULNERABILITY_THRESHOLD=critical +``` + +For this example, we're being permissive (critical for both thresholds). Of course those values can be set to any of the other options. + +#### Pipeline YAML (Codefresh.yml) + +```yaml +version: '1.0' +steps: + BuildingDockerImage: + title: Building Docker Image + type: build + image_name: franciscocodefresh/twistlockdemo + working_directory: ./ + tag: '${{CF_SHORT_REVISION}}' + dockerfile: Dockerfile + + PushingToTEMPDockerRegistry: + title: Pushing to Temporal Docker Registry (for unscanned images -> to be scanned) + type: push + candidate: '${{BuildingDockerImage}}' + image_name: franciscocodefresh/twistlockdemo-temp + tags: + - '${{CF_SHORT_REVISION}}' + + TL_Scan: + title: Twistlock Scan + image: codefresh/cfstep-twistlock + environment: + - TL_REGISTRY=docker.io + - TL_IMAGE_NAME=franciscocodefresh/twistlockdemo-temp + - TL_IMAGE_TAG=${{CF_SHORT_REVISION}} + on_success: + metadata: + set: + - ${{BuildingDockerImage.imageId}}: + - SECURITY_SCAN: true + on_fail: + metadata: + set: + - ${{BuildingDockerImage.imageId}}: + - SECURITY_SCAN: false + + PushingDockerRegistry: + title: Pushing to FINAL Docker Registry (curated registry of scanned images) + type: push + candidate: '${{BuildingDockerImage}}' + image_name: franciscocodefresh/twistlockdemo + tags: + - '${{CF_SHORT_REVISION}}' +``` + + + From 73315a53fcff70d31d4e970df87a70fa937fd679 Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 09:30:04 -0600 Subject: [PATCH 084/282] Update README.md --- plugins/cfstep-twistlock/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 3d6ac18c..dce8ae11 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -1,5 +1,4 @@ -# cf-twistlock-plugin -## Codefresh Twistlock Plugin +# Codefresh Twistlock Plugin Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-twistlock/tags/ From a59af58be893da33d976eab9a60b38b9770ab37d Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 09:34:45 -0600 Subject: [PATCH 085/282] Update README.md --- plugins/cfstep-twistlock/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index dce8ae11..133f5937 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -43,7 +43,7 @@ Summary: in this example, we're going to scan an image built by Codefresh. The image's Dockerfile is defined in this sample repo: https://github.com/francisco-codefresh/twistlock_demo -For scanning purposes, the image will be pushed to a temporary registry, which can be seen as a "Registry of unscanned images". Once there, we can initiate the scan in Twistlock console. +For scanning purposes, the image will be pushed to a temporary registry, which can be considered as a "Registry of unscanned images". Once there, we can initiate the scan in Twistlock console. In order for this to work, the registry to scan must be previously added to TwistlocK Console. From 5e861a3a593c594007bacae3f150ffb15086b151 Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 09:35:07 -0600 Subject: [PATCH 086/282] Update README.md --- plugins/cfstep-twistlock/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 133f5937..2f7f5a55 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -4,7 +4,7 @@ Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-twistlock/tags/ The Docker image uses the Twistlock API v2.3: https://twistlock.desk.com/customer/en/portal/articles/2912404-twistlock-api-2-3 -Plugin that allow users to perform Twistlocl Security Scans on their images. +Plugin that allow users to perform Twistlock Security Scans on their images. This plugin **does not** require access to Docker Daemon. From 9b89d120638252f000fe52e806140c74f8cc3189 Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 09:56:58 -0600 Subject: [PATCH 087/282] Update README.md --- plugins/cfstep-twistlock/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 2f7f5a55..62216f67 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -4,7 +4,7 @@ Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-twistlock/tags/ The Docker image uses the Twistlock API v2.3: https://twistlock.desk.com/customer/en/portal/articles/2912404-twistlock-api-2-3 -Plugin that allow users to perform Twistlock Security Scans on their images. +Plugin that allow users to perform Twistlock Security Scans on images. This plugin **does not** require access to Docker Daemon. From 0d330a3c939ea404c953b142f686d5c57f67e0ab Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 10:02:24 -0600 Subject: [PATCH 088/282] Update README.md --- plugins/cfstep-twistlock/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 62216f67..21998300 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -94,7 +94,7 @@ steps: tag: '${{CF_SHORT_REVISION}}' dockerfile: Dockerfile - PushingToTEMPDockerRegistry: + PushingToTempDockerRegistry: title: Pushing to Temporal Docker Registry (for unscanned images -> to be scanned) type: push candidate: '${{BuildingDockerImage}}' @@ -102,7 +102,7 @@ steps: tags: - '${{CF_SHORT_REVISION}}' - TL_Scan: + TLScan: title: Twistlock Scan image: codefresh/cfstep-twistlock environment: From fd3e3d6ea1fc6f10afa3f1bd6fa42e4b113deb6a Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 10:11:40 -0600 Subject: [PATCH 089/282] Update README.md --- plugins/cfstep-twistlock/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 21998300..3999c825 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -81,7 +81,7 @@ TL_VULNERABILITY_THRESHOLD=critical For this example, we're being permissive (critical for both thresholds). Of course those values can be set to any of the other options. -#### Pipeline YAML (Codefresh.yml) +#### Pipeline YAML (codefresh.yml) ```yaml version: '1.0' From 9ddb0be5e504f8625c2ecdf5cf6a86a784f36caf Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Thu, 5 Jul 2018 14:03:19 -0600 Subject: [PATCH 090/282] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 6f530270..0615ad8c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ See each plugin readme for more info and usage instructions. | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | | [Interact with Jira](plugins/jira/README.md) | Interact with Jira from codefresh pipelines| `jira` `workflow`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | -| [Twistlock](plugins/twistlock-scan) | Security scanning of docker images using Twistlock | `security` | +| [Twistlock](plugins/cfstep-twistlock) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| - From 090ba8b197bdf42478fb463799a95f84b37925f8 Mon Sep 17 00:00:00 2001 From: alex-codefresh Date: Tue, 28 Aug 2018 10:16:35 +0300 Subject: [PATCH 091/282] Google KMS plugin --- README.md | 1 + plugins/google-kms/Dockerfile | 10 +++++++++ plugins/google-kms/README.md | 27 ++++++++++++++++++++++++ plugins/google-kms/google-kms.sh | 35 ++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 plugins/google-kms/Dockerfile create mode 100644 plugins/google-kms/README.md create mode 100755 plugins/google-kms/google-kms.sh diff --git a/README.md b/README.md index 0615ad8c..e6c3d7a8 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,4 @@ See each plugin readme for more info and usage instructions. | [Twistlock](plugins/cfstep-twistlock) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| +| [Google KMS](plugins/google-kms/README.md) | Encryption/Decryption with Google KMS| `KMS` `codefresh`| diff --git a/plugins/google-kms/Dockerfile b/plugins/google-kms/Dockerfile new file mode 100644 index 00000000..5ba4f610 --- /dev/null +++ b/plugins/google-kms/Dockerfile @@ -0,0 +1,10 @@ +FROM google/cloud-sdk:alpine + +WORKDIR /kms + +RUN apk -U add jq bash +ENV PATH=${PATH}:/kms + +COPY google-kms.sh ./kms + + diff --git a/plugins/google-kms/README.md b/plugins/google-kms/README.md new file mode 100644 index 00000000..bd72adae --- /dev/null +++ b/plugins/google-kms/README.md @@ -0,0 +1,27 @@ +odefresh Google KMS plugin + +This plugin facilitates work with Google Key Management Service for such operations like *encrypting* and *decrypting* + +# Usage + +kms [OPERATION] [VALUE_1] [VALUE_n...] + +Set the plugin required environment variables for the pipeline and use the plugin as a freestyle step with a command like: + +```yaml +GoogleKMS: + image: codefresh/google-kms + commands: + - kms encrypt VALUE_1 VALUE_n +``` +where VALUE_1 and VALUE_n are the **names** of the environment variables containing the values you need to encrypt or decrypt. + +The operation is mutable and when the step finishes the variables with the same names will contain encrypted values. For decryption the process is similar + +# Required environment variables + +- `KMS_PROJECT` - GCP project name in which your KMS entities are present +- `KMS_LOCATION` - Google KMS location +- `KMS_KEYRING` - Google KMS keyring +- `KMS_KEY` - Google KMS key +- `GCP_SA_KEY` - [Google Service Account Key (JSON)](https://cloud.google.com/iam/docs/creating-managing-service-account-keys) diff --git a/plugins/google-kms/google-kms.sh b/plugins/google-kms/google-kms.sh new file mode 100755 index 00000000..7eead9b9 --- /dev/null +++ b/plugins/google-kms/google-kms.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +for pluginVar in KMS_PROJECT KMS_LOCATION KMS_KEYRING KMS_KEY + do + if [ -z ${!pluginVar} ]; then echo $pluginVar is not set, stopping...; exit 1; fi + done + +echo $GCP_SA_KEY > google-app-creds.json +export GOOGLE_APPLICATION_CREDENTIALS=$(realpath google-app-creds.json) +operation=$1 + + +function encrypt () { + + hashedtext=$(echo $2 | base64 | tr -d '\n') + cf_export $1=$(curl -s -X POST "https://cloudkms.googleapis.com/v1/projects/$KMS_PROJECT/locations/$KMS_LOCATION/keyRings/$KMS_KEYRING/cryptoKeys/$KMS_KEY:encrypt" \ + -d "{\"plaintext\":\"$hashedtext\"}" \ + -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ + -H "Content-Type:application/json" | jq '.ciphertext' --raw-output ) + + } + +function decrypt { + + cf_export $1=$(curl -s -X POST "https://cloudkms.googleapis.com/v1/projects/$KMS_PROJECT/locations/$KMS_LOCATION/keyRings/$KMS_KEYRING/cryptoKeys/$KMS_KEY:decrypt" \ + -d "{\"ciphertext\":\"$2\"}" \ + -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ + -H "Content-Type:application/json" | jq '.plaintext' --raw-output | base64 -d) + + } + +for secret in "${@: 2}" + do + $operation $secret ${!secret} + done From c0aa249f20cebccb0de0f8ab3d161e48f9cad8a9 Mon Sep 17 00:00:00 2001 From: francisco-codefresh <39525266+francisco-codefresh@users.noreply.github.com> Date: Tue, 9 Oct 2018 16:39:14 -0600 Subject: [PATCH 092/282] Update README.md --- plugins/cfstep-twistlock/README.md | 117 ++++++++++++++++++++++++----- 1 file changed, 100 insertions(+), 17 deletions(-) diff --git a/plugins/cfstep-twistlock/README.md b/plugins/cfstep-twistlock/README.md index 3999c825..cac9587d 100644 --- a/plugins/cfstep-twistlock/README.md +++ b/plugins/cfstep-twistlock/README.md @@ -37,25 +37,114 @@ To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh P -## How to use it (example) +## How to use it (examples) Summary: in this example, we're going to scan an image built by Codefresh. The image's Dockerfile is defined in this sample repo: https://github.com/francisco-codefresh/twistlock_demo -For scanning purposes, the image will be pushed to a temporary registry, which can be considered as a "Registry of unscanned images". Once there, we can initiate the scan in Twistlock console. - -In order for this to work, the registry to scan must be previously added to TwistlocK Console. +In order for this to work, the registry to scan must be previously added to Twistlock Console. Once the security scan finishes, we annote the image based on the Security Report created by Twistlock. -In our example pipeline, if the compliance and vulnerability thresholds are not exceeded, then, we push the resulting image to our final, curated, registry. +In our example pipeline, if the compliance and vulnerability thresholds are not exceeded (which means the scan doesn't fail), then, we push the resulting image to our final, curated, registry. + +### Preparation step: Set up a pipeline with the following configuration +Now, create a pipeline associated to your repo, in this case, our demo repo is "twistlock_demo" (mentioned above) + +#### Environment Variables (configured at Pipeline Configuration): + +``` +TL_CONSOLE_HOSTNAME=169.254.169.254 +TL_CONSOLE_PORT=8083 +TL_CONSOLE_USERNAME=myuser +TL_CONSOLE_PASSWORD=mypassword +TL_COMPLIANCE_THRESHOLD=critical +TL_VULNERABILITY_THRESHOLD=critical +``` + +For this example, we're being permissive (critical for both thresholds). Of course those values can be set to any of the other options. + +### Example 1 - Scanning an image from Codefresh Docker registry +This is a great way to take advantage of the built-in registry provided by Codefresh (for free). +Since evey image built in Codefresh is automatically pushed to this registry, you don't need to worry for explicitly pushising the image to scan. -### Configure the registry to scan in Twistlock +#### Configure the Codefresh registry in Twistlock In your Twistlock dashboard go to `#!/defend/vulnerabilities/registry` . And add a new "registry settings" record. -In this case, we are going to use Docker Hub as our temporary registry. And these are the settings used: +These are the settings used for Codefresh Private Registry: + +- Version: Docker Registry v2 +- Registry: https://r.cf-cd.com *(notice this is not the common r.cfcr.io domain)* +- Repository name: / (e.g.: francisco-codefresh/myimage) +- Tag: +- Username: +- Password: (you can generate one at https://g.codefresh.io/user/settings) + +#### Set up a pipeline with the following configuration + +**Environment Variables (configured at Pipeline Configuration):** + +``` +TL_CONSOLE_HOSTNAME=169.254.169.254 +TL_CONSOLE_PORT=8083 +TL_CONSOLE_USERNAME=my_tl_user +TL_CONSOLE_PASSWORD=my_tl_password +TL_COMPLIANCE_THRESHOLD=critical +TL_VULNERABILITY_THRESHOLD=critical +``` + +For this example, we're being permissive (`critical` for both thresholds). Of course those values can be set to any of the other options. + +**Pipeline YAML (codefresh.yml)** + +```yaml +version: '1.0' +steps: + BuildingDockerImage: + title: Building Docker Image + type: build + image_name: franciscocodefresh/twistlockdemo + tag: '${{CF_SHORT_REVISION}}' + dockerfile: Dockerfile + + TLScan: + title: Twistlock Scan + image: codefresh/cfstep-twistlock + environment: + - TL_REGISTRY=https://r.cf-cd.com + - TL_IMAGE_NAME=francisco-codefresh/franciscocodefresh/twistlockdemo + - TL_IMAGE_TAG=${{CF_SHORT_REVISION}} + on_success: + metadata: + set: + - ${{BuildingDockerImage.imageId}}: + - SECURITY_SCAN: true + on_fail: + metadata: + set: + - ${{BuildingDockerImage.imageId}}: + - SECURITY_SCAN: false + # If image scan (previous step) fails, the build will fail, thus the image won't be pushed to the curated registry + # If image scan succeeds, the image will be pushed to the curated registry + PushingDockerRegistry: + title: Pushing to FINAL Docker Registry (curated registry of scanned images) + type: push + candidate: '${{BuildingDockerImage}}' + image_name: franciscocodefresh/twistlockdemo + tags: + - '${{CF_SHORT_REVISION}}' +``` + +### Example 2 - Scanning an image from a temporary external registry +In this example, we are going to use Docker Hub as our temporary registry, which can be considered as a "*Registry of unscanned images*" (to be scanned). Once there, we can initiate the scan in Twistlock console. + +#### Configure the registry to scan in Twistlock + +In your Twistlock dashboard go to `#!/defend/vulnerabilities/registry` . And add a new "registry settings" record. + +These are the settings used: - Version: Docker Registry v2 - Registry: docker.io @@ -64,11 +153,9 @@ In this case, we are going to use Docker Hub as our temporary registry. And thes - Username: - Password: -### Set up a pipeline with the following configuration +#### Set up a pipeline with the following configuration -Now, create a pipeline associated to your repo, in this case, our demo repo is "twistlock_demo" (mentioned above) - -#### Environment Variables (configured at Pipeline Configuration): +**Environment Variables (configured at Pipeline Configuration):** ``` TL_CONSOLE_HOSTNAME=169.254.169.254 @@ -79,9 +166,9 @@ TL_COMPLIANCE_THRESHOLD=critical TL_VULNERABILITY_THRESHOLD=critical ``` -For this example, we're being permissive (critical for both thresholds). Of course those values can be set to any of the other options. +For this example, we're being permissive (`critical` for both thresholds). Of course those values can be set to any of the other options. -#### Pipeline YAML (codefresh.yml) +**Pipeline YAML (codefresh.yml)** ```yaml version: '1.0' @@ -90,7 +177,6 @@ steps: title: Building Docker Image type: build image_name: franciscocodefresh/twistlockdemo - working_directory: ./ tag: '${{CF_SHORT_REVISION}}' dockerfile: Dockerfile @@ -128,6 +214,3 @@ steps: tags: - '${{CF_SHORT_REVISION}}' ``` - - - From f3d6607c575c4c72a0a9d211e99754c4776e798b Mon Sep 17 00:00:00 2001 From: nick-codefresh Date: Tue, 13 Nov 2018 12:36:57 +0300 Subject: [PATCH 093/282] fixed typo --- plugins/google-kms/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/google-kms/README.md b/plugins/google-kms/README.md index bd72adae..57c78d1f 100644 --- a/plugins/google-kms/README.md +++ b/plugins/google-kms/README.md @@ -1,4 +1,4 @@ -odefresh Google KMS plugin +Сodefresh Google KMS plugin This plugin facilitates work with Google Key Management Service for such operations like *encrypting* and *decrypting* From 8364b1b8be0bbb993da6354ef5d9e8cb2fe66926 Mon Sep 17 00:00:00 2001 From: Dustin Van Buskirk Date: Thu, 6 Dec 2018 13:30:43 -0800 Subject: [PATCH 094/282] adding readme for cfstep-paclair --- plugins/cfstep-paclair/README.md | 129 +++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 plugins/cfstep-paclair/README.md diff --git a/plugins/cfstep-paclair/README.md b/plugins/cfstep-paclair/README.md new file mode 100644 index 00000000..b63f1a93 --- /dev/null +++ b/plugins/cfstep-paclair/README.md @@ -0,0 +1,129 @@ +# cfstep-paclair [![Codefresh build status]( https://g.codefresh.io/api/badges/pipeline/codefresh-inc/codefresh-contrib%2Fcfstep-paclair%2Fcfstep-paclair?branch=master&type=cf-1)]( https://g.codefresh.io/repositories/codefresh-contrib/cfstep-paclair/builds?filter=trigger:build;branch:master;service:5bbe7af8a3686e081e4e1b91~cfstep-paclair) + +Custom Docker image to support clair image scanning from Codefresh pipeline + +### OOTB Step DockerHub + +https://hub.docker.com/r/codefresh/cfstep-paclair/ + +### OOTB Step Project Repository + +https://github.com/codefresh-contrib/cfstep-paclair + +### Prerequisites: + +Codefresh Subscription - https://codefresh.io/ + +Running Clair Instance - +Helm Chart is available to install here: https://github.com/coreos/clair/tree/master/contrib/helm + +### Documentation: + +paclair: https://github.com/yebinama/paclair + +### Tested Registries + +Codefresh Registry - No special setup required. + +Username is your Codefresh Username and Docker Registry keys can be created here https://g.codefresh.io/user/settings + +ECR - Requires AWS CLI credentials with access to ECR. +`REGISTRY=ecr` will find the proper ECR registry using your credentials and image. + +AWS CLI Credentials required for ECR: +https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html + +| ENVIRONMENT VARIABLE | +| --------------------- | +| AWS_ACCESS_KEY_ID | +| AWS_DEFAULT_REGION | +| AWS_SECRET_ACCESS_KEY | + +Registries with Basic auth and Token based auth should work. + +### Full List of Options + +To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh Pipeline and also to your codefresh.yml. + +Example `codefresh.yml` build is below with required ENVIRONMENT VARIABLES in place. + +| ENVIRONMENT VARIABLE | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|----------------------------|----------|---------|----------|---------------------------------------------------------------------------------------------------------------------------------| +| API_PREFIX | null | string | No | Prefix for API to Docker Registry | +| CF_ACCOUNT | null | string | No | Codefresh Account Name | +| CLAIR_URL | null | string | Yes | https://clair.domain.com:6060 | +| IMAGE | null | string | Yes | Docker Image Name | +| PROTOCOL | https | string | No | Docker Registry Protocol | +| REGISTRY | r.cfcr.io | string | No | For ECR use `ecr` else use domain name for Docker Registry | +| REGISTRY_PASSWORD | null | string | Yes | Docker Registry Password | +| REGISTRY_USERNAME | null | string | Yes | Docker Registry Username | +| SEVERITY_THRESHOLD | null | string | No | critical, high, medium, low, negligible, unknown | +| TOKEN | null | string | No | Docker Registry Auth Token | +| TOKEN_TYPE | Bearer | string | No | Docker Registry Auth Token Type | +| TOKEN_URL | null | string | No | Docker Registry Auth Token URL | +| TAG | null | string | Yes | Docker Image Tag | + +### SEVERITY_THRESHOLD + +If variable is set step will check that the threshold is not met or exceeded. + +For example, high would fail your build if you had high or critical vulnerabilties on your Docker image. + +### codefresh.yml + +Codefresh Build Step to execute Clair scan. +All `${{var}}` variables must be put into Codefresh Build Parameters +codefresh.yml + +``` console +version: '1.0' +steps: + BuildingDockerImage: + title: Building Docker Image + type: build + image_name: codefresh/demochat # Replace with your Docker image name + working_directory: ./ + dockerfile: Dockerfile + tag: '${{CF_BRANCH_TAG_NORMALIZED}}' + CheckClair: + image: codefresh/cfstep-paclair:3.1.0 + environment: + - CF_ACCOUNT=dustinvanbuskirk + - IMAGE=example-voting-app/worker # Replace with your Docker image name + - TAG=${{CF_BRANCH_TAG_NORMALIZED}} + on_success: # Execute only once the step succeeded + metadata: # Declare the metadata attribute + set: # Specify the set operation + - ${{BuildingDockerImage.imageId}}: # Select any number of target images + - SECURITY_SCAN: true + on_fail: # Execute only once the step failed + metadata: # Declare the metadata attribute + set: # Specify the set operation + - ${{BuildingDockerImage.imageId}}: # Select any number of target images + - SECURITY_SCAN: false + ArchiveReport: + image: mesosphere/aws-cli + commands: + - aws s3 cp ./reports/clair-scan-example-voting-app-worker-${{CF_BRANCH_TAG_NORMALIZED}}.html s3://${{S3_BUCKETNAME}}/${{CF_BUILD_ID}}/clair-scan-example-voting-app-worker-${{CF_BRANCH_TAG_NORMALIZED}}.html --acl public-read + on_success: + metadata: + set: + - ${{BuildingDockerImage.imageId}}: + - CLAIR_REPORT: "https://s3.amazonaws.com/${{S3_BUCKETNAME}}/${{CF_BUILD_ID}}/clair-scan-example-voting-app-worker-${{CF_BRANCH_TAG_NORMALIZED}}.html" +``` + +The HTML report is stored in `./reports/clair-scan-{image name}-{image tag}.html` +Any `/` characters in `{image name}` are replaced with `-` + +Optional Storage Step Variables for AWS S3: + +| ENVIRONMENT VARIABLE | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|----------------------------|----------|---------|----------|---------------------------------------------------------------------------------------------------------------------------------| +| AWS_ACCESS_KEY_ID | null | string | No | AWS Access Key of S3 Bucket | +| AWS_DEFAULT_REGION | null | string | Yes | AWS Region of S3 Bucket | +| AWS_SECRET_ACCESS_KEY | null | string | Yes | AWS Secret Key of S3 Bucket | +| S3_BUCKETNAME | null | string | Yes | Name of S3 Bucket to Store Reports | + +### Notes + +Not yet supporting manual Cert validation. Coming soon along with tests. \ No newline at end of file From 69065f6699763548db628d893811f0207632a3d3 Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 10 Dec 2018 05:52:30 +0200 Subject: [PATCH 095/282] Test plugin (#25) * plugins_2018-12-09-12-53-36 * plugins_2018-12-09-12-54-04 * plugins_2018-12-09-12-54-39 * plugins_2018-12-09-12-55-14 * plugins_2018-12-09-12-55-52 * plugins_2018-12-09-12-56-27 * plugins_2018-12-09-12-57-04 * plugins_2018-12-09-12-57-31 * plugins_2018-12-09-12-57-54 * plugins_2018-12-09-12-58-19 * plugins_2018-12-09-12-58-45 * plugins_2018-12-09-12-59-10 * plugins_2018-12-09-12-59-45 * plugins_2018-12-09-13-00-23 * plugins_2018-12-09-13-00-50 * plugins_2018-12-09-13-01-16 * plugins_2018-12-09-13-01-44 * plugins_2018-12-09-13-02-07 * plugins_2018-12-09-13-02-30 * plugins_2018-12-09-13-02-58 * plugins_2018-12-09-13-03-46 * plugins_2018-12-09-13-04-23 * plugins_2018-12-09-13-04-59 * plugins_2018-12-09-13-05-27 * plugins_2018-12-09-13-05-50 * plugins_2018-12-09-13-06-18 * plugins_2018-12-09-13-06-41 * plugins_2018-12-09-13-07-00 * plugins_2018-12-09-13-07-29 * plugins_2018-12-09-13-07-49 * plugins_2018-12-09-13-09-13 * plugins_2018-12-09-13-09-36 * plugins_2018-12-09-13-10-01 * plugins_2018-12-09-13-10-52 * plugins_2018-12-09-13-11-26 * plugins_2018-12-09-13-12-02 * plugins_2018-12-09-13-12-36 * plugins_2018-12-09-13-13-10 * plugins_2018-12-09-13-13-43 * plugins_2018-12-09-13-14-10 * plugins_2018-12-09-13-14-29 * plugins_2018-12-09-13-14-48 * plugins_2018-12-09-13-15-16 * plugins_2018-12-09-13-15-41 * plugins_2018-12-09-13-16-10 * plugins_2018-12-09-13-16-29 * plugins_2018-12-09-13-16-56 * plugins_2018-12-09-13-17-21 * plugins_2018-12-09-13-17-51 * plugins_2018-12-09-13-18-24 * plugins_2018-12-09-13-18-56 * plugins_2018-12-09-13-19-45 * plugins_2018-12-09-13-20-09 * plugins_2018-12-09-13-20-31 * plugins_2018-12-09-13-21-00 * plugins_2018-12-09-13-21-49 * plugins_2018-12-09-13-22-17 * plugins_2018-12-09-13-22-40 * plugins_2018-12-09-13-23-08 * plugins_2018-12-09-13-23-31 * plugins_2018-12-09-13-23-59 * plugins_2018-12-09-13-24-48 * plugins_2018-12-09-13-25-22 * plugins_2018-12-09-13-25-58 * plugins_2018-12-09-13-26-34 * plugins_2018-12-09-13-27-09 * plugins_2018-12-09-13-27-35 * plugins_2018-12-09-13-28-02 * plugins_2018-12-09-13-28-38 * plugins_2018-12-09-13-30-01 * plugins_2018-12-09-13-30-29 * plugins_2018-12-09-13-30-55 * plugins_2018-12-09-13-31-24 * plugins_2018-12-09-13-31-48 * plugins_2018-12-09-13-32-11 * plugins_2018-12-09-13-32-51 * plugins_2018-12-09-13-33-11 * plugins_2018-12-09-13-33-39 * plugins_2018-12-09-13-34-04 * plugins_2018-12-09-13-34-28 * plugins_2018-12-09-13-34-53 * plugins_2018-12-09-13-35-21 * plugins_2018-12-09-13-35-42 * plugins_2018-12-09-13-36-09 * plugins_2018-12-09-13-36-35 * plugins_2018-12-09-13-37-01 * plugins_2018-12-09-13-37-30 * plugins_2018-12-09-13-37-53 * plugins_2018-12-09-13-38-22 * plugins_2018-12-09-13-38-41 * plugins_2018-12-09-13-39-08 * plugins_2018-12-09-13-39-35 * plugins_2018-12-09-13-39-58 * plugins_2018-12-09-13-40-19 * plugins_2018-12-09-13-40-46 * plugins_2018-12-09-13-41-10 * plugins_2018-12-09-13-41-32 * plugins_2018-12-09-13-42-00 * plugins_2018-12-09-13-42-51 * plugins_2018-12-09-13-43-19 * plugins_2018-12-09-13-43-44 * plugins_2018-12-09-13-44-11 * plugins_2018-12-09-13-44-34 * plugins_2018-12-09-13-45-10 * plugins_2018-12-09-13-45-31 * plugins_2018-12-09-13-45-52 * plugins_2018-12-09-13-46-41 * plugins_2018-12-09-13-47-01 * plugins_2018-12-09-13-47-38 * plugins_2018-12-09-13-48-07 * plugins_2018-12-09-13-48-32 * plugins_2018-12-09-13-48-58 * plugins_2018-12-09-13-49-23 * plugins_2018-12-09-13-49-49 * plugins_2018-12-09-13-50-16 * plugins_2018-12-09-13-50-48 * plugins_2018-12-09-13-51-11 * plugins_2018-12-09-13-51-31 * plugins_2018-12-09-13-51-57 * plugins_2018-12-09-13-52-22 * plugins_2018-12-09-13-52-51 * plugins_2018-12-09-13-53-13 * plugins_2018-12-09-13-53-39 * plugins_2018-12-09-13-54-08 * plugins_2018-12-09-13-54-44 * plugins_2018-12-09-13-55-20 * plugins_2018-12-09-13-55-57 * plugins_2018-12-09-13-56-24 * plugins_2018-12-09-13-56-54 * plugins_2018-12-09-13-57-12 * plugins_2018-12-09-13-57-49 * plugins_2018-12-09-13-58-14 * plugins_2018-12-09-13-58-51 * plugins_2018-12-09-13-59-14 * plugins_2018-12-09-13-59-43 * plugins_2018-12-09-14-01-05 * plugins_2018-12-09-14-01-34 * plugins_2018-12-09-14-02-09 * plugins_2018-12-09-14-02-45 * plugins_2018-12-09-14-03-21 * plugins_2018-12-09-14-03-44 * plugins_2018-12-09-14-04-04 * plugins_2018-12-09-14-04-56 * plugins_2018-12-09-14-05-34 * plugins_2018-12-09-14-06-09 * plugins_2018-12-09-14-06-31 * plugins_2018-12-09-14-06-51 * plugins_2018-12-09-14-07-28 * plugins_2018-12-09-14-07-53 * plugins_2018-12-09-14-08-12 * plugins_2018-12-09-14-08-47 * plugins_2018-12-09-14-09-12 * plugins_2018-12-09-14-09-48 * plugins_2018-12-09-14-10-12 * plugins_2018-12-09-14-10-35 * plugins_2018-12-09-14-12-00 * plugins_2018-12-09-14-12-26 * plugins_2018-12-09-14-13-01 * plugins_2018-12-09-14-13-23 * plugins_2018-12-09-14-13-46 * plugins_2018-12-09-14-14-12 * plugins_2018-12-09-14-14-45 * plugins_2018-12-09-14-15-13 * plugins_2018-12-09-14-15-36 * plugins_2018-12-09-14-16-07 * plugins_2018-12-09-14-16-39 * plugins_2018-12-09-14-17-07 * plugins_2018-12-09-14-17-39 * plugins_2018-12-09-14-18-17 * plugins_2018-12-09-14-18-42 * plugins_2018-12-09-14-19-16 * plugins_2018-12-09-14-19-49 * plugins_2018-12-09-14-20-15 * plugins_2018-12-09-14-20-34 * plugins_2018-12-09-14-21-10 * plugins_2018-12-09-14-21-42 * plugins_2018-12-09-14-22-18 * plugins_2018-12-09-14-22-51 * plugins_2018-12-09-14-23-12 * plugins_2018-12-09-14-23-33 * plugins_2018-12-09-14-24-10 * plugins_2018-12-09-14-24-35 * plugins_2018-12-09-14-25-09 * plugins_2018-12-09-14-25-36 * plugins_2018-12-09-14-26-03 * plugins_2018-12-09-14-26-25 * plugins_2018-12-09-14-26-43 * plugins_2018-12-09-14-27-19 * plugins_2018-12-09-14-27-53 * plugins_2018-12-09-14-28-29 * plugins_2018-12-09-14-28-55 * plugins_2018-12-09-14-29-21 * plugins_2018-12-09-14-29-48 * plugins_2018-12-09-14-30-14 * plugins_2018-12-09-14-30-37 * plugins_2018-12-09-14-31-13 * plugins_2018-12-09-14-31-36 * plugins_2018-12-09-14-32-10 * plugins_2018-12-09-14-32-43 * plugins_2018-12-09-14-33-08 * plugins_2018-12-09-14-33-41 * plugins_2018-12-09-14-34-09 * plugins_2018-12-09-14-34-39 * plugins_2018-12-09-14-35-13 * plugins_2018-12-09-14-35-44 * plugins_2018-12-09-14-36-05 * plugins_2018-12-09-14-36-33 * plugins_2018-12-09-14-36-57 * plugins_2018-12-09-14-37-23 * plugins_2018-12-09-14-37-44 * plugins_2018-12-09-14-38-19 * plugins_2018-12-09-14-38-46 * plugins_2018-12-09-14-39-21 * plugins_2018-12-09-14-39-45 * plugins_2018-12-09-14-40-09 * plugins_2018-12-09-14-40-43 * plugins_2018-12-09-14-41-19 * plugins_2018-12-09-14-41-54 * plugins_2018-12-09-14-42-28 * plugins_2018-12-09-14-43-02 * plugins_2018-12-09-14-43-38 * plugins_2018-12-09-14-44-13 * plugins_2018-12-09-14-44-51 * plugins_2018-12-09-14-45-16 * plugins_2018-12-09-14-45-46 * plugins_2018-12-09-14-46-07 * plugins_2018-12-09-14-46-35 * plugins_2018-12-09-14-46-55 * plugins_2018-12-09-14-47-33 * plugins_2018-12-09-14-47-55 * plugins_2018-12-09-14-48-33 * plugins_2018-12-09-14-49-55 * plugins_2018-12-09-14-50-31 * plugins_2018-12-09-14-50-56 * plugins_2018-12-09-14-51-23 * plugins_2018-12-09-14-51-47 * plugins_2018-12-09-14-52-15 * plugins_2018-12-09-14-52-35 * plugins_2018-12-09-14-52-57 * plugins_2018-12-09-14-53-23 * plugins_2018-12-09-14-53-49 * plugins_2018-12-09-14-54-18 * plugins_2018-12-09-14-54-36 * plugins_2018-12-09-14-54-57 * plugins_2018-12-09-14-55-25 * plugins_2018-12-09-14-55-48 * plugins_2018-12-09-14-56-15 * add versioner * fix --- .gitignore | 3 +- dynamic-catalog.md | 23 +++ plugins/aqua-scan/Dockerfile | 50 +++++++ plugins/aqua-scan/LICENSE.md | 7 + plugins/aqua-scan/README.md | 105 +++++++++++++ plugins/aqua-scan/codefresh.yml | 41 ++++++ plugins/aqua-scan/plugin.yaml | 65 +++++++++ plugins/aqua-scan/scripts/twistlock.py | 195 +++++++++++++++++++++++++ plugins/clair/plugin.yaml | 1 + plugins/testplugin/README.MD | 42 ++++++ plugins/testplugin/plugin.yaml | 33 +++++ plugins/testplugin1/README.MD | 42 ++++++ plugins/testplugin1/plugin.yaml | 34 +++++ plugins/versioner/Dockerfile | 50 +++++++ plugins/versioner/LICENSE.md | 7 + plugins/versioner/README.md | 105 +++++++++++++ plugins/versioner/codefresh.yml | 41 ++++++ plugins/versioner/plugin.yaml | 32 ++++ tools/Dockerfile | 7 + tools/index.js | 77 ++++++++++ tools/package-lock.json | 107 ++++++++++++++ tools/package.json | 18 +++ tools/t.yaml | 15 ++ tools/template.md | 10 ++ version | 1 + 25 files changed, 1110 insertions(+), 1 deletion(-) create mode 100644 dynamic-catalog.md create mode 100644 plugins/aqua-scan/Dockerfile create mode 100644 plugins/aqua-scan/LICENSE.md create mode 100644 plugins/aqua-scan/README.md create mode 100644 plugins/aqua-scan/codefresh.yml create mode 100644 plugins/aqua-scan/plugin.yaml create mode 100644 plugins/aqua-scan/scripts/twistlock.py create mode 100644 plugins/testplugin/README.MD create mode 100644 plugins/testplugin/plugin.yaml create mode 100644 plugins/testplugin1/README.MD create mode 100644 plugins/testplugin1/plugin.yaml create mode 100644 plugins/versioner/Dockerfile create mode 100644 plugins/versioner/LICENSE.md create mode 100644 plugins/versioner/README.md create mode 100644 plugins/versioner/codefresh.yml create mode 100644 plugins/versioner/plugin.yaml create mode 100644 tools/Dockerfile create mode 100644 tools/index.js create mode 100644 tools/package-lock.json create mode 100644 tools/package.json create mode 100644 tools/t.yaml create mode 100644 tools/template.md create mode 100644 version diff --git a/.gitignore b/.gitignore index 62c89355..ebe4b538 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.idea/ \ No newline at end of file +.idea/ +node_modules \ No newline at end of file diff --git a/dynamic-catalog.md b/dynamic-catalog.md new file mode 100644 index 00000000..68565340 --- /dev/null +++ b/dynamic-catalog.md @@ -0,0 +1,23 @@ +# **Catalog** +Created at ** Sun Dec 09 2018 14:56:15 GMT+0000 (Coordinated Universal Time)** + + +| Plugin Name | Image | Description | source | Tags | +| ------------- |:-------------:| :----: |:-----:|:----:| + | clair | codefresh/klar:master | Scan an image with Clair | https://github.com/optiopay/klar | **`clair`** **`security`** | + | codefresh-cli | codefresh/cli | Operate on Codefresh resources | https://github.com/codefresh-io/codefresh | **`cli`** | + | dcos-app-deploy | codefresh/cf-deploy-dcos | Deploy an application on dcos cluster | https://github.com/codefresh-io/cf-deploy-dcos | **`dcos`** **`deploy`** **`deployment`** | + | docker-service | codefresh/docker-service | Codefresh docker-service plugin | https://github.com/codefresh-io/docker-service | **`docker`** **`docker-machine`** **`docker-compose`** | + | ecs-deploy | codefresh/ecs | Release a Helm chart (update or install) | https://github.com/codefresh-io/cf-deploy-ecs.git | **`ecs`** **`deploy`** **`containers`** | + | github-pr | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`docker`** **`github`** **`pull-request`** | + | helm | codefresh/cfstep-helm | Release a Helm chart (update or install) | https://github.com/codefresh-contrib/cfplugin-step | **`helm`** **`kubernetes`** | + | helm-legacy | codefresh/plugin-helm | Release a Helm chart (update or install). There is a new Helm plugin with added capabilities, we are keeping this plugin as is for backward-compatibility. The new plugin is at /incubator/helm (https://github.com/codefresh-io/plugins/tree/master/incubator/helm) | https://github.com/codefresh-io/cf-plugin-helm | **`helm`** **`kubernetes`** | + | import-docker-images | codefresh/import-images | Import metadata for existing Docker images into Codefresh | https://github.com/codefresh-io/cf-import-image | **`docker`** | + | jira | otomato/jira-cli | Update a Jira ticket | https://github.com/codefreshdemo/jira-cli-docker | **`jira`** | + | kompose | codefresh/plugin-helm | Release a Docker Compose to Kubernetes | https://github.com/codefresh-io/cf-kompose-plugin | **`docker-compose`** **`docker`** **`kompose`** **`kubernetes`** | + | release-to-NPM | | | | | + | run-jenkins-job | codefresh/run-jenkins-jobs | Run jenkins job from codefresh pipeline | https://github.com/codefresh-io/cf-run-jenkins-jobs | **`docker`** **`jenkins`** | + | slack | codefresh/slack-message-sender | Send message to slack channel | https://github.com/codefresh-io/slack-message-sender | **`slack`** | + | testplugin | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`testplugin`** | + | testplugin1 | codefresh/github-pr-plugin | test plugin1! | https://github.com/codefresh-io/github-pr-plugin | **`testplugin1`** | + diff --git a/plugins/aqua-scan/Dockerfile b/plugins/aqua-scan/Dockerfile new file mode 100644 index 00000000..9f511082 --- /dev/null +++ b/plugins/aqua-scan/Dockerfile @@ -0,0 +1,50 @@ +FROM ubuntu:xenial + +ENV LANG C.UTF-8 + +RUN { \ + echo '#!/bin/sh'; \ + echo 'set -e'; \ + echo; \ + echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ + } > /usr/local/bin/docker-java-home && \ + chmod +x /usr/local/bin/docker-java-home + +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzip2 \ + unzip \ + xz-utils \ + apt-transport-https \ + ca-certificates \ + curl \ + software-properties-common \ + python3-openssl && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" && \ + apt-get update && apt-get install -y --no-install-recommends \ + docker-ce=17.09.0~ce-0~ubuntu && \ + apt-get install -y \ + openjdk-8-jre \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + [ "$JAVA_HOME" = "$(docker-java-home)" ]; \ + \ + update-alternatives --get-selections | awk -v home="$JAVA_HOME" 'index($3, home) == 1 { $2 = "manual"; print | "update-alternatives --set-selections" }'; \ + update-alternatives --query java | grep -q 'Status: manual' && \ + mkdir /packages && \ + curl -o /packages/twistcli https://cdn.twistlock.com/support/twistcli && \ + curl -o /packages/nexus-iq-cli-1.38.0-02.jar https://download.sonatype.com/clm/scanner/nexus-iq-cli-1.38.0-02.jar + +COPY scripts /scripts + +RUN chmod +x -R /packages +RUN chmod +x -R /scripts + +WORKDIR /scripts + +ENTRYPOINT ["/usr/bin/python3"] +CMD [""] diff --git a/plugins/aqua-scan/LICENSE.md b/plugins/aqua-scan/LICENSE.md new file mode 100644 index 00000000..d39b0063 --- /dev/null +++ b/plugins/aqua-scan/LICENSE.md @@ -0,0 +1,7 @@ +© 2017 Steelcase Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/plugins/aqua-scan/README.md b/plugins/aqua-scan/README.md new file mode 100644 index 00000000..150dcd3c --- /dev/null +++ b/plugins/aqua-scan/README.md @@ -0,0 +1,105 @@ +# Security Scanning Tools [![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=SC-TechDev&repoName=docker-security-scanner&branch=master&pipelineName=docker-security-scanner&accountName=sctechdevservice&type=cf-1)]( https://g.codefresh.io/repositories/SC-TechDev/docker-security-scanner/builds?filter=trigger:build;branch:master;service:59e62c5410e3d100019e7f3d~docker-security-scanner) + +Docker image which invokes security script using TwistCLI (Nexus coming soon) + +### Prerequisites: + +Codefresh Subscription (Dedicated Infrastructure) - https://codefresh.io/ + +Twistlock Subscription - https://www.twistlock.com/ + +### Documentation: + +Twistlock CLI: https://twistlock.desk.com/customer/en/portal/articles/2875595-twistcli?b_id=16619 + +Nexus IQ CLI: TBD + +## Script Library + +### twistlock.py + +Executes TwistCLI to scan Docker image given. + +### options + +To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh Pipeline and also to your codefresh.yaml. + + +Example `codefresh.yml` build is below with required ENVIRONMENT VARIABLES in place. + + +| ENVIRONMENT VARIABLE | SCRIPT ARGUMENT | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|----------------------------|--------------------------------------|----------|---------|----------|---------------------------------------------------------------------------------------------------------------------------------| +| CF_METADATA | [ -c, --cf_metadata ] | null | boolean | No | In combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation | +| TL_CONSOLE_HOSTNAME | [ -C, --tl_console_hostname ] | null | string | Yes | hostname/ip | +| TL_CONSOLE_PORT | [ -P, --tl_console_port ] | null | string | Yes | port | +| TL_CONSOLE_USERNAME | [ -U, --tl_console_username ] | null | string | Yes | username | +| TL_CONSOLE_PASSWORD | [ -X, --tl_console_password ] | null | string | Yes | password | +| TL_ONLY | [ -Z, --tl_only ] | null | boolean | Yes | Twistlock Console Only (Required for now Nexus TBD) | +| TL_TLS_ENABLED | [ -T, --tl_tls_enabled ] | null | boolean | No | enable TLS | +| TL_HASH | [ -H, --tl_hash ] | [ sha1 ] | string | No | [ md5, sha1, sha256 ] hashing algorithm | +| TL_UPLOAD | [ -R, --tl_upload ] | null | boolean | No | ( ignores all options below if set and only returns report url ) uploads report to Twistlock to be used later via Twistlock API | +| TL_DETAILS | [ -D, --tl_details ] | null | boolean | No | prints an itemized list of each vulnerability found by the scanner | +| TL_ONLY_FIXED | [ -O, --tl_only_fixed ] | null | boolean | No | reports just the vulnerabilites that have fixes available | +| TL_COMPLIANCE_THRESHOLD | [ -M, --tl_compliance_threshold ] | null | string | No | [ low, medium, high ] sets the the minimal severity compliance issue that returns a fail exit code | +| TL_VULNERABILITY_THRESHOLD | [ -V, --tl_vulnerability_threshold ] | null | string | No | [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code | + +### codefresh.yml + +Codefresh Build Step to execute Twistlock scan. +All `${{var}}` variables must be put into Codefresh Build Parameters +codefresh.yml +```console + buildimage: + type: build + title: Build Runtime Image + dockerfile: Dockerfile + image_name: # Image you're building/scanning [repository/image] + tag: latest-cf-build-candidate + + nexus_iq_scan_build_stage: + type: composition + composition: + version: '2' + services: + imagebuild: + image: ${{buildimage}} + command: sh -c "exit 0" + labels: + build.image.id: ${{CF_BUILD_ID}} + composition_candidates: + scan_service: + image: sctechdev/docker-security-scanner + environment: + - TL_CONSOLE_HOSTNAME=${{TL_CONSOLE_HOSTNAME}} + - TL_CONSOLE_PORT=${{TL_CONSOLE_PORT}} + - TL_CONSOLE_USERNAME=${{TL_CONSOLE_USERNAME}} + - TL_CONSOLE_PASSWORD=${{TL_CONSOLE_PASSWORD}} + - TL_ONLY=${{TL_ONLY}} + command: twistlock.py -i "$$(docker inspect $$(docker inspect $$(docker ps -aqf label=build.image.id=${{CF_BUILD_ID}}) -f {{.Config.Image}}) -f {{.Id}} | sed 's/sha256://g')" + depends_on: + - imagebuild + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /var/lib/docker:/var/lib/docker + # Everything below this line is Optional for CF_METADATA + - '${{CF_VOLUME_NAME}}:/codefresh/volume' + add_flow_volume_to_composition: true + + export: + title: "Exporting variables..." + image: alpine + commands: + - echo "Exporting variables..." + + set_metadata: + title: "Setting metadata on image..." + image: alpine + commands: + - echo "Setting metadata on image..." + on_finish: + metadata: + set: + - '${{build_step.imageId}}': + - TwistlockSecurityReport: ${{TL_REPORT_URL}} +``` \ No newline at end of file diff --git a/plugins/aqua-scan/codefresh.yml b/plugins/aqua-scan/codefresh.yml new file mode 100644 index 00000000..31881bcb --- /dev/null +++ b/plugins/aqua-scan/codefresh.yml @@ -0,0 +1,41 @@ +version: '1.0' + +steps: + + buildimage: + type: build + description: image build step + dockerfile: Dockerfile + image_name: sctechdev/docker-security-scanner + tag: latest-cf-build-candidate + + push_image: + type: push + candidate: ${{buildimage}} + tag: latest + when: + branch: + only: + - master + push_image1: + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + + push_image_nexus_latest: + title: Push to Nexus Repo (latest) + type: push + candidate: ${{buildimage}} + tag: latest + registry: sonatype-docker-internal + when: + branch: + only: + - master + + push_image_neuxs_gitbranch_gitsha: + title: Push to Nexus Repo (gitbranch + gitsha) + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + registry: sonatype-docker-internal diff --git a/plugins/aqua-scan/plugin.yaml b/plugins/aqua-scan/plugin.yaml new file mode 100644 index 00000000..526a3162 --- /dev/null +++ b/plugins/aqua-scan/plugin.yaml @@ -0,0 +1,65 @@ +image: docker.io/sctechdev/docker-security-scanner +tag: master-c81e6d4 +version: 2.2 +description: Execute Twistlock image scan as build step +keywords: + - aqua 2.2 +home: https://hub.docker.com/r/sctechdev/docker-security-scanner/ +sources: + - https://github.com/SC-TechDev/docker-security-scanner +maintainers: + - name: Dustin Van Buskirk + email: dev@vanbuskirk.me + - name: Varun Tagore + email: rondevops@gmail.com +icon: A URL to an SVG or PNG image to be used as an icon (optional) +envs: + - name: CF_METADATA + type: required + description: Boolean; combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation + - name: TL_CONSOLE_HOSTNAME + type: required + description: Hostname or IP of Twistlock Console + - name: TL_CONSOLE_PORT + type: required + description: Port of Twistlock Console + - name: TL_CONSOLE_USERNAME + type: required + description: Username of Twistlock Console + - name: TL_CONSOLE_PASSWORD + type: required + description: Password of Twistlock Console User + - name: TL_ONLY + type: required + description: Twistlock Console Scan Only (No Nexus) + - name: TL_TLS_ENABLED + type: optional + description: Boolean; Enable TLS connection to Twistlock Console + - name: TL_HASH + type: optional + description: Hashing Algorithm to use + - name: TL_UPLOAD + type: optional + description: Upload report to Twistlock Console and return URL (Overrides all other options only returns URL) + - name: TL_DETAILS + type: optional + description: Prints an itemized list of each vulnerability found by the scanner + - name: TL_ONLY_FIXED + type: optional + description: reports just the vulnerabilites that have fixes available + - name: TL_COMPLIANCE_THRESHOLD + type: optional + description: [ low, medium, high ] sets the the minimal severity compliance issue that returns a fail exit code + - name: TL_VULNERABILITY_THRESHOLD + type: optional + description: [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code +volumes: + - name: /var/run/docker.sock:/var/run/docker.sock + required: true + description: Docker socket for DIND + - name: /var/lib/docker:/var/lib/docker + required: true + description: Docker lib access for DIND + - name: '${{CF_VOLUME_NAME}}:/codefresh/volume' + required: false + description: Volume required if setting Docker image metadata using Codefresh \ No newline at end of file diff --git a/plugins/aqua-scan/scripts/twistlock.py b/plugins/aqua-scan/scripts/twistlock.py new file mode 100644 index 00000000..50510ebf --- /dev/null +++ b/plugins/aqua-scan/scripts/twistlock.py @@ -0,0 +1,195 @@ +import sys +import subprocess +import time +import os +import getopt +import ssl +import re + +def main(argv): + try: + st_scanner_jar = '/packages/nexus-iq-cli-1.38.0-02.jar' + tl_scanner_exec = '/packages/twistcli' + cf_metadata = os.environ.get('CF_METADATA') + docker_image_id = os.environ.get('DOCKER_IMAGE_ID') + st_application_id = os.environ.get('NEXUS_IQ_APPLICATION_ID') + st_url = os.environ.get('NEXUS_IQ_URL') + st_username = os.environ.get('NEXUS_IQ_USERNAME') + st_password = os.environ.get('NEXUS_IQ_PASSWORD') + st_stage = os.environ.get('NEXUS_IQ_STAGE', 'Build') + tl_console_hostname = os.environ.get('TL_CONSOLE_HOSTNAME') + tl_console_port = os.environ.get('TL_CONSOLE_PORT') + tl_console_username = os.environ.get('TL_CONSOLE_USERNAME') + tl_console_password = os.environ.get('TL_CONSOLE_PASSWORD') + tl_only = os.environ.get('TL_ONLY') + tl_tls_enabled = os.environ.get('TL_TLS_ENABLED') + tl_hash = os.environ.get('TL_HASH', 'sha1') + tl_include_package_files = os.environ.get('TL_INCLUDE_PACKAGE_FILES') + tl_upload = os.environ.get('TL_UPLOAD') + tl_details = os.environ.get('TL_DETAILS') + tl_only_fixed = os.environ.get('TL_ONLY_FIXED') + tl_compliance_threshold = os.environ.get('TL_COMPLIANCE_THRESHOLD') + tl_vulnerability_threshold = os.environ.get('TL_VULNERABILITY_THRESHOLD') + java_home = os.environ.get('JAVA_HOME', '/usr/lib/jvm/java-8-openjdk-amd64') + java_keystore_password = os.environ.get('JAVA_KEYSTORE_PASSWORD', 'changeit') + opts, args = getopt.getopt(argv,"h:c:i:a:j:u:p:s:t:E:C:P:U:X:Z:J:K:T:H:F:R:D:O:M:V:", + ["help", "docker_image_id=", "cf_metadata", "st_application_id=", "st_scanner_jar=", "st_url=", "st_username=", "st_password=", "st_stage=", + "tl_scanner_exec=", "tl_console_hostname", "tl_console_port", "tl_console_username=", "tl_console_password=", "tl_only", + "tl_tls_enabled", "tl_hash", "tl_include_package_files", "tl_upload", "tl_details", "tl_only_fixed", "tl_compliance_threshold", + "tl_vulnerability_threshold", "java_home=", "java_keystore_password" + ] + ) + except getopt.GetoptError: + print('Unrecognized Argument! See arguments list using -h or --help. Ex. twistlock.py --help') + sys.exit(2) + for opt, arg in opts: + if opt == ("h","--help"): + print('twistlock.py --arg value or twistlock.py -a value') + print('-c --cf_metadata - Adds scanner info to Docker image metadata for Codefresh builds') + print('-i --docker_image_id [DOCKER_IMAGE_ID] - Docker Image ID short or long IDs accepted') + print('-a --st_application_id [NEXUS_IQ_APPLICATION_ID] - Applications ID in Nexus IQ') + print('-j --st_scanner_jar - Location of nexus-iq-cli*.jar file') + print('-u --st_username [NEXUS_IQ_USERNAME] - Nexus IQ Username') + print('-p --st_password [NEXUS_IQ_PASSWORD] - Password for Nexus IQ Username') + print('-s --st_url [NEXUS_IQ_URL] - Sonatype URL must be HTTPS with Valid Cert') + print('-t --st_stage [NEXUS_IQ_STAGE] - Sonatype Stage') + print('-E --tl_scanner_exec - Location of twistlock-scanner executable') + print('-C --tl_console_hostname [TL_CONSOLE_HOSTNAME] - Hostname/IP for Twistlock Console') + print('-P --tl_console_port [TL_CONSOLE_PORT] - Twistock Console port') + print('-U --tl_console_username [TL_CONSOLE_USERNAME] - Twistlock Console Username') + print('-X --tl_console_password [TL_CONSOLE_PASSWORD] - Password for Twistlock Console Username') + print('-Z --tl_only [TL_ONLY] - Run a stand-alone Twistlock scan') + print('-T --tl_tls_enabled [TL_TLS_ENABLED] - Enabled TLS/HTTPS for Twistlock scan') + print('-H --tl_hash [TL_HASH] - Specifies the hashing algorithm. Supported values are md5, sha1, and sha256') + print('-F --tl_include_package_files [TL_INCLUDE_PACKAGE_FILES] - List all packages in the image') + print('-R --tl_upload [TL_UPLOAD] - Whether to upload the scan result') + print('-D --tl_details [TL_DETAILS] - Prints an itemized list of each vulnerability found by the scanner') + print('-O --tl_only_fixed [TL_ONLY_FIXED] - Reports just the vulnerabilities that have fixes available') + print('-M --tl_compliance_threshold [TL_COMPLIANCE_THRESHOLD] - Sets the minimum severity compliance issue that returns a fail exit code') + print('-V --tl_vulnerability_threshold [TL_VULNERABILITY_THRESHOLD] - Sets the minimum severity vulnerability that returns a fail exit code') + print('-J --java_home [JAVA_HOME] - Java Home Directory (no trailing /)') + print('-K --java_keystore_password [JAVA_KEYSTORE_PASSWORD] - Java Keystore Password') + sys.exit() + elif opt in ("-c", "--cf_metadata"): + cf_metadata = arg + elif opt in ("-i", "--docker_image_id"): + docker_image_id = arg + elif opt in ("-a", "--st_application_id"): + st_application_id = arg + elif opt in ("-j", "--st_scanner_jar"): + st_scanner_jar = arg + elif opt in ("-s", "--st_url"): + st_url = arg + elif opt in ("-u", "--st_username"): + st_username = arg + elif opt in ("-p", "--st_password"): + st_password = arg + elif opt in ("-t", "--st_stage"): + st_stage = arg + elif opt in ("-E", "--tl_scanner_exec"): + tl_scanner_exec = arg + elif opt in ("-C", "--tl_console_hostname"): + tl_console_hostname = arg + elif opt in ('-P', "--tl_console_port"): + tl_console_port = arg + elif opt in ("-U", "--tl_console_username"): + tl_console_username = arg + elif opt in ('-X', "--tl_console_password"): + tl_console_password = arg + elif opt in ('-Z', "--tl_only"): + tl_only = arg + elif opt in ('-T', "--tl_tls_enabled"): + tl_tls_enabled = arg + elif opt in ('-H', "--tl_hash"): + tl_hash = arg + elif opt in ('-F', "--tl_include_package_files"): + tl_include_package_files = arg + elif opt in ('-R', "--tl_upload"): + tl_upload = arg + elif opt in ('-D', "--tl_details"): + tl_details = arg + elif opt in ('-O', "--tl_only_fixed"): + tl_only_fixed = arg + elif opt in ('-M', "--tl_compliance_threshold"): + tl_compliance_threshold = arg + elif opt in ('-V', "--tl_vulnerability_threshold"): + tl_vulnerability_threshold = arg + elif opt in ('-J', "--java_home"): + java_home = arg + elif opt in ('-K', "--java_keystore_password"): + java_keystore_password = arg + + # Determine if TLS is required + if not (tl_only or tl_tls_enable): + # Download and store Twistlock Console site cert + cert = ssl.get_server_certificate((tl_console_hostname, tl_console_port)) + cert, file=open("twistlock.cer", "w") + + # Run stand-alone Twistlock Scan + if tl_only: + + # Determine Protocol + tl_console_protocol = 'https' if tl_tls_enabled else 'http' + + # Base twistcli commnad to scan images + twistcli_base_command = '/packages/twistcli images scan' + + # Required twistcli options to successfully scan image + twistcli_required_options = ("--address '{}://{}:{}' --user '{}' --password '{}' --hash '{}'" + .format(tl_console_protocol, tl_console_hostname, tl_console_port, tl_console_username, tl_console_password, tl_hash)) + + # Optional twistcli options + options = [] + if tl_include_package_files: + options.append("--include-package-files") + if tl_upload: + options.append("--upload") + if tl_details: + options.append("--details") + if tl_compliance_threshold: + options.append("--compliance-threshold '{}'".format(tl_compliance_threshold)) + if tl_vulnerability_threshold: + options.append("--vulnerability-threshold '{}'".format(tl_vulnerability_threshold)) + twistcli_optional_options = ' '.join(options) + + # Concatenate twistcli executable with command + twistcli_exec = ' '.join([twistcli_base_command, twistcli_required_options, twistcli_optional_options, docker_image_id]) + # Execute command but pipe stdout to variable and parse for Twistlock URL + if cf_metadata: + proc = subprocess.Popen(twistcli_exec, shell=True, stdout=subprocess.PIPE) + stdout = proc.communicate()[0].decode('utf-8').strip('\n') + tl_report_url = ''.join(re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', stdout)) + with open('/codefresh/volume/env_vars_to_export', 'a') as f: + print('Twistlock Report: ' + tl_report_url) + f.write('TL_REPORT_URL=' + tl_report_url) + f.close() + # Execute command and send stdout to console + else: + proc = subprocess.Popen(twistcli_exec, shell=True) + stdout, stderr = proc.communicate() + if proc.returncode != 0: + sys.exit(1) + + else: + + # Import site cert into java keystore + command = ['keytool -importcert -noprompt -file twistlock.cer -alias twistlock -storepass {} -keystore {}/jre/lib/security/cacerts' + .format(java_keystore_password, java_home) + ] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + + # Start Docker + command = ['for i in {1..5}; do service docker start && break || sleep 15; done'] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + + # Run Twistlock Scan and send file to Sonatype + command = ["java -cp {} com.sonatype.insight.scan.cli.TwistlockPolicyEvaluatorCli -i {} -a '{}:{}' -s '{}' --twistlock-scanner-executable {} --twistlock-console-url https://{}:{} --twistlock-console-username {} --twistlock-console-password '{}' --stage '{}' {}" + .format(st_scanner_jar, st_application_id, st_username, st_password, st_url, tl_scanner_exec, tl_console_hostname, tl_console_port, tl_console_username, tl_console_password, st_stage, docker_image_id) + ] + proc = subprocess.Popen(command, shell=True) + stdout, stderr = proc.communicate() + +if __name__ == "__main__": + main(sys.argv[1:]) \ No newline at end of file diff --git a/plugins/clair/plugin.yaml b/plugins/clair/plugin.yaml index 4c8e1d10..b95d7ef2 100644 --- a/plugins/clair/plugin.yaml +++ b/plugins/clair/plugin.yaml @@ -3,6 +3,7 @@ version: 1.0.0 description: Scan an image with Clair keywords: - clair + - security home: https://github.com/codefresh-io/pugins/tree/master/incubator/clair sources: - https://github.com/optiopay/klar diff --git a/plugins/testplugin/README.MD b/plugins/testplugin/README.MD new file mode 100644 index 00000000..27c33099 --- /dev/null +++ b/plugins/testplugin/README.MD @@ -0,0 +1,42 @@ +# GitHub Pull Request Codefresh Plugin + +Creates a new pull request in GitHub + +## Environment Variables + +- `GITHUB_TOKEN`: token for access to GitHub +- `GITHUB_REPO_OWNER`: name of repo owner +- `GITHUB_REPO_NAME`: name of repo +- `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch +- `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. +- `TITLE`: The title of the pull request + +## Deployment with Codefresh +- Add encrypted environment variables for: + * GITHUB_TOKEN + +- Add "github-pr" step as descibed below + +```yaml +# codefresh.yml example with github pr step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push to registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + github-pr: + image: codefresh/github-pr-plugin + environment: + - GITHUB_REPO_OWNER=${{CF_REPO_OWNER}} + - GITHUB_REPO_NAME=${{CF_REPO_NAME}} + - BASE=master + - HEAD=${{CF_BRANCH}} + - TITLE=Codefresh PR for ${{CF_BRANCH}} +``` diff --git a/plugins/testplugin/plugin.yaml b/plugins/testplugin/plugin.yaml new file mode 100644 index 00000000..f3c970b9 --- /dev/null +++ b/plugins/testplugin/plugin.yaml @@ -0,0 +1,33 @@ +image: codefresh/github-pr-plugin +tag: master +version: 0.1.0 +description: Creates GitHub pull request +keywords: + - testplugin + +home: https://github.com/codefresh-io/github-pr-plugin +sources: + - https://github.com/codefresh-io/github-pr-plugin +maintainers: # (optional) + - name: Oleg Verhovsky + email: oleg@codefresh.io +icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png +envs: + - name: GITHUB_TOKEN + type: required + description: Token for access to GitHub + - name: GITHUB_REPO_OWNER + type: required + description: Name of repo owner + - name: GITHUB_REPO_NAME + type: required + description: Name of repo + - name: HEAD + type: required + description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this - username:branch + - name: BASE + type: required + description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + - name: TITLE + type: required + description: The title of the pull request diff --git a/plugins/testplugin1/README.MD b/plugins/testplugin1/README.MD new file mode 100644 index 00000000..27c33099 --- /dev/null +++ b/plugins/testplugin1/README.MD @@ -0,0 +1,42 @@ +# GitHub Pull Request Codefresh Plugin + +Creates a new pull request in GitHub + +## Environment Variables + +- `GITHUB_TOKEN`: token for access to GitHub +- `GITHUB_REPO_OWNER`: name of repo owner +- `GITHUB_REPO_NAME`: name of repo +- `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch +- `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. +- `TITLE`: The title of the pull request + +## Deployment with Codefresh +- Add encrypted environment variables for: + * GITHUB_TOKEN + +- Add "github-pr" step as descibed below + +```yaml +# codefresh.yml example with github pr step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push to registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + github-pr: + image: codefresh/github-pr-plugin + environment: + - GITHUB_REPO_OWNER=${{CF_REPO_OWNER}} + - GITHUB_REPO_NAME=${{CF_REPO_NAME}} + - BASE=master + - HEAD=${{CF_BRANCH}} + - TITLE=Codefresh PR for ${{CF_BRANCH}} +``` diff --git a/plugins/testplugin1/plugin.yaml b/plugins/testplugin1/plugin.yaml new file mode 100644 index 00000000..2c5a092b --- /dev/null +++ b/plugins/testplugin1/plugin.yaml @@ -0,0 +1,34 @@ +image: codefresh/github-pr-plugin +tag: master +version: 0.1.0 +description: test plugin1! +keywords: + - testplugin1 + + +home: https://github.com/codefresh-io/github-pr-plugin +sources: + - https://github.com/codefresh-io/github-pr-plugin +maintainers: # (optional) + - name: Oleg Verhovsky + email: oleg@codefresh.io +icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png +envs: + - name: GITHUB_TOKEN + type: required + description: Token for access to GitHub + - name: GITHUB_REPO_OWNER + type: required + description: Name of repo owner + - name: GITHUB_REPO_NAME + type: required + description: Name of repo + - name: HEAD + type: required + description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this - username:branch + - name: BASE + type: required + description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + - name: TITLE + type: required + description: The title of the pull request diff --git a/plugins/versioner/Dockerfile b/plugins/versioner/Dockerfile new file mode 100644 index 00000000..9f511082 --- /dev/null +++ b/plugins/versioner/Dockerfile @@ -0,0 +1,50 @@ +FROM ubuntu:xenial + +ENV LANG C.UTF-8 + +RUN { \ + echo '#!/bin/sh'; \ + echo 'set -e'; \ + echo; \ + echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ + } > /usr/local/bin/docker-java-home && \ + chmod +x /usr/local/bin/docker-java-home + +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzip2 \ + unzip \ + xz-utils \ + apt-transport-https \ + ca-certificates \ + curl \ + software-properties-common \ + python3-openssl && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" && \ + apt-get update && apt-get install -y --no-install-recommends \ + docker-ce=17.09.0~ce-0~ubuntu && \ + apt-get install -y \ + openjdk-8-jre \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + [ "$JAVA_HOME" = "$(docker-java-home)" ]; \ + \ + update-alternatives --get-selections | awk -v home="$JAVA_HOME" 'index($3, home) == 1 { $2 = "manual"; print | "update-alternatives --set-selections" }'; \ + update-alternatives --query java | grep -q 'Status: manual' && \ + mkdir /packages && \ + curl -o /packages/twistcli https://cdn.twistlock.com/support/twistcli && \ + curl -o /packages/nexus-iq-cli-1.38.0-02.jar https://download.sonatype.com/clm/scanner/nexus-iq-cli-1.38.0-02.jar + +COPY scripts /scripts + +RUN chmod +x -R /packages +RUN chmod +x -R /scripts + +WORKDIR /scripts + +ENTRYPOINT ["/usr/bin/python3"] +CMD [""] diff --git a/plugins/versioner/LICENSE.md b/plugins/versioner/LICENSE.md new file mode 100644 index 00000000..d39b0063 --- /dev/null +++ b/plugins/versioner/LICENSE.md @@ -0,0 +1,7 @@ +© 2017 Steelcase Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/plugins/versioner/README.md b/plugins/versioner/README.md new file mode 100644 index 00000000..150dcd3c --- /dev/null +++ b/plugins/versioner/README.md @@ -0,0 +1,105 @@ +# Security Scanning Tools [![Codefresh build status]( https://g.codefresh.io/api/badges/build?repoOwner=SC-TechDev&repoName=docker-security-scanner&branch=master&pipelineName=docker-security-scanner&accountName=sctechdevservice&type=cf-1)]( https://g.codefresh.io/repositories/SC-TechDev/docker-security-scanner/builds?filter=trigger:build;branch:master;service:59e62c5410e3d100019e7f3d~docker-security-scanner) + +Docker image which invokes security script using TwistCLI (Nexus coming soon) + +### Prerequisites: + +Codefresh Subscription (Dedicated Infrastructure) - https://codefresh.io/ + +Twistlock Subscription - https://www.twistlock.com/ + +### Documentation: + +Twistlock CLI: https://twistlock.desk.com/customer/en/portal/articles/2875595-twistcli?b_id=16619 + +Nexus IQ CLI: TBD + +## Script Library + +### twistlock.py + +Executes TwistCLI to scan Docker image given. + +### options + +To use an ENVIRONMENT VARIABLE you need to add the variables to your Codefresh Pipeline and also to your codefresh.yaml. + + +Example `codefresh.yml` build is below with required ENVIRONMENT VARIABLES in place. + + +| ENVIRONMENT VARIABLE | SCRIPT ARGUMENT | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|----------------------------|--------------------------------------|----------|---------|----------|---------------------------------------------------------------------------------------------------------------------------------| +| CF_METADATA | [ -c, --cf_metadata ] | null | boolean | No | In combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation | +| TL_CONSOLE_HOSTNAME | [ -C, --tl_console_hostname ] | null | string | Yes | hostname/ip | +| TL_CONSOLE_PORT | [ -P, --tl_console_port ] | null | string | Yes | port | +| TL_CONSOLE_USERNAME | [ -U, --tl_console_username ] | null | string | Yes | username | +| TL_CONSOLE_PASSWORD | [ -X, --tl_console_password ] | null | string | Yes | password | +| TL_ONLY | [ -Z, --tl_only ] | null | boolean | Yes | Twistlock Console Only (Required for now Nexus TBD) | +| TL_TLS_ENABLED | [ -T, --tl_tls_enabled ] | null | boolean | No | enable TLS | +| TL_HASH | [ -H, --tl_hash ] | [ sha1 ] | string | No | [ md5, sha1, sha256 ] hashing algorithm | +| TL_UPLOAD | [ -R, --tl_upload ] | null | boolean | No | ( ignores all options below if set and only returns report url ) uploads report to Twistlock to be used later via Twistlock API | +| TL_DETAILS | [ -D, --tl_details ] | null | boolean | No | prints an itemized list of each vulnerability found by the scanner | +| TL_ONLY_FIXED | [ -O, --tl_only_fixed ] | null | boolean | No | reports just the vulnerabilites that have fixes available | +| TL_COMPLIANCE_THRESHOLD | [ -M, --tl_compliance_threshold ] | null | string | No | [ low, medium, high ] sets the the minimal severity compliance issue that returns a fail exit code | +| TL_VULNERABILITY_THRESHOLD | [ -V, --tl_vulnerability_threshold ] | null | string | No | [ low, medium, high, critical ] sets the minimal severity vulnerability that returns a fail exit code | + +### codefresh.yml + +Codefresh Build Step to execute Twistlock scan. +All `${{var}}` variables must be put into Codefresh Build Parameters +codefresh.yml +```console + buildimage: + type: build + title: Build Runtime Image + dockerfile: Dockerfile + image_name: # Image you're building/scanning [repository/image] + tag: latest-cf-build-candidate + + nexus_iq_scan_build_stage: + type: composition + composition: + version: '2' + services: + imagebuild: + image: ${{buildimage}} + command: sh -c "exit 0" + labels: + build.image.id: ${{CF_BUILD_ID}} + composition_candidates: + scan_service: + image: sctechdev/docker-security-scanner + environment: + - TL_CONSOLE_HOSTNAME=${{TL_CONSOLE_HOSTNAME}} + - TL_CONSOLE_PORT=${{TL_CONSOLE_PORT}} + - TL_CONSOLE_USERNAME=${{TL_CONSOLE_USERNAME}} + - TL_CONSOLE_PASSWORD=${{TL_CONSOLE_PASSWORD}} + - TL_ONLY=${{TL_ONLY}} + command: twistlock.py -i "$$(docker inspect $$(docker inspect $$(docker ps -aqf label=build.image.id=${{CF_BUILD_ID}}) -f {{.Config.Image}}) -f {{.Id}} | sed 's/sha256://g')" + depends_on: + - imagebuild + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /var/lib/docker:/var/lib/docker + # Everything below this line is Optional for CF_METADATA + - '${{CF_VOLUME_NAME}}:/codefresh/volume' + add_flow_volume_to_composition: true + + export: + title: "Exporting variables..." + image: alpine + commands: + - echo "Exporting variables..." + + set_metadata: + title: "Setting metadata on image..." + image: alpine + commands: + - echo "Setting metadata on image..." + on_finish: + metadata: + set: + - '${{build_step.imageId}}': + - TwistlockSecurityReport: ${{TL_REPORT_URL}} +``` \ No newline at end of file diff --git a/plugins/versioner/codefresh.yml b/plugins/versioner/codefresh.yml new file mode 100644 index 00000000..31881bcb --- /dev/null +++ b/plugins/versioner/codefresh.yml @@ -0,0 +1,41 @@ +version: '1.0' + +steps: + + buildimage: + type: build + description: image build step + dockerfile: Dockerfile + image_name: sctechdev/docker-security-scanner + tag: latest-cf-build-candidate + + push_image: + type: push + candidate: ${{buildimage}} + tag: latest + when: + branch: + only: + - master + push_image1: + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + + push_image_nexus_latest: + title: Push to Nexus Repo (latest) + type: push + candidate: ${{buildimage}} + tag: latest + registry: sonatype-docker-internal + when: + branch: + only: + - master + + push_image_neuxs_gitbranch_gitsha: + title: Push to Nexus Repo (gitbranch + gitsha) + type: push + candidate: ${{buildimage}} + tag: ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}} + registry: sonatype-docker-internal diff --git a/plugins/versioner/plugin.yaml b/plugins/versioner/plugin.yaml new file mode 100644 index 00000000..21796cb6 --- /dev/null +++ b/plugins/versioner/plugin.yaml @@ -0,0 +1,32 @@ +image: docker.io/codefresh/versioner +tag: latest +version: 1.0 +description: Execute Twistlock image scan as build step +keywords: + - versioner 1.0 +home: https://hub.docker.com/r/sctechdev/docker-security-scanner/ +sources: + - https://github.com/codefresh-io/cf-plugin-versioner.git +maintainers: + - name: Dustin Van Buskirk + email: dev@vanbuskirk.me + - name: Varun Tagore + email: rondevops@gmail.com +#icon: A URL to an SVG or PNG image to be used as an icon (optional) +envs: + + - name: CURRENT_VERSION_SOURCE # from_file , from_tag, + type : required + description : action + - name: MAJOR + type: optional + - name: MINOR + type: optional + description: Boolean; combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation + - name: PATCH + type: optional + description: Boolean; combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation + - name: BUILD_NUM + type: optional + description: Boolean; combination with TL_UPLOAD stores Twistlock Report URL in TL_REPORT_URL var for Codefresh metadata annotation + \ No newline at end of file diff --git a/tools/Dockerfile b/tools/Dockerfile new file mode 100644 index 00000000..c115655b --- /dev/null +++ b/tools/Dockerfile @@ -0,0 +1,7 @@ +FROM node:alpine +WORKDIR /src +COPY ./package.json /src +RUN npm install +COPY . /src + +CMD ["node", "/src/index.js"] \ No newline at end of file diff --git a/tools/index.js b/tools/index.js new file mode 100644 index 00000000..57bf1f33 --- /dev/null +++ b/tools/index.js @@ -0,0 +1,77 @@ + + +//list folders +//build catalog + +const { lstatSync, readdirSync } = require('fs') +const { basename, join } = require('path') +const kefir = require('kefir'); +const _ = require('lodash'); +const YAML = require('yamljs'); +const Mustache = require('mustache'); +const fs = require('fs'); +const debug = require('debug'); + +const pluginsDir = process.env.PLUGINS || "../plugins" +debug(`plugins path is ${pluginsDir}`); +const isDirectory = source => lstatSync(source).isDirectory() +const getDirectories = source => + readdirSync(source) + .map(name => join(source, name)).filter(isDirectory); +const getContent = source => + readdirSync(source) + .map(name => join(source, name)) + +const validatePlugin = (p)=>{return p;} +const catalog = "dynamic-catalog.md"; +let plugins = kefir.sequentially(0, getDirectories(pluginsDir)).map(validatePlugin) + + +const createMD = (template , data)=>{ + Mustache.parse(template); // optional, speeds up future uses + data.date = new Date(); + var rendered = Mustache.render(template, data); + return rendered; +} + + let pluginData = plugins.flatMap((plugin)=>{ + let yaml = _.chain(getContent(plugin)).map((f)=>{ + + return f; + }).thru((f)=>{ + return f; + }).filter((file)=> + (basename(file) === "plugin.yaml")) + .first().value(); + let pluginMeta; + try{ + pluginMeta = YAML.load(yaml) + }catch(e){ + return kefir.constantError(e) + } + return (_.isUndefined(yaml)) ? kefir.never() : kefir.constant(pluginMeta) + + }).ignoreErrors().scan((plugins , p)=>{ + plugins.push(p); + return plugins; + }, []).spy().last() + + let template = kefir.fromNodeCallback(_.partial(fs.readFile, "template.md")) + .map((f)=>new Buffer(f).toString()).spy(); + + + kefir.concat([template, pluginData]).scan((prev, next)=>{ + prev.push(next); + return prev; + }, []).last().spy('->').map((data)=>{ + let t = _.first(data); + let plugins = _.last(data); + // plugins = {"plugins": [{image:"1"}, {"image":"2"}]} + return createMD(t, {plugins}); + }).flatMap((data)=>{ + return kefir.fromNodeCallback( + _.partial(fs.writeFile, catalog, data) + ) + }).log(); + + \ No newline at end of file diff --git a/tools/package-lock.json b/tools/package-lock.json new file mode 100644 index 00000000..6898b1f4 --- /dev/null +++ b/tools/package-lock.json @@ -0,0 +1,107 @@ +{ + "name": "catalog-creator", + "version": "1.0.0", + "lockfileVersion": 1, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "debug": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "kefir": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/kefir/-/kefir-3.8.5.tgz", + "integrity": "sha512-u4UxHyIvdOOM62Y/yAtYPeYEg/yUfwl5/QF3ksrTRxEdhpa7LAFChntZxVqbcf0gCGblZzL/JnV/gZYWOps3Qw==" + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "mustache": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.1.tgz", + "integrity": "sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==" + } + } +} diff --git a/tools/package.json b/tools/package.json new file mode 100644 index 00000000..bf352200 --- /dev/null +++ b/tools/package.json @@ -0,0 +1,18 @@ +{ + "name": "catalog-creator", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "debug": "^4.1.0", + "kefir": "^3.8.5", + "lodash": "^4.17.11", + "mustache": "^3.0.1", + "yamljs": "^0.3.0" + } +} diff --git a/tools/t.yaml b/tools/t.yaml new file mode 100644 index 00000000..bd6bce3e --- /dev/null +++ b/tools/t.yaml @@ -0,0 +1,15 @@ +version: ‘1.0’ + +steps: + + BuildingDockerImage: + title: Building Docker Image + type: build + image_name: EXAMPLEUSER/EXAMPLEREPO + working_directory: ./ + dockerfile: Dockerfile + tag: ‘${{CF_BRANCH_TAG_NORMALIZED}}’ + metadata: + set: + - commit_url: ‘${{CF_COMMIT_URL}}’ + - note: ‘example note’ \ No newline at end of file diff --git a/tools/template.md b/tools/template.md new file mode 100644 index 00000000..10662ef4 --- /dev/null +++ b/tools/template.md @@ -0,0 +1,10 @@ +# **Catalog** +** {{date}}** + +# ?? +| Plugin Name | Description | source | Tags | +| ------------- |:-------------:| -----:|----:| + {{#plugins}} + | {{image}} | {{description}} | {{#sources}}{{.}}{{/sources}} | {{#keywords}} **`{{.}}`** {{/keywords}}| +{{/plugins}} + diff --git a/version b/version new file mode 100644 index 00000000..3eefcb9d --- /dev/null +++ b/version @@ -0,0 +1 @@ +1.0.0 From 6106112f7b1887079c7058c9b0100939bf36dd92 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:54:47 +0000 Subject: [PATCH 096/282] plugins_2018-12-10-04-54-47 --- dynamic-catalog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 68565340..07fdeebd 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Sun Dec 09 2018 14:56:15 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:54:47 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | @@ -20,4 +20,5 @@ Created at ** Sun Dec 09 2018 14:56:15 GMT+0000 (Coordinated Universal Time)** | slack | codefresh/slack-message-sender | Send message to slack channel | https://github.com/codefresh-io/slack-message-sender | **`slack`** | | testplugin | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`testplugin`** | | testplugin1 | codefresh/github-pr-plugin | test plugin1! | https://github.com/codefresh-io/github-pr-plugin | **`testplugin1`** | + | versioner | docker.io/codefresh/versioner | Execute Twistlock image scan as build step | https://github.com/codefresh-io/cf-plugin-versioner.git | **`versioner 1.0`** | From a440915c7a55e6f63c9e735635fde8d4be77bedf Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:55:17 +0000 Subject: [PATCH 097/282] plugins_2018-12-10-04-55-17 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 07fdeebd..4e1555e7 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:54:47 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:55:17 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 492a9824ab9ca8eca11b42b0024a69fc4365001c Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:55:44 +0000 Subject: [PATCH 098/282] plugins_2018-12-10-04-55-44 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 4e1555e7..d57120fa 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:55:17 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:55:44 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4266f2f57517d15efb6439301f6cd4bc01f51cce Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:56:10 +0000 Subject: [PATCH 099/282] plugins_2018-12-10-04-56-10 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d57120fa..b9a799c0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:55:44 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:56:10 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From d8733eafe5a1157e7b53ac06091b8d7a0155d4cd Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:56:43 +0000 Subject: [PATCH 100/282] plugins_2018-12-10-04-56-43 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b9a799c0..e1eb55d0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:56:10 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:56:43 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4aa1ecdb839f4a5eafb4f4a274ea0bdd9ec9f565 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:57:18 +0000 Subject: [PATCH 101/282] plugins_2018-12-10-04-57-18 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e1eb55d0..adcfd904 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:56:43 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:57:18 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 12d077b113c7f3a38fc23ebc5b31e02503c72cca Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:57:43 +0000 Subject: [PATCH 102/282] plugins_2018-12-10-04-57-43 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index adcfd904..aba45c64 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:57:18 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:57:43 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 9facddd989e33cb9702dbaf3caca3ab9b4ff2bcf Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:58:18 +0000 Subject: [PATCH 103/282] plugins_2018-12-10-04-58-18 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index aba45c64..f2631ece 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:57:43 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:58:18 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c6c1bc3eccb8b850fcf2e3848b98407dbd5138a6 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:58:44 +0000 Subject: [PATCH 104/282] plugins_2018-12-10-04-58-44 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index f2631ece..1e852040 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:58:18 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:58:44 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 340b22a2613c51b800218294ebfb154a63f3a8ac Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:59:14 +0000 Subject: [PATCH 105/282] plugins_2018-12-10-04-59-14 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1e852040..10de85c8 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:58:44 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:59:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5705cf28a6a9e4eddd77e0e34a9268e7c1002ed9 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 04:59:47 +0000 Subject: [PATCH 106/282] plugins_2018-12-10-04-59-47 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 10de85c8..83214a49 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:59:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 04:59:47 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 8779aca4dccd9f316a54330d1ea3d7efb1ac7f97 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:00:14 +0000 Subject: [PATCH 107/282] plugins_2018-12-10-05-00-14 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 83214a49..ba6ed6da 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 04:59:47 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:00:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 41bb9cda6dbb26ec357a0754e04f541cdffb1e79 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:00:47 +0000 Subject: [PATCH 108/282] plugins_2018-12-10-05-00-47 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ba6ed6da..e2f61346 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:00:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:00:47 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4481324be51027d8c08d705307e65b5f74bdce03 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:01:14 +0000 Subject: [PATCH 109/282] plugins_2018-12-10-05-01-14 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e2f61346..c3080d2f 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:00:47 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:01:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3f6ef1009efcee04fa22a1f3853e33eced4b030b Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:01:50 +0000 Subject: [PATCH 110/282] plugins_2018-12-10-05-01-50 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c3080d2f..bd6030c0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:01:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:01:50 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 149beeb3caa52b68edbc401208c831917a22ec73 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:02:11 +0000 Subject: [PATCH 111/282] plugins_2018-12-10-05-02-11 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index bd6030c0..b541afff 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:01:50 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:02:11 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a1390df067f787976dbf323396080b54466ec028 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:02:35 +0000 Subject: [PATCH 112/282] plugins_2018-12-10-05-02-35 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b541afff..75654071 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:02:11 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:02:35 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 48efefa8e4ade80cb41998b323d46c010ed0ebe2 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:03:02 +0000 Subject: [PATCH 113/282] plugins_2018-12-10-05-03-02 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 75654071..fe778d5c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:02:35 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:03:02 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3bf1dc02be45b2e540fda858223065b459643b54 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:03:53 +0000 Subject: [PATCH 114/282] plugins_2018-12-10-05-03-53 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index fe778d5c..1a4ea119 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:03:02 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:03:53 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From b7cca3557885632ceb72c8723075b596249dd109 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:04:28 +0000 Subject: [PATCH 115/282] plugins_2018-12-10-05-04-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1a4ea119..36a0cff8 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:03:53 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:04:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e2706e24192da006a7d5278fe102253c9feb8d72 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:04:55 +0000 Subject: [PATCH 116/282] plugins_2018-12-10-05-04-55 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 36a0cff8..d53b74c4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:04:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:04:55 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e1a0599f2cccbff55ebd9b56f148c5fb6192b619 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:05:21 +0000 Subject: [PATCH 117/282] plugins_2018-12-10-05-05-21 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d53b74c4..3e25a173 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:04:55 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:05:21 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 8d2af2dd4264e282d3ee0763dbfba90ae3db183e Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:05:44 +0000 Subject: [PATCH 118/282] plugins_2018-12-10-05-05-44 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 3e25a173..d2301321 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:05:21 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:05:44 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From d07a89bc3c8301bb70c99686d30c9be71e98f096 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:06:21 +0000 Subject: [PATCH 119/282] plugins_2018-12-10-05-06-21 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d2301321..0b2ebdcb 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:05:44 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:06:21 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 993e93e50221a34b69a17ca054f06019725c8102 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:06:44 +0000 Subject: [PATCH 120/282] plugins_2018-12-10-05-06-44 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0b2ebdcb..346d3a72 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:06:21 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:06:44 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 35e1516bd125c181109611616c8b823e5fe709b5 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:07:19 +0000 Subject: [PATCH 121/282] plugins_2018-12-10-05-07-19 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 346d3a72..1ee3214d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:06:44 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:07:19 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e44f67f4401caee8c1388c0a95ca1a791a085f48 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:07:45 +0000 Subject: [PATCH 122/282] plugins_2018-12-10-05-07-45 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1ee3214d..1f9cd77e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:07:19 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:07:45 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 844678b714600312843cc0c23ca10b58f295a17a Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:08:12 +0000 Subject: [PATCH 123/282] plugins_2018-12-10-05-08-12 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1f9cd77e..3beb3d05 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:07:45 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:08:12 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From dc02a8077d390a71f25373a21aed318be00353cf Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:08:35 +0000 Subject: [PATCH 124/282] plugins_2018-12-10-05-08-35 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 3beb3d05..9f655ca4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:08:12 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:08:35 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From d3e3d6099cd088ce09798664bc48bcca1b2dcd09 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:09:03 +0000 Subject: [PATCH 125/282] plugins_2018-12-10-05-09-03 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 9f655ca4..93bd1140 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:08:35 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:09:03 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4e86e773000cd42d01e3233898e2d64cb63afa84 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:09:38 +0000 Subject: [PATCH 126/282] plugins_2018-12-10-05-09-38 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 93bd1140..9cc1e57e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:09:03 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:09:38 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 70397c76f5903c6f323940a75890dada386c3e55 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:10:00 +0000 Subject: [PATCH 127/282] plugins_2018-12-10-05-10-00 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 9cc1e57e..454a771d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:09:38 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:10:00 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 6e4e970974a066b6f3bd51d1c6554fcc20d6b8d1 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:10:24 +0000 Subject: [PATCH 128/282] plugins_2018-12-10-05-10-24 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 454a771d..dd58105e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:10:00 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:10:24 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4b06f9daa0b2c2f09317dc877b9d2c96693c0381 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:10:48 +0000 Subject: [PATCH 129/282] plugins_2018-12-10-05-10-48 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index dd58105e..2c254bf2 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:10:24 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:10:48 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 98d2a6ad035964071bc99bb2c8778fc3093e373c Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:11:15 +0000 Subject: [PATCH 130/282] plugins_2018-12-10-05-11-15 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2c254bf2..8fbc13c3 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:10:48 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:11:15 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3f5edd729da621a81405b09d47332d31ecf2e328 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:11:49 +0000 Subject: [PATCH 131/282] plugins_2018-12-10-05-11-49 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 8fbc13c3..39f545ad 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:11:15 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:11:49 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From d069ce7fda08ae8e7535cfab84f3e4b2d8026b98 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:12:13 +0000 Subject: [PATCH 132/282] plugins_2018-12-10-05-12-13 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 39f545ad..c8091969 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:11:49 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:12:13 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e87d219f08a58912fdca27ae2b15fd252de6ae37 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:12:33 +0000 Subject: [PATCH 133/282] plugins_2018-12-10-05-12-33 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c8091969..92bc9cb5 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:12:13 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:12:33 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 7eeca5a676997bfa2db66bf977068cff237e49c5 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:13:09 +0000 Subject: [PATCH 134/282] plugins_2018-12-10-05-13-09 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 92bc9cb5..aba2f25a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:12:33 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:13:09 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ba54fa6a82a5510a7855d9552148162a87e053b0 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:13:34 +0000 Subject: [PATCH 135/282] plugins_2018-12-10-05-13-34 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index aba2f25a..de5b8170 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:13:09 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:13:34 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c947369c53670688899ec6dc4a9a24243a7b5112 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:14:05 +0000 Subject: [PATCH 136/282] plugins_2018-12-10-05-14-05 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index de5b8170..5ee4030f 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:13:34 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:14:05 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4c9faa421f7af7d4862a746e3775bb1302b8481e Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:14:38 +0000 Subject: [PATCH 137/282] plugins_2018-12-10-05-14-38 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5ee4030f..b81ae0e3 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:14:05 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:14:38 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 441e675250474f9f53ef3a1f0648b8aeab858521 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:15:08 +0000 Subject: [PATCH 138/282] plugins_2018-12-10-05-15-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b81ae0e3..27ac1e69 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:14:38 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:15:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ef082948b2a3628f7d512c58d6cde32504beff30 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:15:36 +0000 Subject: [PATCH 139/282] plugins_2018-12-10-05-15-36 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 27ac1e69..18ed0069 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:15:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:15:36 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 12eafa21e949eb786be824eac43244edca5d4d78 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:16:04 +0000 Subject: [PATCH 140/282] plugins_2018-12-10-05-16-04 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 18ed0069..5df42003 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:15:36 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:16:04 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From dd165c1298af21aea5e590a55c30a6f644fe29c4 Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:16:53 +0000 Subject: [PATCH 141/282] plugins_2018-12-10-05-16-53 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5df42003..20f16aca 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:16:04 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:16:53 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3ab06346b8408f5f53096cc15ad7a1d4ff56430e Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Mon, 10 Dec 2018 07:19:05 +0200 Subject: [PATCH 142/282] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6c3d7a8..7a10ea5b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Codefresh plugins +# Codefresh plugins Codefresh Plugins are Docker images made especially for use in a Codefresh freestyle step. Each plugin facilitates a common task that would otherwise by difficult to achieve. See each plugin readme for more info and usage instructions. From 314f1b7e69cf6c07e43d90c1ea27f84ab9f9d0ff Mon Sep 17 00:00:00 2001 From: bdbca00dcac0496e5ab10a3c0e39edcb76c43bfa Date: Mon, 10 Dec 2018 05:19:40 +0000 Subject: [PATCH 143/282] plugins_2018-12-10-05-19-40 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 20f16aca..e1e20d2b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:16:53 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 10 2018 05:19:40 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1c17b50ec2f1374758e7b62801f51e3243ba3d96 Mon Sep 17 00:00:00 2001 From: amirgabay Date: Tue, 11 Dec 2018 09:24:44 +0200 Subject: [PATCH 144/282] New Azure builder plugin --- plugins/azure-builder/README.md | 37 ++++++++++++++++++++++++++++++ plugins/azure-builder/plugin.yaml | 38 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 plugins/azure-builder/README.md create mode 100644 plugins/azure-builder/plugin.yaml diff --git a/plugins/azure-builder/README.md b/plugins/azure-builder/README.md new file mode 100644 index 00000000..2f77b982 --- /dev/null +++ b/plugins/azure-builder/README.md @@ -0,0 +1,37 @@ +# Docker build using Azure ACR + + +## Run locally +`docker run -it codefresh/cf-azure-builder` +``` +NAME: + cf-azure-builder + +DESCRIPTION: + Build + +## Mandatory Parameters: + + IMAGE - Image name + TAG - Tag name + ACR_NAME - ACR registry name + APP_ID - Azure service principal application id + PASSWORD - Azure service principal password + TENANT - Azure ad tenant id + DOCKERFILE_PATH - Dockerfile path (default - working_dir/Dockerfile) + +## Usage Example: + +version: '1.0' +steps: + cf-az-build: + image: codefresh/cf-azure-builder + environment: + - IMAGE= + - TAG= + - ACR_NAME= + - APP_ID= + - PASSWORD= + - TENANT= + - DOCKERFILE_PATH= + diff --git a/plugins/azure-builder/plugin.yaml b/plugins/azure-builder/plugin.yaml new file mode 100644 index 00000000..08f37608 --- /dev/null +++ b/plugins/azure-builder/plugin.yaml @@ -0,0 +1,38 @@ +image: codefresh/cf-azure-builder +tag: latest +version: 0.1.0 +description: Run jenkins job from codefresh pipeline +keywords: + - docker + - azure +home: https://github.com/codefresh-io/azure-build-plugin +sources: + - https://github.com/codefresh-io/azure-build-plugin +maintainers: # (optional) + - name: Amir Gabay + email: amir.gabay@codefresh.io +icon: https://cdn-images-1.medium.com/max/1600/1*c9mvlJQ0o-zQbHM3SL8zkg.png + envs: + - name: IMAGE + type: required + description: image name + - name: TAG + type: required + description: tag name + - name: ACR_NAME + type: required + description: acr registry name + - name: APP_ID + type: required + description: azure service principal application id + - name: PASSWORD + type: required + description: azure service principal password + - name: TENANT + type: required + description: azure ad tenant id + - name: DOCKERFILE_PATH + type: required + description: dockerfile path (default - working_dir/Dockerfile) + + From b1018c2e2e4034b8bda563742f5f681ff0be18ba Mon Sep 17 00:00:00 2001 From: amirgabay Date: Tue, 11 Dec 2018 09:47:27 +0200 Subject: [PATCH 145/282] New Azure builder plugin --- plugins/azure-builder/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/azure-builder/README.md b/plugins/azure-builder/README.md index 2f77b982..90f6f632 100644 --- a/plugins/azure-builder/README.md +++ b/plugins/azure-builder/README.md @@ -19,6 +19,10 @@ DESCRIPTION: PASSWORD - Azure service principal password TENANT - Azure ad tenant id DOCKERFILE_PATH - Dockerfile path (default - working_dir/Dockerfile) + +## Output Variables + + AZURE_IMAGE - Azure image full name in ACR that can be used in later step ## Usage Example: From 3c993f1c10a67fcd4378773c61575fd46368d643 Mon Sep 17 00:00:00 2001 From: amirgabay Date: Tue, 11 Dec 2018 09:51:15 +0200 Subject: [PATCH 146/282] New Azure builder plugin --- plugins/azure-builder/plugin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/azure-builder/plugin.yaml b/plugins/azure-builder/plugin.yaml index 08f37608..aa6ee050 100644 --- a/plugins/azure-builder/plugin.yaml +++ b/plugins/azure-builder/plugin.yaml @@ -1,7 +1,7 @@ image: codefresh/cf-azure-builder tag: latest version: 0.1.0 -description: Run jenkins job from codefresh pipeline +description: Docker build in Azure ACR keywords: - docker - azure From b153bf5cdbb5771b987e857e0d3407af9b86b15f Mon Sep 17 00:00:00 2001 From: pasha Date: Tue, 11 Dec 2018 11:44:24 +0200 Subject: [PATCH 147/282] add new slack to plugin system --- plugins/slack-notifier/NOTES.md | 1 + plugins/slack-notifier/README.md | 59 ++++++++++++++++++++++++++++++ plugins/slack-notifier/plugin.yaml | 29 +++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 plugins/slack-notifier/NOTES.md create mode 100644 plugins/slack-notifier/README.md create mode 100644 plugins/slack-notifier/plugin.yaml diff --git a/plugins/slack-notifier/NOTES.md b/plugins/slack-notifier/NOTES.md new file mode 100644 index 00000000..842a96bc --- /dev/null +++ b/plugins/slack-notifier/NOTES.md @@ -0,0 +1 @@ +## Notes \ No newline at end of file diff --git a/plugins/slack-notifier/README.md b/plugins/slack-notifier/README.md new file mode 100644 index 00000000..d783cec3 --- /dev/null +++ b/plugins/slack-notifier/README.md @@ -0,0 +1,59 @@ +# Codefresh Slack Plugin + +Use Codefresh Slack plugin to send a message to a channel. + +## Usage + +Simple mode - just send text or attachment to slack channel + +```yaml +--- +version: '1.0' + +steps: + + ... + + SendToSlack: + title: Sending message to slack + image: codefresh/slacknotifier + environment: + - SLACK_WEBHOOK_URL=${{SLACK_HOOK_URL}} + - SLACK_TEXT=${{SLACK_TEXT}} + - SLACK_ATTACHMENTS=${{SLACK_ATTACHMENTS}} + ... + +``` + +Template mode - ability to have one template body and just override fields + +```yaml +--- +version: '1.0' + +steps: + + ... + + SendToSlack: + title: Sending message to slack + image: codefresh/slacknotifier + environment: + - SLACK_HOOK_URL=${{SLACK_HOOK_URL}} + - SLACK_TEXT=cool + - SLACK_TEMPLATE_FIELDS=${{SLACK_TEMPLATE_FIELDS}} + - SLACK_TEMPLATE_BODY=${{SLACK_TEMPLATE_BODY}} + - MODE=template + ... + +``` + + +## Environment Variables + +- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) +- **required** `SLACK_TEXT` - The message that will be sent +- `SLACK_ATTACHMENTS` - print verbose output +- `MODE` - template | simple mode +- `SLACK_TEMPLATE_FIELDS` - fields for override if use template mode +- `SLACK_TEMPLATE_BODY` - message body if use template mode diff --git a/plugins/slack-notifier/plugin.yaml b/plugins/slack-notifier/plugin.yaml new file mode 100644 index 00000000..728e60b0 --- /dev/null +++ b/plugins/slack-notifier/plugin.yaml @@ -0,0 +1,29 @@ +image: codefresh/slacknotifier +version: latest +description: Send message to slack channel +keywords: + - slack +home: https://github.com/codefresh-io/slack-notifier +sources: + - https://github.com/codefresh-io/slack-notifier +maintainers: # (optional) + - name: Pavel Kostohrys + email: pavel@codefresh.io +icon: https://upload.wikimedia.org/wikipedia/commons/7/76/Slack_Icon.png +envs: + - name: SLACK_HOOK_URL + type: required + description: Url to the channel + - name: SLACK_TEXT + type: required + description: Message to send + - name: SLACK_ATTACHMENTS + description: Attachments to send. Documentation https://api.slack.com/docs/message-attachments + - name: MODE + description: template | simple, by default simple. In case with template mode you can have general body in attachment SLACK_TEMPLATE_BODY and different fields SLACK_TEMPLATE_FIELDS + - name: SLACK_TEMPLATE_BODY + type: required + description: Required in template mode, general body, should be not array. Support only one attachment in body. Documentation https://api.slack.com/docs/message-attachments + - name: SLACK_TEMPLATE_FIELDS + type: required + description: Required in template mode, Override fields in SLACK_TEMPLATE_BODY, should be array. Documentation https://api.slack.com/docs/message-attachments From 65632d654f54f0cc33aece9e683a215cd9869fad Mon Sep 17 00:00:00 2001 From: kosta709 Date: Tue, 11 Dec 2018 17:43:21 +0200 Subject: [PATCH 148/282] Plugin GKE --- README.md | 1 + plugins/gke/README.md | 5 +++++ plugins/gke/plugin.yaml | 28 ++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 plugins/gke/README.md create mode 100644 plugins/gke/plugin.yaml diff --git a/README.md b/README.md index 7a10ea5b..584c887f 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,4 @@ See each plugin readme for more info and usage instructions. | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| | [Google KMS](plugins/google-kms/README.md) | Encryption/Decryption with Google KMS| `KMS` `codefresh`| +| [Google GKE](plugins/gke/README.md) | GKE Clusters | `GKE` `codefresh`| \ No newline at end of file diff --git a/plugins/gke/README.md b/plugins/gke/README.md new file mode 100644 index 00000000..7b67f837 --- /dev/null +++ b/plugins/gke/README.md @@ -0,0 +1,5 @@ +# Codefresh docker-service plugin + +Use Codefresh docker-service plugin to spin up GKE Kubernetes Cluster and then run any kubectl workload on it + +See https://github.com/codefresh-io/plugin-gke \ No newline at end of file diff --git a/plugins/gke/plugin.yaml b/plugins/gke/plugin.yaml new file mode 100644 index 00000000..79479a7d --- /dev/null +++ b/plugins/gke/plugin.yaml @@ -0,0 +1,28 @@ +image: codefresh/plugin-gke +tag: latest +version: 0.1.0 +description: Codefresh gke plugin +keywords: + - kubernetes + - gke + - gcloud +home: https://github.com/codefresh-io/plugin-gke +sources: + - https://github.com/codefresh-io/plugin-gke +maintainers: + - name: Kosta Klevensky + email: kosta@codefresh.io +icon: https://cloud.google.com/images/products/logos/cloud-symbol.png +envs: + - name: GOOGLE_SERVICE_ACCOUNT_KEY + type: required + description: Google Service Account Key value + - name: CLOUDSDK_COMPUTE_ZONE + type: optional + description: one of valid Google Compute zones + - name: CLOUDSDK_COMPUTE_REGION + type: optional + description: one of valid Google Compute regions. If both CLOUDSDK_COMPUTE_ZONE and CLOUDSDK_COMPUTE_REGION are not set, default is us-central1 + - name: GKE_CLUSTER_NAME + type: optional + description: Name of the cluster to create/delete. Can be also set from gke-create command line. It is generated if not set From a4f7b21a0aee4d5708a816189d6eeed461f402e6 Mon Sep 17 00:00:00 2001 From: kosta709 Date: Tue, 11 Dec 2018 17:45:44 +0200 Subject: [PATCH 149/282] Plugin GKE --- plugins/gke/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/gke/README.md b/plugins/gke/README.md index 7b67f837..1d1ae954 100644 --- a/plugins/gke/README.md +++ b/plugins/gke/README.md @@ -1,5 +1,5 @@ -# Codefresh docker-service plugin +# Codefresh GKE plugin -Use Codefresh docker-service plugin to spin up GKE Kubernetes Cluster and then run any kubectl workload on it +Use Codefresh GKE plugin to spin up GKE Kubernetes Cluster and then run any kubectl workload on it See https://github.com/codefresh-io/plugin-gke \ No newline at end of file From ea83cbf3b4fc6844b22ecdbd685bbbe5954a2785 Mon Sep 17 00:00:00 2001 From: yaroslav-codefresh Date: Wed, 12 Dec 2018 14:30:11 +0200 Subject: [PATCH 150/282] pr operations --- plugins/github-pr/README.MD | 71 +++++++++++++++++++++++++++++++---- plugins/github-pr/plugin.yaml | 19 ++++++---- 2 files changed, 75 insertions(+), 15 deletions(-) diff --git a/plugins/github-pr/README.MD b/plugins/github-pr/README.MD index 27c33099..2b167688 100644 --- a/plugins/github-pr/README.MD +++ b/plugins/github-pr/README.MD @@ -1,24 +1,26 @@ # GitHub Pull Request Codefresh Plugin -Creates a new pull request in GitHub +Operates on pull requests in GitHub. You can create a pull request, update it, open or close. ## Environment Variables - `GITHUB_TOKEN`: token for access to GitHub - `GITHUB_REPO_OWNER`: name of repo owner - `GITHUB_REPO_NAME`: name of repo -- `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch -- `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. -- `TITLE`: The title of the pull request +- `GITHUB_PR_OPERATION`: operation on pull request (choices: create, update, open, close) `(default: create)` +- `GITHUB_PR_NUMBER`: number of your pull request `(required for: update, open, close)` +- `HEAD`: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch. `(required for: create)` +- `BASE`: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. `(required for: create)` +- `TITLE`: The title of the pull request `(required for: create)` ## Deployment with Codefresh - Add encrypted environment variables for: * GITHUB_TOKEN -- Add "github-pr" step as descibed below +- Add "github-pr" step as described below ```yaml -# codefresh.yml example with github pr step +# codefresh.yml example with github for pr creating step version: '1.0' steps: @@ -26,7 +28,7 @@ steps: type: build image-name: repo/image:tag - push to registry: + push_to_registry: type: push candidate: ${{build-step}} tag: ${{CF_BRANCH}} @@ -40,3 +42,58 @@ steps: - HEAD=${{CF_BRANCH}} - TITLE=Codefresh PR for ${{CF_BRANCH}} ``` + +- or: + +```yaml + +# codefresh.yml example with github pr updating step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push_to_registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + github-pr: + image: codefresh/github-pr-plugin + environment: + - GITHUB_PR_OPERATION=update + - GITHUB_PR_NUMBER=2 # your pr number here + - GITHUB_REPO_OWNER=${{CF_REPO_OWNER}} + - GITHUB_REPO_NAME=${{CF_REPO_NAME}} + - TITLE=Updated title for ${{CF_BRANCH}} # optional + - BASE=master # optional + - HEAD=${{CF_BRANCH}} # optional +``` + +- or: + +```yaml + +# codefresh.yml example with github pr open/close step +version: '1.0' + +steps: + build-step: + type: build + image-name: repo/image:tag + + push_to_registry: + type: push + candidate: ${{build-step}} + tag: ${{CF_BRANCH}} + + github-pr: + image: codefresh/github-pr-plugin + environment: + - GITHUB_PR_OPERATION=open # same as 'close' + - GITHUB_PR_NUMBER=2 # your pr number here + - GITHUB_REPO_OWNER=${{CF_REPO_OWNER}} + - GITHUB_REPO_NAME=${{CF_REPO_NAME}} +``` diff --git a/plugins/github-pr/plugin.yaml b/plugins/github-pr/plugin.yaml index 3a34edb8..fb8afbbc 100644 --- a/plugins/github-pr/plugin.yaml +++ b/plugins/github-pr/plugin.yaml @@ -1,7 +1,7 @@ image: codefresh/github-pr-plugin tag: master -version: 0.1.0 -description: Creates GitHub pull request +version: 0.2.0 +description: Operates on GitHub pull requests keywords: - docker - github @@ -12,6 +12,8 @@ sources: maintainers: # (optional) - name: Nick Sakovich email: nick.sakovich@codefresh.io + - name: Yaroslav Drachenko + email: yaroslav@codefresh.io icon: https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png envs: - name: GITHUB_TOKEN @@ -23,12 +25,13 @@ envs: - name: GITHUB_REPO_NAME type: required description: Name of repo + - name: GITHUB_PR_NUMBER + description: The number of updated pull request. Required for open/close/update operations + - name: GITHUB_PR_OPERATION + description: Operation on pull request. Options - create, update, open, close. Default - create. - name: HEAD - type: required - description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this - username:branch + description: The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this - username:branch. Required for 'create' operation. - name: BASE - type: required - description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + description: The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. Required for 'create' operation. - name: TITLE - type: required - description: The title of the pull request + description: The title of the pull request. Required for 'create' operation. From 57163b3b55883d731f27b0be53c025d352fe3dee Mon Sep 17 00:00:00 2001 From: yaroslav-codefresh Date: Wed, 12 Dec 2018 14:34:05 +0200 Subject: [PATCH 151/282] main readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a10ea5b..07a0ea91 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ See each plugin readme for more info and usage instructions. | [Slack](plugins/slack/README.md)| Send message to slack| `slack` `notify`| | [Deploy to ECS](plugins/ecs-deploy/README.md)| Deploy docker image to ECS| `ecs` `deploy` `containers` `aws` | | [Deploy Kompose](plugins/kompose/README.md)| Deploy Docker Compose to Kubernetes cluster with Kubernetes [Kompose](http://kompose.io) | `docker` `docker-compose` `kompose` `deploy` `kubernetes` | -| [GitHub PR](plugins/github-pr/README.MD)| Creates pull request to GitHub | `github` | +| [GitHub PR](plugins/github-pr/README.MD)| Operates on pull requests on GitHub | `github` `pull-request` | | [Run Jenkins Jobs](plugins/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | | [Interact with Jira](plugins/jira/README.md) | Interact with Jira from codefresh pipelines| `jira` `workflow`| From 556cebd5d419e1ee3ca61e5575fe606dbd44897e Mon Sep 17 00:00:00 2001 From: alex-codefresh Date: Thu, 13 Dec 2018 12:15:39 +0300 Subject: [PATCH 152/282] Add github-relese plugin --- README.md | 1 + github-release/README.md | 39 ++++++++++++++++++++++++++++++++++++++ github-release/plugin.yaml | 32 +++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 github-release/README.md create mode 100644 github-release/plugin.yaml diff --git a/README.md b/README.md index 07a0ea91..1e074643 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,4 @@ See each plugin readme for more info and usage instructions. | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| | [Google KMS](plugins/google-kms/README.md) | Encryption/Decryption with Google KMS| `KMS` `codefresh`| +| [Github Release](plugins/github-release/README.md) | Managing GitHub releases | `github` `release`| diff --git a/github-release/README.md b/github-release/README.md new file mode 100644 index 00000000..524a5275 --- /dev/null +++ b/github-release/README.md @@ -0,0 +1,39 @@ +# GitHub release Codefresh Plugin + +A quick plugin to cover specific use case: create releases in GitHub and upload files for them. The plugin also allows to do more complex actions overriding the command manually. + +## Basic usage + +This example creates a release and uploads files to it: + +``` +github_prerelease: + image: codefresh/cfstep-github-release + environment: + - GITHUB_TOKEN=${{GITHUB_TOKEN}} + - FILES=bin/app-* + - PRERELEASE=true +``` +## Advanced usage + +If one wants to do more actions to manage releases than just to create them, it is possible to override the behaviour with custom commands: + +``` +github_prerelease: + image: codefresh/cfstep-github-release + commands: + - github-release edit --user $CF_REPO_OWNER --repo $CF_REPO_NAME --tag $CF_BRANCH_TAG_NORMALIZED --name "$CF_BRANCH_TAG_NORMALIZED" + - github-release delete --user $CF_REPO_OWNER --repo $CF_REPO_NAME --tag $CF_BRANCH_TAG_NORMALIZED + - github-release --help +``` + +More details about the paramaters and examples see [here](https://github.com/aktau/github-release) + +## Environment Variables + +- `GITHUB_TOKEN`: token for access to GitHub +- `CF_REPO_OWNER`: Codefresh provided variable containing repository owner name +- `CF_REPO_NAME`: Codefresh provided variable containing repository name +- `CF_BRANCH_TAG_NORMALIZED`: Codefresh provided variable containing branch/tag name +- `PRERELEASE`: If true, this variable tells the plugin to create a pre-release +- `FILES`: A glob expression for the list of the files to be uploaded \ No newline at end of file diff --git a/github-release/plugin.yaml b/github-release/plugin.yaml new file mode 100644 index 00000000..61d1973b --- /dev/null +++ b/github-release/plugin.yaml @@ -0,0 +1,32 @@ +image: docker.io/codefresh/cfstep-github-release +tag: master +version: 0.1.0 +description: Plugin to make github releases +keywords: + - github + - release +home: https://github.com/codefresh-contrib/cfstep-github-release +sources: + - https://github.com/codefresh-contrib/cfstep-github-release +maintainers: + - name: Alex Cheshko + email: a.cheshko@codefresh.io +icon: A URL to an SVG or PNG image to be used as an icon (optional) +envs: + - name: GITHUB_TOKEN + type: required + description: Codefresh provided variable containing repository owner name + - name: CF_REPO_OWNER + type: required + description: Codefresh provided variable containing repository owner name + - name: CF_REPO_NAME + type: required + description: Codefresh provided variable containing repository name + - name: CF_BRANCH_TAG_NORMALIZED + type: required + description: Codefresh provided variable containing branch/tag name + - name: PRERELEASE + description: If true, this variable tells the plugin to create a pre-release + - name: FILES + description: A glob expression for the list of the files to be uploaded + \ No newline at end of file From fcf14076e65fdf7874b0f4b734a5cf8832ef59e1 Mon Sep 17 00:00:00 2001 From: pasha Date: Thu, 13 Dec 2018 12:57:58 +0200 Subject: [PATCH 153/282] add default template --- plugins/slack-notifier/README.md | 21 +++++++++++++++++++++ plugins/slack-notifier/plugin.yaml | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plugins/slack-notifier/README.md b/plugins/slack-notifier/README.md index d783cec3..0f6ac8b2 100644 --- a/plugins/slack-notifier/README.md +++ b/plugins/slack-notifier/README.md @@ -48,6 +48,27 @@ steps: ``` +Default template mode - send information about build + +```yaml +--- +version: '1.0' + +steps: + + ... + + SendToSlack: + title: Sending message to slack + image: codefresh/slacknotifier + environment: + - SLACK_HOOK_URL=${{SLACK_HOOK_URL}} + - MODE=default-template + ... + +``` + + ## Environment Variables diff --git a/plugins/slack-notifier/plugin.yaml b/plugins/slack-notifier/plugin.yaml index 728e60b0..e9a8def6 100644 --- a/plugins/slack-notifier/plugin.yaml +++ b/plugins/slack-notifier/plugin.yaml @@ -20,7 +20,7 @@ envs: - name: SLACK_ATTACHMENTS description: Attachments to send. Documentation https://api.slack.com/docs/message-attachments - name: MODE - description: template | simple, by default simple. In case with template mode you can have general body in attachment SLACK_TEMPLATE_BODY and different fields SLACK_TEMPLATE_FIELDS + description: template | simple | default-template, by default - simple. In case with template mode you can have general body in attachment SLACK_TEMPLATE_BODY and different fields SLACK_TEMPLATE_FIELDS - name: SLACK_TEMPLATE_BODY type: required description: Required in template mode, general body, should be not array. Support only one attachment in body. Documentation https://api.slack.com/docs/message-attachments From a5c48ed77b354d7074e2f50dd2457db5932723a4 Mon Sep 17 00:00:00 2001 From: Oleg Verhovsky Date: Wed, 19 Dec 2018 02:09:44 +0200 Subject: [PATCH 154/282] Dynamic catalog (#37) * fix * plugins_2018-12-18-23-47-52 * fix yaml * plugins_2018-12-18-23-54-39 * plugins_2018-12-18-23-55-59 * plugins_2018-12-18-23-56-33 * plugins_2018-12-18-23-56-54 * plugins_2018-12-18-23-57-11 * plugins_2018-12-18-23-57-46 * plugins_2018-12-18-23-58-16 * plugins_2018-12-18-23-58-26 * plugins_2018-12-18-23-58-46 * plugins_2018-12-18-23-59-00 * plugins_2018-12-18-23-59-13 * plugins_2018-12-18-23-59-23 * plugins_2018-12-18-23-59-52 * plugins_2018-12-19-00-01-18 * plugins_2018-12-19-00-01-42 * plugins_2018-12-19-00-02-05 * plugins_2018-12-19-00-02-59 * plugins_2018-12-19-00-03-25 * plugins_2018-12-19-00-03-55 * plugins_2018-12-19-00-04-33 * plugins_2018-12-19-00-04-40 * plugins_2018-12-19-00-05-03 * plugins_2018-12-19-00-05-11 * plugins_2018-12-19-00-05-35 * plugins_2018-12-19-00-05-50 * plugins_2018-12-19-00-06-05 * plugins_2018-12-19-00-06-20 * plugins_2018-12-19-00-06-36 * plugins_2018-12-19-00-06-58 * plugins_2018-12-19-00-07-10 * plugins_2018-12-19-00-07-53 * plugins_2018-12-19-00-08-05 * plugins_2018-12-19-00-08-36 * plugins_2018-12-19-00-08-49 * plugins_2018-12-19-00-09-15 --- dynamic-catalog.md | 11 +++++++---- plugins/versioner/plugin.yaml | 12 ++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e1e20d2b..5fb4f929 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,15 +1,17 @@ # **Catalog** -Created at ** Mon Dec 10 2018 05:19:40 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 19 2018 00:09:15 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | -| ------------- |:-------------:| :----: |:-----:|:----:| +| ------------- |-------------| ---- |-----|----| + | azure-builder | codefresh/cf-azure-builder | Docker build in Azure ACR | https://github.com/codefresh-io/azure-build-plugin | **`docker`** **`azure`** | | clair | codefresh/klar:master | Scan an image with Clair | https://github.com/optiopay/klar | **`clair`** **`security`** | | codefresh-cli | codefresh/cli | Operate on Codefresh resources | https://github.com/codefresh-io/codefresh | **`cli`** | | dcos-app-deploy | codefresh/cf-deploy-dcos | Deploy an application on dcos cluster | https://github.com/codefresh-io/cf-deploy-dcos | **`dcos`** **`deploy`** **`deployment`** | | docker-service | codefresh/docker-service | Codefresh docker-service plugin | https://github.com/codefresh-io/docker-service | **`docker`** **`docker-machine`** **`docker-compose`** | | ecs-deploy | codefresh/ecs | Release a Helm chart (update or install) | https://github.com/codefresh-io/cf-deploy-ecs.git | **`ecs`** **`deploy`** **`containers`** | - | github-pr | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`docker`** **`github`** **`pull-request`** | + | github-pr | codefresh/github-pr-plugin | Operates on GitHub pull requests | https://github.com/codefresh-io/github-pr-plugin | **`docker`** **`github`** **`pull-request`** | + | gke | codefresh/plugin-gke | Codefresh gke plugin | https://github.com/codefresh-io/plugin-gke | **`kubernetes`** **`gke`** **`gcloud`** | | helm | codefresh/cfstep-helm | Release a Helm chart (update or install) | https://github.com/codefresh-contrib/cfplugin-step | **`helm`** **`kubernetes`** | | helm-legacy | codefresh/plugin-helm | Release a Helm chart (update or install). There is a new Helm plugin with added capabilities, we are keeping this plugin as is for backward-compatibility. The new plugin is at /incubator/helm (https://github.com/codefresh-io/plugins/tree/master/incubator/helm) | https://github.com/codefresh-io/cf-plugin-helm | **`helm`** **`kubernetes`** | | import-docker-images | codefresh/import-images | Import metadata for existing Docker images into Codefresh | https://github.com/codefresh-io/cf-import-image | **`docker`** | @@ -18,7 +20,8 @@ Created at ** Mon Dec 10 2018 05:19:40 GMT+0000 (Coordinated Universal Time)** | release-to-NPM | | | | | | run-jenkins-job | codefresh/run-jenkins-jobs | Run jenkins job from codefresh pipeline | https://github.com/codefresh-io/cf-run-jenkins-jobs | **`docker`** **`jenkins`** | | slack | codefresh/slack-message-sender | Send message to slack channel | https://github.com/codefresh-io/slack-message-sender | **`slack`** | + | slack-notifier | codefresh/slacknotifier | Send message to slack channel | https://github.com/codefresh-io/slack-notifier | **`slack`** | | testplugin | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`testplugin`** | | testplugin1 | codefresh/github-pr-plugin | test plugin1! | https://github.com/codefresh-io/github-pr-plugin | **`testplugin1`** | - | versioner | docker.io/codefresh/versioner | Execute Twistlock image scan as build step | https://github.com/codefresh-io/cf-plugin-versioner.git | **`versioner 1.0`** | + | versioner | docker.io/codefresh/versioner | semver versions builder | https://github.com/codefresh-io/cf-plugin-versioner.git | **`versioner 1.0`** | diff --git a/plugins/versioner/plugin.yaml b/plugins/versioner/plugin.yaml index 21796cb6..2c9c70e5 100644 --- a/plugins/versioner/plugin.yaml +++ b/plugins/versioner/plugin.yaml @@ -1,17 +1,17 @@ image: docker.io/codefresh/versioner tag: latest version: 1.0 -description: Execute Twistlock image scan as build step +description: semver versions builder keywords: - versioner 1.0 -home: https://hub.docker.com/r/sctechdev/docker-security-scanner/ +#home: https://hub.docker.com/r/sctechdev/docker-security-scanner/ sources: - https://github.com/codefresh-io/cf-plugin-versioner.git maintainers: - - name: Dustin Van Buskirk - email: dev@vanbuskirk.me - - name: Varun Tagore - email: rondevops@gmail.com + - name: Oleg Verhovsky + email: oleg@codefresh.io + + #icon: A URL to an SVG or PNG image to be used as an icon (optional) envs: From 060b0a13babd401201e25ed5bef1003fba5ecc85 Mon Sep 17 00:00:00 2001 From: valancej Date: Wed, 19 Dec 2018 13:00:27 -0500 Subject: [PATCH 155/282] Anchore scan plugin (#36) * updated readme * Updated readme * updated readme * updated readme * updated readme * Updated readme * Updated readme * Updated readme * Updated readme * Updated readme * Updated readme * Updated readme * Updated readme --- plugins/anchore/NOTES.txt | 0 plugins/anchore/README.md | 77 +++++++++++++++++++++++++++++++++++ plugins/anchore/codefresh.yml | 33 +++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 plugins/anchore/NOTES.txt create mode 100644 plugins/anchore/README.md create mode 100644 plugins/anchore/codefresh.yml diff --git a/plugins/anchore/NOTES.txt b/plugins/anchore/NOTES.txt new file mode 100644 index 00000000..e69de29b diff --git a/plugins/anchore/README.md b/plugins/anchore/README.md new file mode 100644 index 00000000..a7e5c7f6 --- /dev/null +++ b/plugins/anchore/README.md @@ -0,0 +1,77 @@ +# Codefresh Anchore Plugin + +Anchore is a service that analyzes Docker images and generates a detailed manifest of the image, a virtual ‘bill of materials’ that includes official operating system packages, unofficial packages, configuration files, and language modules and artifacts. Anchore policies can they be defined to govern security vulnerabilities, package whitelists and blacklists, configuration file contents, presence of credentials in image, manifest changes, exposed ports or any user defined checks. These policies can be deployed site wide or customized for specific images or categories of applications. + +For more information view the github repo here: https://github.com/anchore/anchore-engine + +## Prerequisites + +- Codefresh subscription +- Running Anchore Engine service + +### Reference + +- Example `codefresh.yml`: https://raw.githubusercontent.com/valancej/plugins/master/plugins/anchore/codefresh.yml +- Github repo containing Dockerfile: https://github.com/valancej/node_critical_fail +- Anchore Documentation: https://anchore.freshdesk.com/support/home +- Anchore CLI Image: https://hub.docker.com/r/anchore/engine-cli/ + +## Example + +In this example, we will scan an image built by Codefresh. Depending on the result of the Anchore policy evaluation, we will choose to push the image to Dockerhub or not. + +### Setup + +The example setup is described below. + +### Environment Variables + +These environment variables can be set within Codefresh pipeline configuration. + +Name|Required|Description +---|---|--- +ANCHORE_CLI_URL|Yes|The address of the Anchore server +ANCHORE_CLI_USER|Yes|Anchore account name +ANCHORE_CLI_PASS|Yes|Anchore account password +ANCHORE_FAIL_ON_POLICY|No|Fail build if policy evaluation fails +QA_IMAGE|No|Image built and scanned +dockerhubUsername|No|Dockerhub account name +dockerhubPassword|No|Dockerhub account password + +### Codefresh.yml + +```yaml +version: '1.0' +steps: + MyDockerImage: + title: Building Docker Image + type: build + image_name: ${{QA_IMAGE}} + working_directory: ./ + tag: latest + dockerfile: Dockerfile + metadata: + set: + - QA: Pending Anchore scan before push to Dockerhub.. + ScanMyImage: + title: Scanning Docker Image + image: anchore/engine-cli:latest + commands: + - echo "Scanning image with Anchore" + - anchore-cli image add ${{QA_IMAGE}} + - echo "Waiting for analysis to complete" + - anchore-cli image wait ${{QA_IMAGE}} + - echo "Analysis complete" + - if [ "${{ANCHORE_FAIL_ON_POLICY}}" == "true" ] ; then anchore-cli evaluate check ${{QA_IMAGE}}; fi + PushImage: + title: Pushing Docker Image + description: Pushing Docker Image to Dockerhub... + type: push + candidate: '${{MyDockerImage}}' + image_name: jvalance/node_critical_fail + tag: latest + registry: docker.io + credentials: + username: '${{dockerhubUsername}}' + password: '${{dockerhubPassword}}' +``` \ No newline at end of file diff --git a/plugins/anchore/codefresh.yml b/plugins/anchore/codefresh.yml new file mode 100644 index 00000000..5b5aff51 --- /dev/null +++ b/plugins/anchore/codefresh.yml @@ -0,0 +1,33 @@ +version: '1.0' +steps: + MyDockerImage: + title: Building Docker Image + type: build + image_name: ${{QA_IMAGE}} + working_directory: ./ + tag: latest + dockerfile: Dockerfile + metadata: + set: + - QA: Pending Anchore scan.. + ScanMyImage: + title: Scanning Docker Image + image: anchore/engine-cli:latest + commands: + - echo "Scanning image with Anchore" + - anchore-cli image add ${{QA_IMAGE}} + - echo "Waiting for analysis to complete" + - anchore-cli image wait ${{QA_IMAGE}} + - echo "Analysis complete" + - if [ "${{ANCHORE_FAIL_ON_POLICY}}" == "true" ] ; then anchore-cli evaluate check ${{QA_IMAGE}}; fi + PushImage: + title: Pushing Docker Image + description: Pushing Docker Image to Dockerhub... + type: push + candidate: '${{MyDockerImage}}' + image_name: jvalance/node_critical_fail + tag: latest + registry: docker.io + credentials: + username: '${{dockerhubUsername}}' + password: '${{dockerhubPassword}}' \ No newline at end of file From cb13285f4c9875c35f00759cc618719d98d9ce05 Mon Sep 17 00:00:00 2001 From: pasha Date: Thu, 20 Dec 2018 11:34:48 +0200 Subject: [PATCH 156/282] add twilio plugin manifest --- plugins/twilio/README.md | 27 +++++++++++++++++++++++++++ plugins/twilio/plugin.yaml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 plugins/twilio/README.md create mode 100644 plugins/twilio/plugin.yaml diff --git a/plugins/twilio/README.md b/plugins/twilio/README.md new file mode 100644 index 00000000..da160f45 --- /dev/null +++ b/plugins/twilio/README.md @@ -0,0 +1,27 @@ +# Codefresh plugin for send SMS notification + +Codefresh plugin for send SMS notification via Twilio + +[![Codefresh build status]( https://g.codefresh.io/api/badges/pipeline/codefresh-inc/codefresh-io%2Ftwillio-plugin%2Ftwillio-plugin?branch=master&key=eyJhbGciOiJIUzI1NiJ9.NTY3MmQ4ZGViNjcyNGI2ZTM1OWFkZjYy.AN2wExsAsq7FseTbVxxWls8muNx_bBUnQWQVS8IgDTI&type=cf-2)]( https://g.codefresh.io/pipelines/twillio-plugin/builds?repoOwner=codefresh-io&repoName=twillio-plugin&serviceName=codefresh-io%2Ftwillio-plugin&filter=trigger:build~Build;branch:master;pipeline:5c1a73926ecec326b46fca2b~twillio-plugin) + +## Main env variables +- `TWILIO_SID` - Your account SID from Twilio console +- `TWILIO_TOKEN` - Your API Auth Token from Twilio console +- `TWILIO_PHONE_FROM` - Phone number from which messages will be sent +- `TWILIO_PHONE_TO` - Phone number to which messages will be sent +- `TWILIO_TYPE` - Type of your message [build - send info about your build via Codefresh, default - Send message with statc text] + +For **message** type you must provide `TWILIO_MESSAGE` env + +## Config for codefresh.yml +``` +version: '1.0' +... +steps: + ... + TestSMS: + title: Test SMS + image: codefresh/twilioplugin:latest + ... +... +``` diff --git a/plugins/twilio/plugin.yaml b/plugins/twilio/plugin.yaml new file mode 100644 index 00000000..5464cbaf --- /dev/null +++ b/plugins/twilio/plugin.yaml @@ -0,0 +1,30 @@ +image: codefresh/twilioplugin +version: latest +description: Send SMS message via Twilio +keywords: + - sms + - twilio +home: https://github.com/codefresh-io/twillio-plugin +sources: + - https://github.com/codefresh-io/twillio-plugin +maintainers: + - name: Pavel Kostohrys + email: pavel@codefresh.io +icon: https://cdn.iconscout.com/icon/free/png-256/twilio-1-285957.png +envs: + - name: TWILIO_SID + type: required + description: Your account SID from Twilio console + - name: TWILIO_TOKEN + type: required + description: Your API Auth Token from Twilio console + - name: TWILIO_PHONE_FROM + type: required + description: Phone number from which messages will be sent + - name: TWILIO_PHONE_TO + type: required + description: Phone number to which messages will be sent + - name: TWILIO_TYPE + description: Type of your message [build - send info about your build via Codefresh, default - Send message with statc text] + - name: TWILIO_MESSAGE + description: Required in default mode, text for message From 20c90a915b5de198f58a5e57ccd6fe568825cd15 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 09:38:49 +0000 Subject: [PATCH 157/282] plugins_2018-12-20-09-38-49 --- dynamic-catalog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5fb4f929..f23f72fc 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 19 2018 00:09:15 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 09:38:48 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | @@ -23,5 +23,6 @@ Created at ** Wed Dec 19 2018 00:09:15 GMT+0000 (Coordinated Universal Time)** | slack-notifier | codefresh/slacknotifier | Send message to slack channel | https://github.com/codefresh-io/slack-notifier | **`slack`** | | testplugin | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`testplugin`** | | testplugin1 | codefresh/github-pr-plugin | test plugin1! | https://github.com/codefresh-io/github-pr-plugin | **`testplugin1`** | + | twilio | codefresh/twilioplugin | Send SMS message via Twilio | https://github.com/codefresh-io/twillio-plugin | **`sms`** **`twilio`** | | versioner | docker.io/codefresh/versioner | semver versions builder | https://github.com/codefresh-io/cf-plugin-versioner.git | **`versioner 1.0`** | From aeb75c9340c60d8d631775c8eab1f43c4915f0ea Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 09:39:21 +0000 Subject: [PATCH 158/282] plugins_2018-12-20-09-39-21 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index f23f72fc..6c87371a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 09:38:48 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 09:39:21 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5629ef958b719d2fd2e9f19613e4944d03f747f3 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 09:39:51 +0000 Subject: [PATCH 159/282] plugins_2018-12-20-09-39-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 6c87371a..dfcf501e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 09:39:21 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 09:39:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 0894db2aab3402e55566195a9bff4d0b618a077f Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 09:40:22 +0000 Subject: [PATCH 160/282] plugins_2018-12-20-09-40-22 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index dfcf501e..f3297a52 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 09:39:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 09:40:22 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 481d49a1616fdee23f389bf61ed6e99682bbddb7 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 09:40:51 +0000 Subject: [PATCH 161/282] plugins_2018-12-20-09-40-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index f3297a52..92e35fb0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 09:40:22 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 09:40:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 128b73c0b8f6ee05485334f7e4bc70f0fa2c8516 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 10:30:23 +0000 Subject: [PATCH 162/282] plugins_2018-12-20-10-30-23 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 92e35fb0..7cd90ecc 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 09:40:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 10:30:23 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c6815120ae5570d7be1347008124b28101380231 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 10:30:55 +0000 Subject: [PATCH 163/282] plugins_2018-12-20-10-30-55 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 7cd90ecc..5cef8124 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 10:30:23 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 10:30:55 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 65d7e503bc49bafffc6ea76fe330dc7ffa769da4 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 10:32:14 +0000 Subject: [PATCH 164/282] plugins_2018-12-20-10-32-14 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5cef8124..0433b307 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 10:30:55 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 10:32:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 458a1537dd09dab34487177a278e93fa09213ba7 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 10:32:46 +0000 Subject: [PATCH 165/282] plugins_2018-12-20-10-32-46 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0433b307..eb63de89 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 10:32:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 10:32:46 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 21c2354fc63c39163e3708cba2f4e522b768f52a Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 20 Dec 2018 10:33:16 +0000 Subject: [PATCH 166/282] plugins_2018-12-20-10-33-16 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index eb63de89..d5be259e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 10:32:46 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 20 2018 10:33:16 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 430e2222624c82d3064633487e2168a19c56f506 Mon Sep 17 00:00:00 2001 From: pasha Date: Mon, 24 Dec 2018 12:24:37 +0200 Subject: [PATCH 167/282] add sendgrid plugin manifest --- plugins/sendgrid/README.md | 31 +++++++++++++++++++++++++++++++ plugins/sendgrid/plugin.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 plugins/sendgrid/README.md create mode 100644 plugins/sendgrid/plugin.yaml diff --git a/plugins/sendgrid/README.md b/plugins/sendgrid/README.md new file mode 100644 index 00000000..a471ab9a --- /dev/null +++ b/plugins/sendgrid/README.md @@ -0,0 +1,31 @@ +# Codefresh plugin for send e-mail letters + +Codefresh plugin for send e-mail notification via SendGrid + +## Main env variables +- `SENDGRID_APIKEY` - API key from SendGrid +- `SENDGRID_MAIL` - mail where the letter will be sent, you can use _comma_ divider to send on multiple mails (ex. `mail1@example.com, mail2@exmaple.com`) +- `SENDGRID_FROM` - from header of mail +- `SENDGRID_SUBJECT` - subject header of mail +- `SENDGRID_TYPE` - type of mail [build, message, custom] + +## Mail types +### build +Info about current build +### message +Send simple message with text from `SENDGRID_MESSAGE` +### custom +Send message with custom template via [ejs](https://www.npmjs.com/package/ejs) provided `SENDGRID_TEMPLATE` + +## Config for codefresh.yml +``` +version: '1.0' +... +steps: + ... + TestMail: + title: Test Mail + image: 'codefresh/sendgridplugin:latest' + ... +... +``` diff --git a/plugins/sendgrid/plugin.yaml b/plugins/sendgrid/plugin.yaml new file mode 100644 index 00000000..8816102d --- /dev/null +++ b/plugins/sendgrid/plugin.yaml @@ -0,0 +1,33 @@ +image: codefresh/sendgridplugin +version: latest +description: Send e-mail via Sendgrid +keywords: + - mail + - sendgrid +home: https://github.com/codefresh-io/sendgridplugin +sources: + - https://github.com/codefresh-io/sendgridplugin +maintainers: + - name: Pavel Kostohrys + email: pavel@codefresh.io +icon: https://images.ctfassets.net/bx16dovk9m7p/XNo9W4lwAMsai8KOikAae/35f6df5bf800dd4993c2d98376448f0d/a37a5b5ab495b5531dd406d40baa8a5c.png +envs: + - name: SENDGRID_APIKEY + type: required + description: API key from SendGrid + - name: SENDGRID_MAIL + type: required + description: mail where the letter will be sent, you can use comma divider to send on multiple mails (ex.: mail1@example.com, mail2@exmaple.com) + - name: SENDGRID_FROM + type: required + description: from header of mail + - name: SENDGRID_SUBJECT + type: required + description: subject header of mail + - name: SENDGRID_TYPE + type: required + description: type of mail [build, message, custom] + - name: SENDGRID_MESSAGE + description: Text of message for type message + - name: SENDGRID_TEMPLATE + description: Template of message for type message From 32d3e01f74a2b6640ee2120eb08d865e764f899b Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 10:27:14 +0000 Subject: [PATCH 168/282] plugins_2018-12-24-10-27-14 --- dynamic-catalog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d5be259e..98589546 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 20 2018 10:33:16 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 10:27:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | @@ -19,6 +19,7 @@ Created at ** Thu Dec 20 2018 10:33:16 GMT+0000 (Coordinated Universal Time)** | kompose | codefresh/plugin-helm | Release a Docker Compose to Kubernetes | https://github.com/codefresh-io/cf-kompose-plugin | **`docker-compose`** **`docker`** **`kompose`** **`kubernetes`** | | release-to-NPM | | | | | | run-jenkins-job | codefresh/run-jenkins-jobs | Run jenkins job from codefresh pipeline | https://github.com/codefresh-io/cf-run-jenkins-jobs | **`docker`** **`jenkins`** | + | sendgrid | codefresh/sendgridplugin | Send e-mail via Sendgrid | https://github.com/codefresh-io/sendgridplugin | **`mail`** **`sendgrid`** | | slack | codefresh/slack-message-sender | Send message to slack channel | https://github.com/codefresh-io/slack-message-sender | **`slack`** | | slack-notifier | codefresh/slacknotifier | Send message to slack channel | https://github.com/codefresh-io/slack-notifier | **`slack`** | | testplugin | codefresh/github-pr-plugin | Creates GitHub pull request | https://github.com/codefresh-io/github-pr-plugin | **`testplugin`** | From 5615b8ced937bcfc92288b45213d4cc2b535d8e0 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 10:27:45 +0000 Subject: [PATCH 169/282] plugins_2018-12-24-10-27-45 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 98589546..f4ed3269 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 10:27:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 10:27:45 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a843ee3c62292d50c11d68962b9cd17c6c8e5d53 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 10:28:31 +0000 Subject: [PATCH 170/282] plugins_2018-12-24-10-28-31 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index f4ed3269..c24bdc24 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 10:27:45 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 10:28:31 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From b617866ce8083557eb8110ffad7b7206c9b8a9a7 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:23:24 +0000 Subject: [PATCH 171/282] plugins_2018-12-24-11-23-24 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c24bdc24..648cbfaa 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 10:28:31 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:23:24 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 00b07a490f348f9f5ea4a10fb30acfe9b82d0fc1 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:23:46 +0000 Subject: [PATCH 172/282] plugins_2018-12-24-11-23-46 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 648cbfaa..43cbdc31 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:23:24 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:23:46 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 6f8b9b6ecff25e2c061505a30e8c8a40e0ddc983 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:24:32 +0000 Subject: [PATCH 173/282] plugins_2018-12-24-11-24-32 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 43cbdc31..5364a47c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:23:46 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:24:32 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 9c12aa44ec641611419208e64cff41d0ec6ad935 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:25:00 +0000 Subject: [PATCH 174/282] plugins_2018-12-24-11-25-00 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5364a47c..777beb8d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:24:32 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:25:00 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From debfb9a5b06dd996019fc16e2f8ced74cbeeb651 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:25:28 +0000 Subject: [PATCH 175/282] plugins_2018-12-24-11-25-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 777beb8d..ed033de9 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:25:00 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:25:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 6b2a978517dfcd8e0927f2d9e3e2c9e1b73ea8df Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:26:07 +0000 Subject: [PATCH 176/282] plugins_2018-12-24-11-26-07 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ed033de9..495c3995 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:25:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:26:07 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ce11daae2414cdf12a979417892b68b4e52f54aa Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:26:42 +0000 Subject: [PATCH 177/282] plugins_2018-12-24-11-26-42 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 495c3995..ee342a16 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:26:07 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:26:42 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e1f93a9636ff7e22e0fe0121a0041c0a5caffe86 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:27:09 +0000 Subject: [PATCH 178/282] plugins_2018-12-24-11-27-09 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ee342a16..85f3b5f6 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:26:42 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:27:09 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 73cc664d6ce10e412699e897ec666452c39fa526 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:27:36 +0000 Subject: [PATCH 179/282] plugins_2018-12-24-11-27-36 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 85f3b5f6..28c265c2 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:27:09 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:27:36 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 7252ba71973201c9913332b0dc15b69a532dbea4 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:28:13 +0000 Subject: [PATCH 180/282] plugins_2018-12-24-11-28-13 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 28c265c2..de14258f 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:27:36 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:28:13 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 532d8d27efd13610fbef42d713aef96e2c9209b3 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:28:35 +0000 Subject: [PATCH 181/282] plugins_2018-12-24-11-28-35 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index de14258f..65d41f9d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:28:13 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:28:35 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From bd58990880ab0c1b564c1d8c8960ab8d7cd7ecfe Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:28:58 +0000 Subject: [PATCH 182/282] plugins_2018-12-24-11-28-58 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 65d41f9d..6e8fcf01 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:28:35 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:28:58 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 2c19b5916062be9384a369930e5748c0893e2194 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:30:22 +0000 Subject: [PATCH 183/282] plugins_2018-12-24-11-30-22 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 6e8fcf01..ff425f85 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:28:58 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:30:22 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e0c9929d6e28c007cc4576ba5cf340738944cdc9 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:30:47 +0000 Subject: [PATCH 184/282] plugins_2018-12-24-11-30-46 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ff425f85..31738300 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:30:22 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:30:46 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a78dcc2aa17ee9b31b8e8ee8f4fe6aaefd594509 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Mon, 24 Dec 2018 11:31:14 +0000 Subject: [PATCH 185/282] plugins_2018-12-24-11-31-14 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 31738300..ca0aa33d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:30:46 GMT+0000 (Coordinated Universal Time)** +Created at ** Mon Dec 24 2018 11:31:14 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From aa7474ba139830ae562de97af2de629372c09efa Mon Sep 17 00:00:00 2001 From: amir-codefresh <33693628+amir-codefresh@users.noreply.github.com> Date: Wed, 26 Dec 2018 14:32:56 +0200 Subject: [PATCH 186/282] Update README.md --- plugins/azure-builder/README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/azure-builder/README.md b/plugins/azure-builder/README.md index 90f6f632..beac9527 100644 --- a/plugins/azure-builder/README.md +++ b/plugins/azure-builder/README.md @@ -12,12 +12,14 @@ DESCRIPTION: ## Mandatory Parameters: + AUTH - authentication mode. By defualt it is Azure user cradentials. use 'service-princpal' value in case you want to authenticate using service principal. + USER - Azure user name (not needed if authentication mode is service-principal) IMAGE - Image name TAG - Tag name ACR_NAME - ACR registry name - APP_ID - Azure service principal application id - PASSWORD - Azure service principal password - TENANT - Azure ad tenant id + APP_ID - Azure service principal application id (only needed if authentication mode is service-principal) + PASSWORD - Azure user\service principal password + TENANT - Azure ad tenant id (only needed if authentication mode is service-principal) DOCKERFILE_PATH - Dockerfile path (default - working_dir/Dockerfile) ## Output Variables @@ -26,11 +28,14 @@ DESCRIPTION: ## Usage Example: +## service principal + version: '1.0' steps: cf-az-build: image: codefresh/cf-azure-builder environment: + - AUTH=service-principal - IMAGE= - TAG= - ACR_NAME= @@ -39,3 +44,12 @@ steps: - TENANT= - DOCKERFILE_PATH= +## user cradentials + +image: 'amircodefresh/azure-builder:2612' +environment: + - IMAGE= + - TAG= + - ACR_NAME= + - USER= + - PASSWORD= From a457d04ba93c98643e05b60bd7e813660f881e7a Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:33:23 +0000 Subject: [PATCH 187/282] plugins_2018-12-26-12-33-23 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ca0aa33d..e739540a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Mon Dec 24 2018 11:31:14 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:33:23 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e324a426be408e0e78da530b160ae33e75e752eb Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:33:59 +0000 Subject: [PATCH 188/282] plugins_2018-12-26-12-33-59 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e739540a..ff570d4c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:33:23 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:33:59 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5cfde866c45d3d0f9d6e83b24f18a30b734984e6 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:34:23 +0000 Subject: [PATCH 189/282] plugins_2018-12-26-12-34-23 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ff570d4c..881a530f 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:33:59 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:34:23 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 91638735f59565cf6b4a31808b09d929332288b4 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:35:00 +0000 Subject: [PATCH 190/282] plugins_2018-12-26-12-35-00 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 881a530f..c0486a42 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:34:23 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:35:00 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From f00fe964acb893cb73efcba6f4113e7ddc124e19 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:35:38 +0000 Subject: [PATCH 191/282] plugins_2018-12-26-12-35-38 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c0486a42..c06f403c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:35:00 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:35:38 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 37d90c80a92c8e7f007b1c7bd59a7d1676097e1f Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:36:08 +0000 Subject: [PATCH 192/282] plugins_2018-12-26-12-36-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c06f403c..44e793f0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:35:38 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:36:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From dee033ec2e57104817e6aa9064b7e0d3b6941a3b Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:36:34 +0000 Subject: [PATCH 193/282] plugins_2018-12-26-12-36-34 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 44e793f0..3d03adeb 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:36:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:36:34 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 7645c4c7eb84af01f683813b908bae81d4e7797a Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:37:03 +0000 Subject: [PATCH 194/282] plugins_2018-12-26-12-37-03 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 3d03adeb..2a9a7d25 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:36:34 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:37:03 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From f51b2887ad942614010e250b2a8e6b7bbebb008a Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:37:39 +0000 Subject: [PATCH 195/282] plugins_2018-12-26-12-37-39 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2a9a7d25..2169fa4b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:37:03 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:37:39 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 0fcc3699edd7dae81d82f00901c42f3f543a2ac8 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:38:04 +0000 Subject: [PATCH 196/282] plugins_2018-12-26-12-38-04 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2169fa4b..40f19240 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:37:39 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:38:04 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From acc5b5912f202259b6d31a1d69507aba66307456 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:38:33 +0000 Subject: [PATCH 197/282] plugins_2018-12-26-12-38-33 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 40f19240..2c86031b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:38:04 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:38:33 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e75f79ceb76be888c277ffabf025809359c247c2 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:39:08 +0000 Subject: [PATCH 198/282] plugins_2018-12-26-12-39-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2c86031b..9d17bc95 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:38:33 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:39:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 6710f20388d59fad96876e22be1c624b1b119c05 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:39:33 +0000 Subject: [PATCH 199/282] plugins_2018-12-26-12-39-33 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 9d17bc95..24e655aa 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:39:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:39:33 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 85d3b405c2e53ab1234e640eaa992004f1091b9b Mon Sep 17 00:00:00 2001 From: amir-codefresh <33693628+amir-codefresh@users.noreply.github.com> Date: Wed, 26 Dec 2018 14:57:18 +0200 Subject: [PATCH 200/282] adding new vars --- plugins/azure-builder/plugin.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/azure-builder/plugin.yaml b/plugins/azure-builder/plugin.yaml index aa6ee050..cdfb9516 100644 --- a/plugins/azure-builder/plugin.yaml +++ b/plugins/azure-builder/plugin.yaml @@ -13,6 +13,12 @@ maintainers: # (optional) email: amir.gabay@codefresh.io icon: https://cdn-images-1.medium.com/max/1600/1*c9mvlJQ0o-zQbHM3SL8zkg.png envs: + - name: AUTH + type: optional + description: Only if authentication mode is by service principal + - name: USER + type: required + description: azure user name (not need in service principal authentication mode) - name: IMAGE type: required description: image name @@ -24,13 +30,13 @@ icon: https://cdn-images-1.medium.com/max/1600/1*c9mvlJQ0o-zQbHM3SL8zkg.png description: acr registry name - name: APP_ID type: required - description: azure service principal application id + description: azure service principal application id (service principal authentication mode only) - name: PASSWORD type: required - description: azure service principal password + description: azure service principal password or user password (based on authentication mode) - name: TENANT type: required - description: azure ad tenant id + description: azure ad tenant id (service principal authentication mode only) - name: DOCKERFILE_PATH type: required description: dockerfile path (default - working_dir/Dockerfile) From 108ff523f9ffa42998fa2ce40c556a42abe87410 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:57:46 +0000 Subject: [PATCH 201/282] plugins_2018-12-26-12-57-46 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 24e655aa..c353280d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:39:33 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:57:46 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 61d2e14be62d612d9a71764f00c07f85b3f95b46 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:58:13 +0000 Subject: [PATCH 202/282] plugins_2018-12-26-12-58-13 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c353280d..255ee5b0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:57:46 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:58:13 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 15a6900900d945d00bc3fa12dcffcc170df7f385 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:58:34 +0000 Subject: [PATCH 203/282] plugins_2018-12-26-12-58-34 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 255ee5b0..d0ecf0c0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:58:13 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:58:34 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 232a68811930faf6b269809296e381d2118ca125 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:58:53 +0000 Subject: [PATCH 204/282] plugins_2018-12-26-12-58-53 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d0ecf0c0..0a7a2a90 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:58:34 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:58:53 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From f32b0addc1409c51f5c5675c84806fab4fc355b0 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:59:12 +0000 Subject: [PATCH 205/282] plugins_2018-12-26-12-59-12 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0a7a2a90..4490d586 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:58:53 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:59:12 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 92724d05021c188a7d84265cb23ad6a84cce80d4 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Wed, 26 Dec 2018 12:59:29 +0000 Subject: [PATCH 206/282] plugins_2018-12-26-12-59-29 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 4490d586..5bb209a2 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:59:12 GMT+0000 (Coordinated Universal Time)** +Created at ** Wed Dec 26 2018 12:59:29 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 7c8ac5a8d297c3fb51b9d71dfae161594ff361bd Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Wed, 26 Dec 2018 17:45:32 -0600 Subject: [PATCH 207/282] gitsubmodules plugin --- plugins/gitsubmodules/README.md | 24 ++++++++++++++++++++++++ plugins/gitsubmodules/plugin.yaml | 21 +++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 plugins/gitsubmodules/README.md create mode 100644 plugins/gitsubmodules/plugin.yaml diff --git a/plugins/gitsubmodules/README.md b/plugins/gitsubmodules/README.md new file mode 100644 index 00000000..a5030b13 --- /dev/null +++ b/plugins/gitsubmodules/README.md @@ -0,0 +1,24 @@ +# Update git submodules +Plugin to update git submodules of an already cloned repo. +Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitsubmodules/tags + +## Options +| ENVIRONMENT VARIABLE | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|--|--|--|--|--| +| GITHUB_TOKEN | null | string | Yes | GitHub Personal Token | +| CF_SUBMODULE_SYNC | null | boolean | No | If set to 'true', the step will perform 'git submodule sync' command | + +## Usage Example: + +This example update submodule of a cloned repo. +The step assumes that the working directory is the cloned repo (which is the default working directory for any free style step) + +```yaml +version: '1.0' +steps: + updateSubmodules: + image: codefresh/cfstep-gitsubmodules + environment: + - GITHUB_TOKEN= + - CF_SUBMODULE_SYNC= +``` \ No newline at end of file diff --git a/plugins/gitsubmodules/plugin.yaml b/plugins/gitsubmodules/plugin.yaml new file mode 100644 index 00000000..2794e0c4 --- /dev/null +++ b/plugins/gitsubmodules/plugin.yaml @@ -0,0 +1,21 @@ +image: codefresh/cfstep-gitsubmodules +tag: latest +version: 0.1.0 +description: Update git submodules +keywords: + - git + - submodules +home: https://github.com/codefresh-io/cfstep-gitsubmodules +sources: + - https://github.com/codefresh-io/cfstep-gitsubmodules +maintainers: + - name: Francisco Cocozza + email: francisco@codefresh.io +icon: https://git-scm.com/images/logos/downloads/Git-Icon-1788C.png + envs: + - name: GITHUB_TOKEN + type: required + description: GitHub Token required to access the repository + - name: CF_SUBMODULE_SYNC + type: optional + description: if var is set to 'true', the step will perform 'git submodule sync' command \ No newline at end of file From 69cd6033437ca423610ae4b3cce7cea6fc434344 Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Wed, 26 Dec 2018 17:49:06 -0600 Subject: [PATCH 208/282] extra line --- plugins/gitsubmodules/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gitsubmodules/README.md b/plugins/gitsubmodules/README.md index a5030b13..6fd94777 100644 --- a/plugins/gitsubmodules/README.md +++ b/plugins/gitsubmodules/README.md @@ -1,5 +1,6 @@ # Update git submodules Plugin to update git submodules of an already cloned repo. + Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitsubmodules/tags ## Options From 536d7ffd55f8fd702a66d3cae6d25c454c41c667 Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Wed, 26 Dec 2018 17:50:02 -0600 Subject: [PATCH 209/282] fix new line --- plugins/gitsubmodules/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/gitsubmodules/README.md b/plugins/gitsubmodules/README.md index 6fd94777..d5366596 100644 --- a/plugins/gitsubmodules/README.md +++ b/plugins/gitsubmodules/README.md @@ -11,7 +11,8 @@ Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitsubmodules/tags ## Usage Example: -This example update submodule of a cloned repo. +This example updates submodule of a cloned repo. + The step assumes that the working directory is the cloned repo (which is the default working directory for any free style step) ```yaml From a37baa806bb35dfc4956ae4e7c3233b112d38ded Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Thu, 27 Dec 2018 16:11:18 -0600 Subject: [PATCH 210/282] Adding CF_SUBMODULE_UPDATE_RECURSIVE option --- plugins/gitsubmodules/README.md | 2 ++ plugins/gitsubmodules/plugin.yaml | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/gitsubmodules/README.md b/plugins/gitsubmodules/README.md index d5366596..468e3dd6 100644 --- a/plugins/gitsubmodules/README.md +++ b/plugins/gitsubmodules/README.md @@ -8,6 +8,7 @@ Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitsubmodules/tags |--|--|--|--|--| | GITHUB_TOKEN | null | string | Yes | GitHub Personal Token | | CF_SUBMODULE_SYNC | null | boolean | No | If set to 'true', the step will perform 'git submodule sync' command | +| CF_SUBMODULE_UPDATE_RECURSIVE | null | boolean | No | If set to 'true', the step will perform 'git submodule update --init' command with '--recursive' option | ## Usage Example: @@ -23,4 +24,5 @@ steps: environment: - GITHUB_TOKEN= - CF_SUBMODULE_SYNC= + - CF_SUBMODULE_UPDATE_RECURSIVE= ``` \ No newline at end of file diff --git a/plugins/gitsubmodules/plugin.yaml b/plugins/gitsubmodules/plugin.yaml index 2794e0c4..a82522b3 100644 --- a/plugins/gitsubmodules/plugin.yaml +++ b/plugins/gitsubmodules/plugin.yaml @@ -18,4 +18,7 @@ icon: https://git-scm.com/images/logos/downloads/Git-Icon-1788C.png description: GitHub Token required to access the repository - name: CF_SUBMODULE_SYNC type: optional - description: if var is set to 'true', the step will perform 'git submodule sync' command \ No newline at end of file + description: if var is set to 'true', the step will perform 'git submodule sync' command + - name: CF_SUBMODULE_UPDATE_RECURSIVE + type: optional + description: if set to 'true', the step will perform 'git submodule update --init' command with '--recursive' option \ No newline at end of file From a1fd863ba796d2634ff5fbc64567afeed112c475 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:12:19 +0000 Subject: [PATCH 211/282] plugins_2018-12-27-22-12-19 --- dynamic-catalog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5bb209a2..88dac6d5 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Wed Dec 26 2018 12:59:29 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:12:19 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | @@ -11,6 +11,7 @@ Created at ** Wed Dec 26 2018 12:59:29 GMT+0000 (Coordinated Universal Time)** | docker-service | codefresh/docker-service | Codefresh docker-service plugin | https://github.com/codefresh-io/docker-service | **`docker`** **`docker-machine`** **`docker-compose`** | | ecs-deploy | codefresh/ecs | Release a Helm chart (update or install) | https://github.com/codefresh-io/cf-deploy-ecs.git | **`ecs`** **`deploy`** **`containers`** | | github-pr | codefresh/github-pr-plugin | Operates on GitHub pull requests | https://github.com/codefresh-io/github-pr-plugin | **`docker`** **`github`** **`pull-request`** | + | gitsubmodules | codefresh/cfstep-gitsubmodules | Update git submodules | https://github.com/codefresh-io/cfstep-gitsubmodules | **`git`** **`submodules`** | | gke | codefresh/plugin-gke | Codefresh gke plugin | https://github.com/codefresh-io/plugin-gke | **`kubernetes`** **`gke`** **`gcloud`** | | helm | codefresh/cfstep-helm | Release a Helm chart (update or install) | https://github.com/codefresh-contrib/cfplugin-step | **`helm`** **`kubernetes`** | | helm-legacy | codefresh/plugin-helm | Release a Helm chart (update or install). There is a new Helm plugin with added capabilities, we are keeping this plugin as is for backward-compatibility. The new plugin is at /incubator/helm (https://github.com/codefresh-io/plugins/tree/master/incubator/helm) | https://github.com/codefresh-io/cf-plugin-helm | **`helm`** **`kubernetes`** | From ca2050ffe9dc48800df66d969530c39709b277c5 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:12:41 +0000 Subject: [PATCH 212/282] plugins_2018-12-27-22-12-41 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 88dac6d5..c73fced1 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:12:19 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:12:41 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 31d198f9b67348eb7a5b77c3eafe67416b01547e Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:13:08 +0000 Subject: [PATCH 213/282] plugins_2018-12-27-22-13-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c73fced1..b483ed9d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:12:41 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:13:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4be872bbf4f7fdb885c2095965164aacca98c8c8 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:13:37 +0000 Subject: [PATCH 214/282] plugins_2018-12-27-22-13-37 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b483ed9d..51256498 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:13:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:13:37 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 140eb8535573ef05c41dfa7cd1d47e582b70b557 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:14:11 +0000 Subject: [PATCH 215/282] plugins_2018-12-27-22-14-11 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 51256498..76089596 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:13:37 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:14:11 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From eacc95b777619e37842b72eb4433dba0914533fb Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:14:32 +0000 Subject: [PATCH 216/282] plugins_2018-12-27-22-14-32 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 76089596..e1c77455 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:14:11 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:14:32 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 578186c6c4bb41ef12b54115594fa26ea8ec926e Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:15:10 +0000 Subject: [PATCH 217/282] plugins_2018-12-27-22-15-10 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e1c77455..1362d37d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:14:32 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:15:10 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1d559f7dff43defd5d032a60441ace52ad968213 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:15:35 +0000 Subject: [PATCH 218/282] plugins_2018-12-27-22-15-35 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1362d37d..c4a14c26 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:15:10 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:15:35 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 00c62c8aed8037388b2e21d06f37695e66d5eb89 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:16:07 +0000 Subject: [PATCH 219/282] plugins_2018-12-27-22-16-07 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c4a14c26..2fe6e46b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:15:35 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:16:07 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c3d23af07486cd59f32c7d73ccabeb021904bb9a Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:16:28 +0000 Subject: [PATCH 220/282] plugins_2018-12-27-22-16-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2fe6e46b..ee8ed32d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:16:07 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:16:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 7e7925a66adc4269642050e3da22aa51867d7bce Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:16:53 +0000 Subject: [PATCH 221/282] plugins_2018-12-27-22-16-53 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ee8ed32d..482021ae 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:16:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:16:53 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1c87495ff9af42f71f14a2e275bebb50ac3290c5 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:17:13 +0000 Subject: [PATCH 222/282] plugins_2018-12-27-22-17-13 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 482021ae..3e388984 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:16:53 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:17:13 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 4d603fe1e2e5cf504cc9c0fb54e9ee7f65d6cdcb Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:17:38 +0000 Subject: [PATCH 223/282] plugins_2018-12-27-22-17-38 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 3e388984..01b54a7a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:17:13 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:17:38 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 30d41aaa0fe0dc1ef53adeb26234cb9f8706a4e5 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:17:58 +0000 Subject: [PATCH 224/282] plugins_2018-12-27-22-17-58 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 01b54a7a..18cdacda 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:17:38 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:17:58 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 0eef2b0fdeff3c61eaa4ddbbdcb7013408763df8 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:18:28 +0000 Subject: [PATCH 225/282] plugins_2018-12-27-22-18-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 18cdacda..b7b975a9 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:17:58 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:18:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e56b1ee8772c7d8c338efed065f4fa64bde8c467 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:18:50 +0000 Subject: [PATCH 226/282] plugins_2018-12-27-22-18-50 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b7b975a9..19903949 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:18:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:18:50 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3a7ec313b44ba1c2a129d6f8abebe2ed7e2e5d09 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:19:22 +0000 Subject: [PATCH 227/282] plugins_2018-12-27-22-19-22 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 19903949..2ea4a534 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:18:50 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:19:22 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From b1860a638c7851661b90c70b0318910891e8324c Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:19:52 +0000 Subject: [PATCH 228/282] plugins_2018-12-27-22-19-52 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2ea4a534..2ac781dd 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:19:22 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:19:52 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1e2a4ead65c0b41c4130caad3397b46df23daeff Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:20:20 +0000 Subject: [PATCH 229/282] plugins_2018-12-27-22-20-20 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 2ac781dd..a949f86d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:19:52 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:20:20 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5390092a2efd53c8012a059dca878b302b8e7177 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:20:40 +0000 Subject: [PATCH 230/282] plugins_2018-12-27-22-20-40 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index a949f86d..d6b34012 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:20:20 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:20:40 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From f4b12759918f621fba523382d66e04f15dd2520b Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:21:11 +0000 Subject: [PATCH 231/282] plugins_2018-12-27-22-21-10 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index d6b34012..652952b0 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:20:40 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:21:10 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 0a25c7adce405252e3e5758fdb7f64ba74e3ae40 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:21:36 +0000 Subject: [PATCH 232/282] plugins_2018-12-27-22-21-36 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 652952b0..5d59155d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:21:10 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:21:36 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c70810e813259f88d73c8bcf5a9fc1f7de7c6fc7 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:21:58 +0000 Subject: [PATCH 233/282] plugins_2018-12-27-22-21-58 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5d59155d..18db55ff 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:21:36 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:21:58 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1bc714fbeb7f31049baff4c869ed442898bc8f10 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:22:20 +0000 Subject: [PATCH 234/282] plugins_2018-12-27-22-22-20 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 18db55ff..e9a6ac32 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:21:58 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:22:20 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 16063e3b02af65c0deb67c4dd892bcd606cb1f30 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:22:56 +0000 Subject: [PATCH 235/282] plugins_2018-12-27-22-22-56 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e9a6ac32..547e3fd1 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:22:20 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:22:56 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ba32d63ace2ac9cff2934ed8ca917c43a3fb2585 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:23:23 +0000 Subject: [PATCH 236/282] plugins_2018-12-27-22-23-23 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 547e3fd1..843491d5 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:22:56 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:23:23 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e8f8b00e07f05ea649839301636ff468d3507504 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:23:51 +0000 Subject: [PATCH 237/282] plugins_2018-12-27-22-23-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 843491d5..c5f604bc 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:23:23 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:23:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e802af36e3a2eddd1826b315f8b82025632440c4 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:24:21 +0000 Subject: [PATCH 238/282] plugins_2018-12-27-22-24-21 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c5f604bc..932c260a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:23:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:24:21 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a6f3574c89d3b839db3760305e7b35507ddf93c6 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:24:43 +0000 Subject: [PATCH 239/282] plugins_2018-12-27-22-24-43 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 932c260a..10e8ef16 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:24:21 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:24:43 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From bf6dab81f19ceee3552168a1037a70132ae37076 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:25:03 +0000 Subject: [PATCH 240/282] plugins_2018-12-27-22-25-03 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 10e8ef16..0f5d959c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:24:43 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:25:03 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 916301240f84a029579e99b514a5365042c5f3d3 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:25:37 +0000 Subject: [PATCH 241/282] plugins_2018-12-27-22-25-37 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0f5d959c..b2db2ba3 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:25:03 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:25:37 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From fd1185336a5b85b384e19fb76a129fd88e3022ab Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:26:07 +0000 Subject: [PATCH 242/282] plugins_2018-12-27-22-26-07 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index b2db2ba3..5dd62713 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:25:37 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:26:07 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 40733e322d7c8b6a5a870b27dc9292b3cd0b8144 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:26:28 +0000 Subject: [PATCH 243/282] plugins_2018-12-27-22-26-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5dd62713..e72362b9 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:26:07 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:26:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 9e88c04c352505445bafb60390a0baa5a7eb2bc9 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:26:49 +0000 Subject: [PATCH 244/282] plugins_2018-12-27-22-26-49 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e72362b9..ede7a4d6 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:26:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:26:49 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 2aec7060a12e4c3282e1ddea711a4df31778433e Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:27:10 +0000 Subject: [PATCH 245/282] plugins_2018-12-27-22-27-10 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index ede7a4d6..e32d884c 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:26:49 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:27:10 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c89521805b1225b39c8a82376443e935ef28301d Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:27:39 +0000 Subject: [PATCH 246/282] plugins_2018-12-27-22-27-39 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index e32d884c..25b7ae2b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:27:10 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:27:39 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 3bee0deba04fad99c694700cadf667c960a550e3 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:28:09 +0000 Subject: [PATCH 247/282] plugins_2018-12-27-22-28-09 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 25b7ae2b..87c377c7 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:27:39 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:28:09 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From b945f530205e6717a9ee21ea01de586cc0435a9d Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:28:29 +0000 Subject: [PATCH 248/282] plugins_2018-12-27-22-28-29 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 87c377c7..deb89a7a 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:28:09 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:28:29 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From c11576d6e4aa6d9bdaa1fdb600241d341e29cd20 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:28:51 +0000 Subject: [PATCH 249/282] plugins_2018-12-27-22-28-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index deb89a7a..030b41c5 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:28:29 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:28:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5e64b9495376c54bba1ad060d8183bc04c7303b2 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:29:11 +0000 Subject: [PATCH 250/282] plugins_2018-12-27-22-29-11 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 030b41c5..01ae909d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:28:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:29:11 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 62114de4bcb9a98c85f7521ca49b1b2293d4c833 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:29:37 +0000 Subject: [PATCH 251/282] plugins_2018-12-27-22-29-37 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 01ae909d..1ea5921d 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:29:11 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:29:37 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 0c2ed0e12dae8cd1518ec6e7ef84a60a8ddc349b Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:29:58 +0000 Subject: [PATCH 252/282] plugins_2018-12-27-22-29-58 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 1ea5921d..0f293c85 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:29:37 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:29:58 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 8a6b572197c763686a64f91593bf558d46584294 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:30:23 +0000 Subject: [PATCH 253/282] plugins_2018-12-27-22-30-23 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0f293c85..4f490f4b 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:29:58 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:30:23 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 57c858bfacbaad61acbe28e3ef645a8ed6b6319f Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:30:51 +0000 Subject: [PATCH 254/282] plugins_2018-12-27-22-30-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 4f490f4b..13ec7ebe 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:30:23 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:30:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 35d3d9069bb6fe693a398e65f275616ae529536f Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:31:12 +0000 Subject: [PATCH 255/282] plugins_2018-12-27-22-31-12 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 13ec7ebe..f9d513d6 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:30:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:31:12 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ec1f8bd9aa305b1cf904a77da20328b9a256bad3 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:31:33 +0000 Subject: [PATCH 256/282] plugins_2018-12-27-22-31-33 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index f9d513d6..5bbd6ea4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:31:12 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:31:33 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e67de6319cac771a8c9d4f8d9d6aab2c02d0780e Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:32:09 +0000 Subject: [PATCH 257/282] plugins_2018-12-27-22-32-09 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 5bbd6ea4..714163c2 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:31:33 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:32:09 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5630fdf37ebaff32029ca1ad055d539cd2917a44 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:32:36 +0000 Subject: [PATCH 258/282] plugins_2018-12-27-22-32-36 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 714163c2..4092890e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:32:09 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:32:36 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From e617f1e5a429196a5635d603858d1de14ea76ad5 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:33:08 +0000 Subject: [PATCH 259/282] plugins_2018-12-27-22-33-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 4092890e..32744ce4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:32:36 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:33:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a66e8863bae3755bcbe944125cd0c260d2d17a9c Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:33:28 +0000 Subject: [PATCH 260/282] plugins_2018-12-27-22-33-28 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 32744ce4..9082cfc1 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:33:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:33:28 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From fcecfba8ef60ec90206193c0de01c77929977ad7 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:33:51 +0000 Subject: [PATCH 261/282] plugins_2018-12-27-22-33-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 9082cfc1..4267528e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:33:28 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:33:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a5ae8d5a6fbe87d83bb9c8205ac6477c4d2ee8b2 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:34:21 +0000 Subject: [PATCH 262/282] plugins_2018-12-27-22-34-21 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 4267528e..9e377776 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:33:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:34:21 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 1f72c3fe4fd32d6a2aaf985f08abb237f56d42bc Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:34:43 +0000 Subject: [PATCH 263/282] plugins_2018-12-27-22-34-43 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 9e377776..dbca588e 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:34:21 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:34:43 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a36388e1be6c157504495142576482c00501e201 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:35:06 +0000 Subject: [PATCH 264/282] plugins_2018-12-27-22-35-06 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index dbca588e..98618553 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:34:43 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:35:06 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ff375b9b63e1a4e98d4d85a3c160f8ec13b18aa2 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:35:27 +0000 Subject: [PATCH 265/282] plugins_2018-12-27-22-35-27 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 98618553..12d739e4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:35:06 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:35:27 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 270c87da8752ea0476805ae838d7124acb470809 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:35:51 +0000 Subject: [PATCH 266/282] plugins_2018-12-27-22-35-51 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 12d739e4..0b75dc48 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:35:27 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:35:51 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From ba96738caa51c96b0c80f87cf5493c93d823d3e0 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:36:13 +0000 Subject: [PATCH 267/282] plugins_2018-12-27-22-36-13 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 0b75dc48..3230d2b4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:35:51 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:36:13 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 84e84cc5b5c0af4775fe1b1a4cced4009f64748b Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:36:38 +0000 Subject: [PATCH 268/282] plugins_2018-12-27-22-36-38 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 3230d2b4..c80cbe90 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:36:13 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:36:38 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 729997dc02b92f6b681bb0512c6b2aeba57b2cdc Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:37:08 +0000 Subject: [PATCH 269/282] plugins_2018-12-27-22-37-08 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index c80cbe90..13246abf 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:36:38 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:37:08 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 10b74c36a43baa26e41d9af722bc3e6887072e32 Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:37:30 +0000 Subject: [PATCH 270/282] plugins_2018-12-27-22-37-30 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 13246abf..00786ceb 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:37:08 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:37:30 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From a849d18124c4de03ca3616cd6d20e8fdeb136f4e Mon Sep 17 00:00:00 2001 From: dcadae95b5913d40c0e5a4b4e023898dc30a0c02 Date: Thu, 27 Dec 2018 22:37:47 +0000 Subject: [PATCH 271/282] plugins_2018-12-27-22-37-47 --- dynamic-catalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-catalog.md b/dynamic-catalog.md index 00786ceb..1ce711d4 100644 --- a/dynamic-catalog.md +++ b/dynamic-catalog.md @@ -1,5 +1,5 @@ # **Catalog** -Created at ** Thu Dec 27 2018 22:37:30 GMT+0000 (Coordinated Universal Time)** +Created at ** Thu Dec 27 2018 22:37:47 GMT+0000 (Coordinated Universal Time)** | Plugin Name | Image | Description | source | Tags | From 5f40f259ba67cb5d50aee9a893d6f22a1bcf51e0 Mon Sep 17 00:00:00 2001 From: alex-codefresh Date: Sat, 29 Dec 2018 18:36:17 +0300 Subject: [PATCH 272/282] Makisu plugin --- README.md | 1 + plugins/makisu/README.md | 45 +++++++++++++++++++++++++++++++++++++++ plugins/makisu/plugin.yml | 33 ++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 plugins/makisu/README.md create mode 100644 plugins/makisu/plugin.yml diff --git a/README.md b/README.md index 0920961e..41ec7879 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ See each plugin readme for more info and usage instructions. | [Run Jenkins Jobs](plugins/run-jenkins-job/README.md)| Run jenkins job from codefresh pipeline| `jenkins` `job`| | [Deploy to DCOS](plugins/dcos-app-deploy/README.md) | Deploy application image to DC/OS cluster | `dcos` `deploy` `containers` | | [Interact with Jira](plugins/jira/README.md) | Interact with Jira from codefresh pipelines| `jira` `workflow`| +| [Makisu](plugins/makisu/README.md) | Building images using the Makisu tool | `makisu` `uber`| | [release to npm](plugins/release-to-NPM/README.md) | Release npm modules from a pipeline | `npm` | | [Twistlock](plugins/cfstep-twistlock) | Security scanning of docker images using Twistlock | `security` | | [Clair](plugins/clair/README.md) | Security scanning of Docker images using Clair | `security` | diff --git a/plugins/makisu/README.md b/plugins/makisu/README.md new file mode 100644 index 00000000..3c0acba8 --- /dev/null +++ b/plugins/makisu/README.md @@ -0,0 +1,45 @@ +# Makisu plugin + +The plugin makes using [Makisu build tool](https://github.com/uber/makisu) easier in a Codefresh pipeline. + +### Requirements + +The plugin requires access to the docker daemon enabled, so one have to request it from Codefresh administrators, unless the user uses a Hybrid solution (running builds on his own infrastructure. + +### Basic usage + +This example covers the most common case - to build and push an image using Makisu distributed cache and flexible layer generation features. + +``` +makisuBuildStep: + image: codefresh/cfstep-makisu + environment: + - REGISTRY_HOSTNAME=docker.io + - R_USER=my_username + - R_PASSWORD=my_password + - IMAGE_NAME_TAG=image/name:tag +``` + +By default the makisu context is the main clone directory, but it can be changed with the WORKING_DIRECTORY environment variable. The dockerfile path can also be specified by the DOCKERFILE variable + +### Advanced usage + +If a user needs more flexibility, it is not a problem to add custom flags to the makisu buildcommand: + +``` +.... + environment: + - CUSTOM_FLAGS='--compression=speed ...' +``` + +or to completely override the makisu command: + +``` +makisuBuildStep: + image: codefresh/cfstep-makisu + environment: + - REGISTRY_HOSTNAME=docker.io + - R_USER=my_username + - R_PASSWORD=my_password + - MAKISU_COMMAND='makisu build -t myimage/name:tag --storage /codefresh/volume/makisu --modifyfs=true --commit=explicit --registry-config=/makisu-internal/registry-conf.yml --push docker.io --compression=speed .' +``` \ No newline at end of file diff --git a/plugins/makisu/plugin.yml b/plugins/makisu/plugin.yml new file mode 100644 index 00000000..02c110ee --- /dev/null +++ b/plugins/makisu/plugin.yml @@ -0,0 +1,33 @@ +image: codefresh/cfstep-makisu +tag: latest +version: 0.1.0 +description: The plugin makes using Makisu build tool easier in a Codefresh pipeline +keywords: + - makisu + - uber +home: https://github.com/codefresh-contrib/cfstep-makisu +sources: + - https://github.com/codefresh-contrib/cfstep-makisu +maintainers: # (optional) + - name: Alexander Cheshko + email: a.cheshko@codefresh.io +envs: + - name: IMAGE_NAME_TAG + type: required + description: "Name and tag of the image to build" + - name: REGISTRY_HOSTNAME + type: required + description: "Docker registry host name. Example: docker.io" + - name: R_USER + type: required + description: "User name to authenticate against the registry" + - name: R_PASSWORD + type: required + description: "Password to authenticate against the registry" + - name: DOCKERFILE + - name: CUSTOM_FLAGS + description: "Add custom flags to the makisu build command" + - name: MAKISU_COMMAND + description: "This is to override the makisu build command" + - name: WORKING_DIRECTORY + description: "Changes the makisu context directory. Default is the main clone directory" From 17949260f1482ecba5e8f6b4d245397c84956c67 Mon Sep 17 00:00:00 2001 From: alex-codefresh Date: Sat, 29 Dec 2018 18:41:36 +0300 Subject: [PATCH 273/282] Move the github-release to the proper location --- plugins/github-release/README.md | 39 ++++++++++++++++++++++++++++++ plugins/github-release/plugin.yaml | 32 ++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 plugins/github-release/README.md create mode 100644 plugins/github-release/plugin.yaml diff --git a/plugins/github-release/README.md b/plugins/github-release/README.md new file mode 100644 index 00000000..524a5275 --- /dev/null +++ b/plugins/github-release/README.md @@ -0,0 +1,39 @@ +# GitHub release Codefresh Plugin + +A quick plugin to cover specific use case: create releases in GitHub and upload files for them. The plugin also allows to do more complex actions overriding the command manually. + +## Basic usage + +This example creates a release and uploads files to it: + +``` +github_prerelease: + image: codefresh/cfstep-github-release + environment: + - GITHUB_TOKEN=${{GITHUB_TOKEN}} + - FILES=bin/app-* + - PRERELEASE=true +``` +## Advanced usage + +If one wants to do more actions to manage releases than just to create them, it is possible to override the behaviour with custom commands: + +``` +github_prerelease: + image: codefresh/cfstep-github-release + commands: + - github-release edit --user $CF_REPO_OWNER --repo $CF_REPO_NAME --tag $CF_BRANCH_TAG_NORMALIZED --name "$CF_BRANCH_TAG_NORMALIZED" + - github-release delete --user $CF_REPO_OWNER --repo $CF_REPO_NAME --tag $CF_BRANCH_TAG_NORMALIZED + - github-release --help +``` + +More details about the paramaters and examples see [here](https://github.com/aktau/github-release) + +## Environment Variables + +- `GITHUB_TOKEN`: token for access to GitHub +- `CF_REPO_OWNER`: Codefresh provided variable containing repository owner name +- `CF_REPO_NAME`: Codefresh provided variable containing repository name +- `CF_BRANCH_TAG_NORMALIZED`: Codefresh provided variable containing branch/tag name +- `PRERELEASE`: If true, this variable tells the plugin to create a pre-release +- `FILES`: A glob expression for the list of the files to be uploaded \ No newline at end of file diff --git a/plugins/github-release/plugin.yaml b/plugins/github-release/plugin.yaml new file mode 100644 index 00000000..61d1973b --- /dev/null +++ b/plugins/github-release/plugin.yaml @@ -0,0 +1,32 @@ +image: docker.io/codefresh/cfstep-github-release +tag: master +version: 0.1.0 +description: Plugin to make github releases +keywords: + - github + - release +home: https://github.com/codefresh-contrib/cfstep-github-release +sources: + - https://github.com/codefresh-contrib/cfstep-github-release +maintainers: + - name: Alex Cheshko + email: a.cheshko@codefresh.io +icon: A URL to an SVG or PNG image to be used as an icon (optional) +envs: + - name: GITHUB_TOKEN + type: required + description: Codefresh provided variable containing repository owner name + - name: CF_REPO_OWNER + type: required + description: Codefresh provided variable containing repository owner name + - name: CF_REPO_NAME + type: required + description: Codefresh provided variable containing repository name + - name: CF_BRANCH_TAG_NORMALIZED + type: required + description: Codefresh provided variable containing branch/tag name + - name: PRERELEASE + description: If true, this variable tells the plugin to create a pre-release + - name: FILES + description: A glob expression for the list of the files to be uploaded + \ No newline at end of file From 4752e4b44dbffa2cc023de045e648c9d98c94380 Mon Sep 17 00:00:00 2001 From: Anton Weiss Date: Mon, 7 Jan 2019 11:09:39 +0200 Subject: [PATCH 274/282] azure-builder - fix some typos and formatting in README.md --- plugins/azure-builder/README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/azure-builder/README.md b/plugins/azure-builder/README.md index beac9527..9bf29f80 100644 --- a/plugins/azure-builder/README.md +++ b/plugins/azure-builder/README.md @@ -12,14 +12,15 @@ DESCRIPTION: ## Mandatory Parameters: - AUTH - authentication mode. By defualt it is Azure user cradentials. use 'service-princpal' value in case you want to authenticate using service principal. - USER - Azure user name (not needed if authentication mode is service-principal) - IMAGE - Image name - TAG - Tag name - ACR_NAME - ACR registry name - APP_ID - Azure service principal application id (only needed if authentication mode is service-principal) - PASSWORD - Azure user\service principal password - TENANT - Azure ad tenant id (only needed if authentication mode is service-principal) + AUTH - Authentication mode. By default it is Azure user credentials. + (Use 'service-princpal' value in case you want to authenticate using service principal) + USER - Azure user name (not needed if authentication mode is service-principal) + IMAGE - Image name + TAG - Tag name + ACR_NAME - ACR registry name + APP_ID - Azure service principal application id (only needed if authentication mode is service-principal) + PASSWORD - Azure user\service principal password + TENANT - Azure ad tenant id (only needed if authentication mode is service-principal) DOCKERFILE_PATH - Dockerfile path (default - working_dir/Dockerfile) ## Output Variables @@ -44,9 +45,9 @@ steps: - TENANT= - DOCKERFILE_PATH= -## user cradentials +## user credentials -image: 'amircodefresh/azure-builder:2612' +image: 'codefresh/cf-azure-builder' environment: - IMAGE= - TAG= From efa4668108d9d287f86357646f9f5f43521ca6f3 Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Sun, 13 Jan 2019 23:14:02 -0600 Subject: [PATCH 275/282] Adding gitclonerssh plugin --- plugins/gitclonerssh/README.md | 30 ++++++++++++++++++++++++++++++ plugins/gitclonerssh/plugin.yaml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 plugins/gitclonerssh/README.md create mode 100644 plugins/gitclonerssh/plugin.yaml diff --git a/plugins/gitclonerssh/README.md b/plugins/gitclonerssh/README.md new file mode 100644 index 00000000..0ca3fcbb --- /dev/null +++ b/plugins/gitclonerssh/README.md @@ -0,0 +1,30 @@ +# Clone repository via SSH +Plugin to clone git repositories via SSH. + +Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitclonerssh + +## Options +| ENVIRONMENT VARIABLE | DEFAULT | TYPE | REQUIRED | DESCRIPTION | +|--|--|--|--|--| +| REMOTE_URL | null | string | Yes | Reporitory SSH URL (e.g. `git@github.com:my-user/my-repo.git`) | +| BRANCH | master | string | No | Branch name to checkout (e.g. `master`) | +| SSH_KEY | null | string | Yes | Private SSH key to access the repository. To set a value for this var you can: `cat ~/.ssh/my_ssh_key_file | tr '\n' ','`. This assumes that `SPLIT_CHAR` will be set to `,` | +| SPLIT_CHAR | null | string | Yes | Split character you’ve used to replace newline in SSH key (`SSH_KEY`). Recommendation: use `,` (comma character)| +| CLONE_PATH | working directory | string | No | Path where `git clone` is going to be executed. A "`repo-name`" directory will be created there| + +## Usage Example: +This example clones a private repo using a private SSH key. +This example assumes that `SSH_KEY` var is already saved as an encrypted-pipeline-var. And that `SPLIT_CHAR` has a value of ','. + +```yaml +version: '1.0' +steps: + clone_repo_via_ssh: + image: codefresh/cfstep-gitclonerssh + environment: + - REMOTE_URL=git@github.com:my-user/my-repo.git + - BRANCH=my-branch + - SSH_KEY=${{SSH_KEY}} + - SPLIT_CHAR=${{SPLIT_CHAR}} + - CLONE_PATH=/codefresh/volume +``` \ No newline at end of file diff --git a/plugins/gitclonerssh/plugin.yaml b/plugins/gitclonerssh/plugin.yaml new file mode 100644 index 00000000..db99ef77 --- /dev/null +++ b/plugins/gitclonerssh/plugin.yaml @@ -0,0 +1,31 @@ +image: codefresh/cfstep-gitclonerssh +tag: latest +version: 0.1.0 +description: clone git repositories via SSH. +keywords: + - git + - clone + - ssh +home: https://github.com/codefresh-io/cfstep-gitclonerssh +sources: + - https://github.com/codefresh-io/cfstep-gitclonerssh +maintainers: + - name: Francisco Cocozza + email: francisco@codefresh.io +icon: https://git-scm.com/images/logos/downloads/Git-Icon-1788C.png + envs: + - name: REMOTE_URL + type: required + description: Reporitory SSH URL (e.g. `git@github.com:my-user/my-repo.git`) + - name: BRANCH + type: optional + description: Branch name to checkout (e.g. `master`) + - name: SSH_KEY + type: required + description: Private SSH key to access the repository. + - name: SPLIT_CHAR + type: required + description: Split character you’ve used to replace newline in SSH key + - name: CLONE_PATH + type: optional + description: Path where `git clone` is going to be executed. A "`repo-name`" directory will be created there \ No newline at end of file From aa8710827abdb40f62a9dd7569b3979c382aafe8 Mon Sep 17 00:00:00 2001 From: francisco-codefresh Date: Sun, 13 Jan 2019 23:40:55 -0600 Subject: [PATCH 276/282] Adding clarification for SSH_KEY documentation --- plugins/gitclonerssh/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gitclonerssh/README.md b/plugins/gitclonerssh/README.md index 0ca3fcbb..9c2a4831 100644 --- a/plugins/gitclonerssh/README.md +++ b/plugins/gitclonerssh/README.md @@ -8,7 +8,7 @@ Dockerhub repo: https://hub.docker.com/r/codefresh/cfstep-gitclonerssh |--|--|--|--|--| | REMOTE_URL | null | string | Yes | Reporitory SSH URL (e.g. `git@github.com:my-user/my-repo.git`) | | BRANCH | master | string | No | Branch name to checkout (e.g. `master`) | -| SSH_KEY | null | string | Yes | Private SSH key to access the repository. To set a value for this var you can: `cat ~/.ssh/my_ssh_key_file | tr '\n' ','`. This assumes that `SPLIT_CHAR` will be set to `,` | +| SSH_KEY | null | string | Yes | Private SSH key to access the repository. To convert it to single line string, and set a value for this var you can execute: `cat ~/.ssh/my_ssh_key_file | tr '\n' ','`. This assumes that `SPLIT_CHAR` will be set to `,` | | SPLIT_CHAR | null | string | Yes | Split character you’ve used to replace newline in SSH key (`SSH_KEY`). Recommendation: use `,` (comma character)| | CLONE_PATH | working directory | string | No | Path where `git clone` is going to be executed. A "`repo-name`" directory will be created there| From 983fd4a3a20db5b68cd2fbd49b6afd99e690dde0 Mon Sep 17 00:00:00 2001 From: Anton Weiss Date: Mon, 14 Jan 2019 15:35:31 +0200 Subject: [PATCH 277/282] Move github-release plugin to correct folder --- .../github-release/github-release}/README.md | 0 .../github-release/github-release}/plugin.yaml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {github-release => plugins/github-release/github-release}/README.md (100%) rename {github-release => plugins/github-release/github-release}/plugin.yaml (100%) diff --git a/github-release/README.md b/plugins/github-release/github-release/README.md similarity index 100% rename from github-release/README.md rename to plugins/github-release/github-release/README.md diff --git a/github-release/plugin.yaml b/plugins/github-release/github-release/plugin.yaml similarity index 100% rename from github-release/plugin.yaml rename to plugins/github-release/github-release/plugin.yaml From 9ba6886f575e1170d9fd63c94fc8ba40ec8b67a1 Mon Sep 17 00:00:00 2001 From: alexaladov-codefresh <44968728+alexaladov-codefresh@users.noreply.github.com> Date: Thu, 17 Jan 2019 18:20:07 +0300 Subject: [PATCH 278/282] Vault plugin (#47) * Vault plugin * Vault plugin * Vault plugin * Vault plugin * Vault plugin * Vault plugin --- README.md | 3 ++- plugins/vault/README.md | 51 +++++++++++++++++++++++++++++++++++++++ plugins/vault/plugin.yaml | 27 +++++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 plugins/vault/README.md create mode 100644 plugins/vault/plugin.yaml diff --git a/README.md b/README.md index 41ec7879..3b24a074 100644 --- a/README.md +++ b/README.md @@ -23,4 +23,5 @@ See each plugin readme for more info and usage instructions. | [Import Docker Images](plugins/import-docker-images/README.md) | Import Docker images metadata into Codefresh| `docker` `codefresh`| | [Google KMS](plugins/google-kms/README.md) | Encryption/Decryption with Google KMS| `KMS` `codefresh`| | [Github Release](plugins/github-release/README.md) | Managing GitHub releases | `github` `release`| -| [Google GKE](plugins/gke/README.md) | GKE Clusters | `GKE` `codefresh`| \ No newline at end of file +| [Google GKE](plugins/gke/README.md) | GKE Clusters | `GKE` `codefresh`| +| [Vault](plugins/vault/README.md) | Export Vault Key/Value pairs as ENV variables | `Vault` `codefresh`| diff --git a/plugins/vault/README.md b/plugins/vault/README.md new file mode 100644 index 00000000..855f936a --- /dev/null +++ b/plugins/vault/README.md @@ -0,0 +1,51 @@ +# cf-vault-plugin + +Use Codefresh [Vault](https://www.vaultproject.io) plugin to make key-value pairs stored in a vault available as environment variables for further steps. + +NOTE: this plugin currently supports token authentication and Key/Value secrets engine only. + + +## Usage + +Set required and optional environment variables and add the following step to your Codefresh pipeline: + +Example Variables: + +The example below will authenticate to vault server `https://vault.testdomain.io:8200` using token `s.4wtaMJuZ7dv0c4XuRaasLUOG` and export all secrets found in path `secret/codefreshsecret` as ENV variables available for further steps. + +```text +VAULT_ADDR=https://vault.testdomain.io:8200 +VAULT_PATH=secret/codefreshsecret +VAULT_AUTH_TOKEN=s.4wtaMJuZ7dv0c4XuRaasLUOG +``` + + +```yaml +--- +version: '1.0' + +steps: + + ... + + Vault_to_Env: + title: Importing vault values + image: 'codefresh/cf-vault-plugin' + environment: + - VAULT_ADDR=${{VAULT_ADDR}} + - VAULT_PATH=${{VAULT_PATH}} + - VAULT_AUTH_TOKEN=${{VAULT_AUTH_TOKEN}} + + ... + +``` + +## Environment Variables + +| Variables | Required | Default | Description | +|----------------|----------|---------|-----------------------------------------------------------------------------------------| +| VAULT_ADDR | YES | | Vault server URI | +| VAULT_PATH | YES | | Path to secrets in vault | +| VAULT_AUTH_TOKEN | YES | | Vault authentication token | +| VAULT_CLIENT_CERT_BASE64 | NO | | Base64 encoded client cerificate | +| VAULT_CLIENT_KEY_BASE64 | NO | | Base64 encoded client key diff --git a/plugins/vault/plugin.yaml b/plugins/vault/plugin.yaml new file mode 100644 index 00000000..09f71819 --- /dev/null +++ b/plugins/vault/plugin.yaml @@ -0,0 +1,27 @@ +image: codefresh/cf-vault-plugin +tag: latest +version: 0.1.0 +description: The plugin exports KV pairs from Hashicorp Vault to Codefresh pipeline ENV variables +keywords: + - vault + - hashicorp +home: https://github.com/codefresh-io/cf-vault-plugin +sources: + - https://github.com/codefresh-io/cf-vault-plugin +maintainers: # (optional) + - name: Alexander Aladov + email: a.aladov@codefresh.io +envs: + - name: VAULT_ADDR + type: required + description: "Vault server URI. Example: https://vault.testdomain.io:8200" + - name: VAULT_PATH + type: required + description: "Path to secrets in vault. Example: secret/codefreshsecret" + - name: VAULT_AUTH_TOKEN + type: required + description: "Vault authentication token" + - name: VAULT_CLIENT_CERT_BASE64 + description: "Base64 encoded client cerificate" + - name: VAULT_CLIENT_KEY_BASE64 + description: "Base64 encoded client key" From 4448b7019a6436e83de0486c2f3ffb78bcb81ecd Mon Sep 17 00:00:00 2001 From: Ant Weiss Date: Mon, 21 Jan 2019 17:44:16 +0200 Subject: [PATCH 279/282] Fix documentation links (#48) --- CONTRIBUTING.md | 5 +++-- README.md | 2 +- docs/plugin.md | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae42fd6e..732e1302 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,8 +9,9 @@ This repository is used by Plugin developers for maintaining the official plugin ### How to Contribute a Plugin -1. Fork this repository, develop and test your Plugin -2. Choose the correct folder for your plugin based on the information in the [Repository Structure](README.md#repository-structure) section +1. Develop and test your plugin +2. Fork this repository +2. Choose the correct folder for your plugin based on the information in the [Repository Structure](docs/plugin.md#plugin-file-structure) section 3. Ensure your Plugin follows the [technical](#technical-requirements) and [documentation](#documentation-requirements) guidelines, described below 4. Update [Plugin Catalog](CATALOG.md) 5. Submit a pull request diff --git a/README.md b/README.md index 3b24a074..053bb9be 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Codefresh plugins -Codefresh Plugins are Docker images made especially for use in a Codefresh freestyle step. Each plugin facilitates a common task that would otherwise by difficult to achieve. +Codefresh Plugins are Docker images made especially for use in Codefresh freestyle steps. Each plugin facilitates a common task that would otherwise be difficult to achieve. See each plugin readme for more info and usage instructions. ## Plugins diff --git a/docs/plugin.md b/docs/plugin.md index af6e1228..3fab6293 100644 --- a/docs/plugin.md +++ b/docs/plugin.md @@ -6,7 +6,7 @@ then they can be packaged into versioned archives to be deployed. This document explains the plugin format, and provides basic guidance for building plugins. -## The Plugin File Structure +## Plugin File Structure A plugin is organized as a collection of files inside of a directory. The directory name is the name of the plugin (without versioning information). Thus, @@ -17,7 +17,7 @@ Inside of this directory, Codefresh will expect a structure that matches this: ``` kube-deploy/ plugin.yaml # A YAML file containing information about the plugin - LICENSE # OPTIONAL: A plain text file containing the license for the chart + LICENSE # OPTIONAL: A plain text file containing the license for the plugin README.md # OPTIONAL: A human-readable README file NOTES.md # OPTIONAL: A plain text file containing short usage notes ``` @@ -95,4 +95,4 @@ cannot be overridden. ### Predefined Volumes and Files - `/codefresh/volume` - same volume mounted to all steps running in Codefresh pipeline -- `/codefresh/volume/env_vars_to_export` - a placeholder file to filled with **exported** environment variables; any exported variable can be used in subsequent pipeline steps \ No newline at end of file +- `/codefresh/volume/env_vars_to_export` - a placeholder file to be filled with **exported** environment variables; any exported variable can be used in subsequent pipeline steps \ No newline at end of file From 796305aff5fe2d72c1c7cfa497f34f414b41582d Mon Sep 17 00:00:00 2001 From: andrii-codefresh <41997149+andrii-codefresh@users.noreply.github.com> Date: Mon, 28 Jan 2019 18:53:33 +0200 Subject: [PATCH 280/282] Update env variable description (#50) --- plugins/slack-notifier/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/slack-notifier/README.md b/plugins/slack-notifier/README.md index 0f6ac8b2..21789c9b 100644 --- a/plugins/slack-notifier/README.md +++ b/plugins/slack-notifier/README.md @@ -18,7 +18,7 @@ steps: title: Sending message to slack image: codefresh/slacknotifier environment: - - SLACK_WEBHOOK_URL=${{SLACK_HOOK_URL}} + - SLACK_HOOK_URL=${{SLACK_HOOK_URL}} - SLACK_TEXT=${{SLACK_TEXT}} - SLACK_ATTACHMENTS=${{SLACK_ATTACHMENTS}} ... @@ -72,7 +72,7 @@ steps: ## Environment Variables -- **required** `WEBHOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) +- **required** `SLACK_HOOK_URL` - Url to the channel. Slack official [docs](https://api.slack.com/incoming-webhooks) - **required** `SLACK_TEXT` - The message that will be sent - `SLACK_ATTACHMENTS` - print verbose output - `MODE` - template | simple mode From e79999e9c32b25111be034b4fa038178adc8883b Mon Sep 17 00:00:00 2001 From: andrii-codefresh <41997149+andrii-codefresh@users.noreply.github.com> Date: Fri, 1 Feb 2019 16:09:38 +0200 Subject: [PATCH 281/282] Gitter notifier (#51) --- plugins/gitter-notifier/NOTES.md | 1 + plugins/gitter-notifier/README.md | 45 +++++++++++++++++++++++++++++ plugins/gitter-notifier/plugin.yaml | 20 +++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 plugins/gitter-notifier/NOTES.md create mode 100644 plugins/gitter-notifier/README.md create mode 100644 plugins/gitter-notifier/plugin.yaml diff --git a/plugins/gitter-notifier/NOTES.md b/plugins/gitter-notifier/NOTES.md new file mode 100644 index 00000000..7dc7fc44 --- /dev/null +++ b/plugins/gitter-notifier/NOTES.md @@ -0,0 +1 @@ +## Notes diff --git a/plugins/gitter-notifier/README.md b/plugins/gitter-notifier/README.md new file mode 100644 index 00000000..c86bb657 --- /dev/null +++ b/plugins/gitter-notifier/README.md @@ -0,0 +1,45 @@ +# Gitter notify plugin + +Gitter plugin which gives the opportunity send any messages to activity feed. + +## Using example + +```yaml +version: '1.0' +fail_fast: false +... +steps: + ... + sendMessage: + image: codefresh/gitternotifier + environment: + - GITTER_WEBHOOK=https://webhooks.gitter.im/e/123abc +``` + +## Required variables + +- `GITTER_WEBHOOK` - webhook uri from your [gitter](https://gitter.im) room integration + +## Optional variables + +**if you not provide this variables, plugin send info about build** + +- `GITTER_STATUS` + - **ok** - for info messages + - **error** - for error messages (red icon, red text) +- `GITTER_MESSAGE` - text of custom message which will be send, with [Handlebars.js](https://github.com/wycats/handlebars.js/) + - available vars: + - `{{buildTrigger}}` + - `{{buildInitiator}}` + - `{{buildId}}` + - `{{buildTimestamp}}` + - `{{buildUrl}}` + - `{{repoOwner}}` + - `{{repoName}}` + - `{{branch}}` + - `{{revision}}` + - `{{commitAuthor}}` + - `{{commitUrl}}` + - `{{commitMessage}}` + + - for text markup use **Markdown** diff --git a/plugins/gitter-notifier/plugin.yaml b/plugins/gitter-notifier/plugin.yaml new file mode 100644 index 00000000..404bf8a1 --- /dev/null +++ b/plugins/gitter-notifier/plugin.yaml @@ -0,0 +1,20 @@ +image: codefresh/gitternotifier +version: latest +description: Send message to gitter room +keywords: + - gitter +home: https://github.com/codefresh-io/gitter-notifier +sources: + - https://github.com/codefresh-io/gitter-notifier +maintainers: # (optional) + - name: Andrii Shaforostov + email: andrii@codefresh.io +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Font_Awesome_5_brands_gitter.svg/109px-Font_Awesome_5_brands_gitter.svg.png +envs: + - name: GITTER_WEBHOOK + type: required + description: gitter webhook + - name: GITTER_STATUS + description: send info about current build + - name: GITTER_MESSAGE + description: text of message which will be sent in room From 35c89f7e116a153fd98ce16952ff3bf8af71739d Mon Sep 17 00:00:00 2001 From: andrii-codefresh <41997149+andrii-codefresh@users.noreply.github.com> Date: Fri, 1 Feb 2019 16:09:55 +0200 Subject: [PATCH 282/282] telegram notifier (#49) --- plugins/telegram-notifier/NOTES.md | 1 + plugins/telegram-notifier/README.md | 47 +++++++++++++++++++++++++++ plugins/telegram-notifier/plugin.yaml | 25 ++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 plugins/telegram-notifier/NOTES.md create mode 100644 plugins/telegram-notifier/README.md create mode 100644 plugins/telegram-notifier/plugin.yaml diff --git a/plugins/telegram-notifier/NOTES.md b/plugins/telegram-notifier/NOTES.md new file mode 100644 index 00000000..842a96bc --- /dev/null +++ b/plugins/telegram-notifier/NOTES.md @@ -0,0 +1 @@ +## Notes \ No newline at end of file diff --git a/plugins/telegram-notifier/README.md b/plugins/telegram-notifier/README.md new file mode 100644 index 00000000..7d14ca02 --- /dev/null +++ b/plugins/telegram-notifier/README.md @@ -0,0 +1,47 @@ +# Telegram notify plugin + +Telegram plugin which gives the opportunity send any messages to users via bot. + +## Usage + +```yaml +version: '1.0' +... +steps: + ... + sendMessage: + image: codefresh/telegramnotifier + environment: + - TELEGRAM_TOKEN=TOKEN + - TELEGRAM_TO=99999999 + - TELEGRAM_MESSAGE=Hello {{{userLink}}}, how are you + - TELEGRAM_IMAGES=https://codefresh.io/docs/assets/brand/codefresh-social.png +``` + +## Required variables + +- `TELEGRAM_TOKEN` - token of your bot (cat get from [@BotFather](https://t.me/BotFather)) +- `TELEGRAM_TO` - array of bot`s user id who will receive a message separated by comma (id you can retrieve from [@myidbot](https://t.me/myidbot)) + +## Optional variables + +- `TELEGRAM_STATUS` - send info about current build, **if pass - all others variables will be ignored** +- `TELEGRAM_MESSAGE` - text of message which will be sent to user, with [Handlebars.js](https://github.com/wycats/handlebars.js/), + - available vars: + - `{{buildTrigger}}` + - `{{buildInitiator}}` + - `{{buildId}}` + - `{{buildTimestamp}}` + - `{{buildUrl}}` + - `{{repoOwner}}` + - `{{repoName}}` + - `{{branch}}` + - `{{revision}}` + - `{{commitAuthor}}` + - `{{commitUrl}}` + - `{{commitMessage}}` + - `{{userID}}` - id of current telegram user + - `{{{userLink}}}` - link to current telegram user + + - for text markup use Markdown +- `TELEGRAM_IMAGES` - array of image links for attaching to message diff --git a/plugins/telegram-notifier/plugin.yaml b/plugins/telegram-notifier/plugin.yaml new file mode 100644 index 00000000..027c7493 --- /dev/null +++ b/plugins/telegram-notifier/plugin.yaml @@ -0,0 +1,25 @@ +image: codefresh/telegramnotifier +version: latest +description: Send message to telegram channel +keywords: + - telegram +home: https://github.com/codefresh-io/telegram-notifier +sources: + - https://github.com/codefresh-io/telegram-notifier +maintainers: # (optional) + - name: Andrii Shaforostov + email: andrii@codefresh.io +icon: https://upload.wikimedia.org/wikipedia/commons/5/5c/Telegram_Messenger.png +envs: + - name: TELEGRAM_TOKEN + type: required + description: token of your bot + - name: TELEGRAM_TO + type: required + description: array of user ids who will receive a message separated by comma + - name: TELEGRAM_STATUS + description: send info about current build + - name: TELEGRAM_MESSAGE + description: text of message which will be sent to user + - name: TELEGRAM_IMAGES + description: array of image links for attaching to message