LoginSignup
0
0

More than 3 years have passed since last update.

openshift4.3でYAMLからプロジェクトを作成する②(失敗)

Last updated at Posted at 2020-03-15

はじめに

前回、openshift4.3.1から出力したテンプレートをそのままYAMLでAddしようとしたらエラーとなった件
試しにカタログからアクセスできるSample repositoryのテンプレートで試してみることにしました。

前回の失敗談:
 - openshift4.3でYAMLからプロジェクトを作成する(失敗)

カタログのPHPからSample repositoryにアクセスする

+AddのFrom CatalogからPHPテンプレートを呼び出します。

2020-03-15.png
2020-03-15 (6).png

Sample repositoryにアクセスする

ではSample repositoryにアクセスしてみましょう。

Sample repository:
 - https://github.com/sclorg/cakephp-ex.git

2020-03-15 (7).png

テンプレート(YAML/JSON)を確認する

Sample repositoryにあるopenshift/templatesにアクセスします。
これをRAWでCopyしてopenshiftのYAMLでインポートしてみます。

cakephp.json
{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "cakephp-example",
    "annotations": {
      "openshift.io/display-name": "CakePHP",
      "description": "An example CakePHP application with no database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
      "tags": "quickstart,php,cakephp",
      "iconClass": "icon-php",
      "openshift.io/long-description": "This template defines resources needed to develop a CakePHP application, including a build configuration and application deployment configuration.  It does not include a database.",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "openshift.io/documentation-url": "https://github.com/sclorg/cakephp-ex",
      "openshift.io/support-url": "https://access.redhat.com",
      "template.openshift.io/bindable": "false"
    }
  },
  "message": "The following service(s) have been created in your project: ${NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
  "labels": {
      "template": "cakephp-example",
      "app": "cakephp-example"
  },
  "objects": [
    {
      "kind": "Secret",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}"
      },
      "stringData" : {
        "cakephp-secret-token" : "${CAKEPHP_SECRET_TOKEN}",
        "cakephp-security-salt" : "${CAKEPHP_SECURITY_SALT}"
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}",
        "annotations": {
          "description": "Exposes and load balances the application pods"
        }
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "port": 8080,
            "targetPort": 8080
          }
        ],
        "selector": {
          "name": "${NAME}"
        }
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}"
      },
      "spec": {
        "host": "${APPLICATION_DOMAIN}",
        "to": {
          "kind": "Service",
          "name": "${NAME}"
        }
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}",
        "annotations": {
          "description": "Keeps track of changes in the application image"
        }
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}",
        "annotations": {
          "description": "Defines how to build the application",
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "source": {
          "type": "Git",
          "git": {
            "uri": "${SOURCE_REPOSITORY_URL}",
            "ref": "${SOURCE_REPOSITORY_REF}"
          },
          "contextDir": "${CONTEXT_DIR}"
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "namespace": "${NAMESPACE}",
              "name": "php:${PHP_VERSION}"
            },
            "env":  [
              {
                "name": "COMPOSER_MIRROR",
                "value": "${COMPOSER_MIRROR}"
              }
            ]
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "${NAME}:latest"
          }
        },
        "triggers": [
          {
            "type": "ImageChange"
          },
          {
            "type": "ConfigChange"
          },
          {
            "type": "GitHub",
            "github": {
              "secret": "${GITHUB_WEBHOOK_SECRET}"
            }
          }
        ],
        "postCommit": {
          "script": "./vendor/bin/phpunit"
        }
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}",
        "annotations": {
          "description": "Defines how to deploy the application server",
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Rolling"
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "cakephp-example"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "${NAME}:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "${NAME}"
        },
        "template": {
          "metadata": {
            "name": "${NAME}",
            "labels": {
              "name": "${NAME}"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "cakephp-example",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080
                  }
                ],
                "readinessProbe": {
                  "timeoutSeconds": 3,
                  "initialDelaySeconds": 3,
                  "periodSeconds": 60,
                  "httpGet": {
                    "path": "/",
                    "port": 8080
                  }
                },
                "livenessProbe": {
                  "timeoutSeconds": 3,
                  "initialDelaySeconds": 30,
                  "periodSeconds": 60,
                  "httpGet": {
                    "path": "/",
                    "port": 8080
                  }
                },
                "env": [
                  {
                    "name": "CAKEPHP_SECRET_TOKEN",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "${NAME}",
                        "key" : "cakephp-secret-token"
                      }
                    }
                  },
                  {
                    "name": "CAKEPHP_SECURITY_SALT",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "${NAME}",
                        "key" : "cakephp-security-salt"
                      }
                    }
                  },
                  {
                    "name": "OPCACHE_REVALIDATE_FREQ",
                    "value": "${OPCACHE_REVALIDATE_FREQ}"
                  }
                ],
                "resources": {
                  "limits": {
                    "memory": "${MEMORY_LIMIT}"
                  }
                }
              }
            ]
          }
        }
      }
    }
  ],
  "parameters": [
    {
      "name": "NAME",
      "displayName": "Name",
      "description": "The name assigned to all of the frontend objects defined in this template.",
      "required": true,
      "value": "cakephp-example"
    },
    {
      "name": "NAMESPACE",
      "displayName": "Namespace",
      "description": "The OpenShift Namespace where the ImageStream resides.",
      "required": true,
      "value": "openshift"
    },
    {
      "name": "PHP_VERSION",
      "displayName": "PHP Version",
      "description": "Version of PHP image to be used (7.3 or latest).",
      "required": true,
      "value": "7.3"
    },
    {
      "name": "MEMORY_LIMIT",
      "displayName": "Memory Limit",
      "description": "Maximum amount of memory the container can use.",
      "required": true,
      "value": "512Mi"
    },
    {
      "name": "SOURCE_REPOSITORY_URL",
      "displayName": "Git Repository URL",
      "description": "The URL of the repository with your application source code.",
      "required": true,
      "value": "https://github.com/sclorg/cakephp-ex.git"
    },
    {
      "name": "SOURCE_REPOSITORY_REF",
      "displayName": "Git Reference",
      "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch."
    },
    {
      "name": "CONTEXT_DIR",
      "displayName": "Context Directory",
      "description": "Set this to the relative path to your project if it is not in the root of your repository."
    },
    {
      "name": "APPLICATION_DOMAIN",
      "displayName": "Application Hostname",
      "description": "The exposed hostname that will route to the CakePHP service, if left blank a value will be defaulted.",
      "value": ""
    },
    {
      "name": "GITHUB_WEBHOOK_SECRET",
      "displayName": "GitHub Webhook Secret",
      "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{40}"
    },
    {
      "name": "CAKEPHP_SECRET_TOKEN",
      "displayName": "CakePHP Secret Token",
      "description": "Set this to a long random string.",
      "generate": "expression",
      "from": "[\\w]{50}"
    },
    {
      "name": "CAKEPHP_SECURITY_SALT",
      "displayName": "CakePHP Security Salt",
      "description": "Security salt for session hash.",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{40}"
    },
    {
      "name": "OPCACHE_REVALIDATE_FREQ",
      "displayName": "OPcache Revalidation Frequency",
      "description": "How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.",
      "value": "2"
    },
    {
      "name": "COMPOSER_MIRROR",
      "displayName": "Custom Composer Mirror URL",
      "description": "The custom Composer mirror URL",
      "value": ""
    }
  ]
}

テンプレート(YAML/JSON)をインポートする

+AddからYAMLを選択して貼り付けます。

2020-03-15.png
2020-03-15 (8).png
2020-03-15 (9).png
2020-03-15 (10).png

えっ…"(-""-)"

An error occurred
the API version in the data (v1) does not match the expected API version (template.openshift.io/v1)

えっとどうしたらよいのでしょうかRed Hatさん(笑)

Red Hatのマニュアルに記載のテンプレート(YAML/JSON)をインポートする

仕方がないのでRed Hatのマニュアルに頼りましょう。

OpenShift Container Platform 4.3 > Using templates
Writing templates

簡単なサンプルがあるので試してみましたが…結果はいっしょ。

An error occurred
the API version in the data (v1) does not match the expected API version (template.openshift.io/v1)

えっと、本当にどうしたらよいのでしょうかRed Hatさん(笑)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0