Skip to content
Snippets Groups Projects
kicker.json 8.23 KiB
Newer Older
Pierre Smeyers's avatar
Pierre Smeyers committed
{
  "name": "OpenShift",
  "description": "Deploy your application to an [OpenShift](https://www.openshift.com/) platform",
Pierre Smeyers's avatar
Pierre Smeyers committed
  "template_path": "templates/gitlab-ci-openshift.yml",
  "kind": "hosting",
  "variables": [
    {
      "name": "OS_CLI_IMAGE",
      "description": "the Docker image used to run OpenShift Client (OC) CLI commands - **set the version required by your OpenShift server**",
      "default": "quay.io/openshift/origin-cli:latest"
Pierre Smeyers's avatar
Pierre Smeyers committed
    },
    {
      "name": "OS_URL",
      "type": "url",
      "description": "Global OpenShift API url",
      "mandatory": true
    },
    {
      "name": "OS_TOKEN",
      "description": "Global OpenShift API token",
      "secret": true,
      "mandatory": true
    },
    {
      "name": "OS_BASE_APP_NAME",
      "description": "Base application name",
      "default": "$CI_PROJECT_NAME",
      "advanced": true
    },
    {
      "name": "OS_ENVIRONMENT_URL",
      "type": "url",
      "description": "The default environments url _(only define for static environment URLs declaration)_\n\n_supports late variable expansion (ex: `https://%{environment_name}.openshift.acme.com`)_"
    },
Pierre Smeyers's avatar
Pierre Smeyers committed
    {
      "name": "OS_SCRIPTS_DIR",
      "description": "directory where OpenShift scripts (templates, hook scripts) are located",
      "default": ".",
      "advanced": true
    },
    {
      "name": "OS_APP_LABEL",
      "description": "The OpenShift [label](https://docs.openshift.com/container-platform/3.11/dev_guide/templates.html#writing-labels) set with the `$environment_name` dynamic variable.",
Pierre Smeyers's avatar
Pierre Smeyers committed
      "default": "app",
      "advanced": true
    },
    {
      "name": "OS_ENV_LABEL",
      "description": "The OpenShift [label](https://docs.openshift.com/container-platform/3.11/dev_guide/templates.html#writing-labels) set with the `$environment_type` dynamic variable.",
Pierre Smeyers's avatar
Pierre Smeyers committed
      "default": "env",
      "advanced": true
    }
  ],
  "features": [
    {
      "id": "review",
      "name": "Review",
      "description": "Dynamic review environments for your topic branches (see GitLab [Review Apps](https://docs.gitlab.com/ee/ci/review_apps/))",
      "variables": [
        {
          "name": "OS_REVIEW_PROJECT",
          "description": "OpenShift project for review env",
          "mandatory": true
        },
        {
          "name": "OS_REVIEW_APP_NAME",
          "description": "The application name for review env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_REVIEW_ENVIRONMENT_URL",
          "type": "url",
          "description": "The review environments url _(only define for static environment URLs declaration and if different from default)_",
          "advanced": true
Pierre Smeyers's avatar
Pierre Smeyers committed
        },
        {
          "name": "OS_REVIEW_URL",
          "type": "url",
          "description": "OpenShift API url for review env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_REVIEW_TOKEN",
          "description": "OpenShift API token for review env (only define if different from global)",
          "secret": true
        },
        {
          "name": "CLEANUP_ALL_REVIEW",
          "description": "Enables a **manual** job to cleanup all review envs at once.\n\nYou may also use it to [schedule](https://docs.gitlab.com/ee/ci/pipelines/schedules.html) cloud resources cleanup. See documentation.",
          "type": "boolean"
        }
      ]
    },
    {
      "id": "integration",
      "name": "Integration",
      "description": "A continuous-integration environment associated to your integration branch (`develop` by default)",
      "variables": [
        {
          "name": "OS_INTEG_PROJECT",
          "description": "OpenShift project for integration env",
          "mandatory": true
        },
        {
          "name": "OS_INTEG_APP_NAME",
          "description": "The application name for integration env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_INTEG_ENVIRONMENT_URL",
          "type": "url",
          "description": "The integration environment url _(only define for static environment URLs declaration and if different from default)_",
          "advanced": true
Pierre Smeyers's avatar
Pierre Smeyers committed
        },
        {
          "name": "OS_INTEG_URL",
          "type": "url",
          "description": "OpenShift API url for integration env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_INTEG_TOKEN",
          "description": "OpenShift API token for integration env (only define if different from global)",
          "secret": true
        }
      ]
    },
    {
      "id": "staging",
      "name": "Staging",
      "description": "An iso-prod environment meant for testing and validation purpose on your production branch (`main` or `master` by default)",
Pierre Smeyers's avatar
Pierre Smeyers committed
      "variables": [
        {
          "name": "OS_STAGING_PROJECT",
          "description": "OpenShift project for staging env",
          "mandatory": true
        },
        {
          "name": "OS_STAGING_APP_NAME",
          "description": "The application name for staging env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_STAGING_ENVIRONMENT_URL",
          "type": "url",
          "description": "The staging environment url _(only define for static environment URLs declaration and if different from default)_",
          "advanced": true
Pierre Smeyers's avatar
Pierre Smeyers committed
        },
        {
          "name": "OS_STAGING_URL",
          "type": "url",
          "description": "OpenShift API url for staging env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_STAGING_TOKEN",
          "description": "OpenShift API token for staging env (only define if different from global)",
          "secret": true
        }
      ]
    },
    {
      "id": "prod",
      "name": "Production",
      "description": "The production environment",
      "variables": [
        {
          "name": "OS_PROD_PROJECT",
          "description": "OpenShift project for production env",
          "mandatory": true
        },
        {
          "name": "OS_PROD_APP_NAME",
          "description": "The application name for production env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_PROD_ENVIRONMENT_URL",
          "type": "url",
          "description": "The production environment url _(only define for static environment URLs declaration and if different from default)_",
          "advanced": true
          "name": "OS_PROD_DEPLOY_STRATEGY",
          "description": "Defines the deployment to production strategy.",
          "type": "enum",
          "values": ["manual", "auto"],
          "default": "manual"
Pierre Smeyers's avatar
Pierre Smeyers committed
        },
        {
          "name": "OS_PROD_URL",
          "type": "url",
          "description": "OpenShift API url for production env (only define if different from global)",
          "advanced": true
        },
        {
          "name": "OS_PROD_TOKEN",
          "description": "OpenShift API token for production env (only define if different from global)",
          "secret": true
        }
      ]
    }
  ],
  "variants": [
    {
      "id": "vault",
      "name": "Vault",
      "description": "Retrieve secrets from a [Vault](https://www.vaultproject.io/) server",
      "template_path": "templates/gitlab-ci-openshift-vault.yml",
      "variables": [
        {
          "name": "TBC_VAULT_IMAGE",
          "description": "The [Vault Secrets Provider](https://gitlab.com/to-be-continuous/tools/vault-secrets-provider) image to use",
          "default": "$CI_REGISTRY/to-be-continuous/tools/vault-secrets-provider:master",
          "advanced": true
        },
Pierre Smeyers's avatar
Pierre Smeyers committed
        {
          "name": "VAULT_BASE_URL",
          "description": "The Vault server base API url"
        },
        {
          "name": "VAULT_ROLE_ID",
          "description": "The [AppRole](https://www.vaultproject.io/docs/auth/approle) RoleID",
          "mandatory": true,
          "secret": true
        },
        {
          "name": "VAULT_SECRET_ID",
          "description": "The [AppRole](https://www.vaultproject.io/docs/auth/approle) SecretID",
          "mandatory": true,
          "secret": true
        }
      ]
    }
  ]
}