10.4. CLI를 사용하여 템플릿에서 오브젝트 생성

CLI를 사용하여 템플릿을 처리하고 생성된 구성을 사용하여 오브젝트를 생성할 수 있습니다.

10.4.1. 레이블 추가

레이블은 pod 같은 생성된 오브젝트를 관리하고 구성하는 데 사용됩니다. 템플릿에 지정된 레이블은 템플릿에서 생성된 모든 오브젝트에 적용됩니다.

프로세스

  • 명령줄에서 템플릿에 레이블을 추가합니다.

    $ oc process -f <filename> -l name=otherLabel

10.4.2. 매개변수 나열

재정의할 수 있는 매개변수 목록은 템플릿의 parameters 섹션에 나열되어 있습니다.

프로세스

  1. 다음 명령을 사용하여 사용할 파일을 지정하면 CLI로 매개변수를 나열할 수 있습니다.

    $ oc process --parameters -f <filename>

    또는 템플릿이 이미 업로드된 경우 다음을 실행합니다.

    $ oc process --parameters -n <project> <template_name>

    예를 들어, 다음은 기본 openshift 프로젝트의 퀵 스타트 템플릿 중 하나에 대한 매개변수를 나열할 때 출력을 보여줍니다.

    $ oc process --parameters -n openshift rails-postgresql-example

    출력 예

    NAME                         DESCRIPTION                                                                                              GENERATOR           VALUE
    SOURCE_REPOSITORY_URL        The URL of the repository with your application source code                                                                  https://github.com/sclorg/rails-ex.git
    SOURCE_REPOSITORY_REF        Set this to a branch name, tag or other ref of your repository if you are not using the default branch
    CONTEXT_DIR                  Set this to the relative path to your project if it is not in the root of your repository
    APPLICATION_DOMAIN           The exposed hostname that will route to the Rails service                                                                    rails-postgresql-example.openshiftapps.com
    GITHUB_WEBHOOK_SECRET        A secret string used to configure the GitHub webhook                                                     expression          [a-zA-Z0-9]{40}
    SECRET_KEY_BASE              Your secret key for verifying the integrity of signed cookies                                            expression          [a-z0-9]{127}
    APPLICATION_USER             The application user that is used within the sample application to authorize access on pages                                 openshift
    APPLICATION_PASSWORD         The application password that is used within the sample application to authorize access on pages                             secret
    DATABASE_SERVICE_NAME        Database service name                                                                                                        postgresql
    POSTGRESQL_USER              database username                                                                                        expression          user[A-Z0-9]{3}
    POSTGRESQL_PASSWORD          database password                                                                                        expression          [a-zA-Z0-9]{8}
    POSTGRESQL_DATABASE          database name                                                                                                                root
    POSTGRESQL_MAX_CONNECTIONS   database max connections                                                                                                     10
    POSTGRESQL_SHARED_BUFFERS    database shared buffers                                                                                                      12MB

    출력에서는 템플릿이 처리될 때 생성기와 같이 정규식으로 생성되는 여러 매개변수를 식별합니다.

10.4.3. 오브젝트 목록 생성

CLI를 사용하면 템플릿 정의 파일을 처리하여 오브젝트 목록을 표준 출력으로 반환할 수 있습니다.

절차

  1. 템플릿 정의 파일을 처리하여 오브젝트 목록을 표준 출력으로 반환합니다.

    $ oc process -f <filename>

    또는 템플릿이 현재 프로젝트에 이미 업로드된 경우 다음을 실행합니다.

    $ oc process <template_name>
  2. 템플릿을 처리하고 출력을 oc create로 파이핑하여 템플릿에서 오브젝트를 생성합니다.

    $ oc process -f <filename> | oc create -f -

    또는 템플릿이 현재 프로젝트에 이미 업로드된 경우 다음을 실행합니다.

    $ oc process <template> | oc create -f -
  3. 재정의하려는 각 <name>=<value> 쌍에 -p 옵션을 추가하여 파일에 정의된 매개변수 값을 재정의할 수 있습니다. 매개변수 참조는 템플릿 항목 내의 텍스트 필드에 표시될 수 있습니다.

    예를 들어 다음에서는 템플릿의 POSTGRESQL_USERPOSTGRESQL_DATABASE 매개변수가 재정의되어 사용자 정의된 환경 변수가 있는 구성을 출력합니다.

    1. 템플릿에서 오브젝트 목록을 생성합니다.

      $ oc process -f my-rails-postgresql \
          -p POSTGRESQL_USER=bob \
          -p POSTGRESQL_DATABASE=mydatabase
    2. JSON 파일은 처리된 출력을 oc create 명령으로 파이핑하여 템플릿을 업로드하지 않고 직접 적용하거나 파일로 리디렉션할 수 있습니다.

      $ oc process -f my-rails-postgresql \
          -p POSTGRESQL_USER=bob \
          -p POSTGRESQL_DATABASE=mydatabase \
          | oc create -f -
    3. 많은 수의 매개변수가 있는 경우 파일에 저장한 후 해당 파일을 oc process로 전달할 수 있습니다.

      $ cat postgres.env
      POSTGRESQL_USER=bob
      POSTGRESQL_DATABASE=mydatabase
      $ oc process -f my-rails-postgresql --param-file=postgres.env
    4. "-"--param-file의 인수로 사용하여 표준 출력에서 환경을 읽을 수도 있습니다.

      $ sed s/bob/alice/ postgres.env | oc process -f my-rails-postgresql --param-file=-