Создание приложения с помощью CLI

Создать приложение с помощью CLI можно используя следующие компоненты:

Исходный код

  • Чтобы создать приложения из исходного кода используйте команду oc new-app.

    Команда oc new-app автоматически генерирует объекты Опеншифт, которые создают, разворачивают и запускают приложение. Эти объекты создаются в текущем проекте и им присваиваются полученные из репозиториев исходного источника или входных образов сборки:

    Build Config

    Определяет используемую стратегию, исходное местоположение и выходное местоположение сборки. BuildConfig автоматически определяет, какую стратегию сборки следует использовать ― Pipeline или Source. В случае выбора стратегии Source система автоматически определяет соответствующий образ сборки (builder image).

    Image Stream

    Обеспечивает доступ к образам. Для Build Config обычно создаются два Image Stream: один — для представления входных образов, второй ― для предоставления выходных образов.

    Deployment Config

    Создается для развертывания выходных данных сборки или указанного образа.

  • Чтобы создать приложение из локального Git-репозитория, используйте команду oc new-app /<path to source code>.

  • Чтобы создать приложение из удаленного Git-репозитория, используйте команду oc new-app https://github.com/sclorg/cakephp-ex.

  • Чтобы создать приложение из удаленного приватного Git-репозитория, используйте команду oc new-app https://github.com/youruser/yourprivaterepo--source-secret=yoursecret.

    Примечание

    При использовании удаленного приватного Git-репозитория вы можете добавить флаг --source-secret, чтобы указать существующий секрет источника, который будет введен в существующий BuildConfig для доступа к репозиторию. Чтобы использовать подкаталог репозитория, добавьте флаг --context-dir.

  • Чтобы создать приложение из удаленного Git-репозитория и подкаталога, используйте команду oc new-app https://github.com/sclorg/s2i-ruby-container.git \\--context-dir=2.0/test/puma-test-app. При указании удаленного URL-адреса укажите ветку Git для использования, добавив <branch_name> в конец URL-адреса: oc new-app https://github.com/openshift/ruby-hello-world.git#beta4.

  • Объекты, созданные командой oc new-app, обычно получают имена в соответствии с исходным репозиторием или образом, используемым для их создания. Чтобы изменить имя создаваемых объектов, добавьте к команде oc new-app флаг --name:

    oc new-app https://github.com/openshift/ruby-hello-world --name=myapp
    
  • Команда oc new-app создает объекты в текущем проекте. Чтобы создавать объекты в другом проекте, используйте аргумент -n \--namespace:

    oc new-app https://github.com/openshift/ruby-hello-world -n myproject
    

Image (образ)

  • Команда oc new-app определяет тип образа, указанный в аргументах. Чтобы указать является ли образ контейнерным используйте аргумент docker-image или Image Stream с аргументом -i \| --image.

    Примечание

    Если вы указываете образ из локального хранилища Docker, убедитесь, что этот же образ доступен для узлов кластера Опеншифт.

  • Чтобы создать приложение из образа DockerHubMySQL, используйте команду oc new-app openshift/mysql:latest.

  • Чтобы создать приложение из существующего Image Stream или Image StreamTag, используйте команду oc new-app my-stream:v1.

Шаблон

  • Чтобы создать приложение из сохраненного шаблона, используйте команды oc create -f examples/sample-app/application-template-stibuild.json и oc new-app ruby-helloworld-sample

  • Чтобы использовать шаблон в локальной файловой системе, не сохраняя его, добавьте аргумент -f \| --fileoc new-app -f examples/sample-app/application-template-stibuild.json

Параметры шаблона

  • При создании приложения на основе шаблона, для установки необходимых значений параметров, добавьте аргумент -p \| --param:

    oc new-app ruby-helloworld-sample
    
    -p ADMIN_USERNAME=admin -p ADMIN_PASSWORD=mypassword
    
  • При создании экземпляра шаблона сохраните параметры в файле, а затем укажите этот файл с аргументом --param-file. Если необходимо просмотреть заданные параметры, используйте --param-file = -:

    cat helloworld. params
    
    ADMIN_USERNAME=admin
    
    ADMIN_PASSWORD=mypassword
    
    oc new-app ruby-helloworld-sample --param-file=helloworld.params
    
    cat helloworld.params \| oc new-app ruby-helloworld-sample --param-file=-
    

Определение переменной среды сборки

  • Чтобы создать приложение из шаблона, используйте аргумент -e \| --env для передачи переменной среды в контейнер приложения:

    oc new-app openshift/postgresql-92-centos7 \\
    
    -e POSTGRESQL_USER=user \\
    
    -e POSTGRESQL_DATABASE=db \\
    
    -e POSTGRESQL_PASSWORD=password
    
  • Чтобы посмотреть все существующие переменные среды, используйте аргумент --env-file:

    cat postgresql.env
    
    POSTGRESQL_USER=user
    
    POSTGRESQL_DATABASE=db
    
    POSTGRESQL_PASSWORD=password
    
    oc new-app openshift/postgresql-92-centos7 --env-file=postgresql.env
    
  • Чтобы задать переменные среды, используйте аргумент --env-file = -:

    cat postgresql.env \| oc new-app openshift/postgresql-92-centos7 --env-file=-
    

    Примечание

    Любые объекты BuildConfig, созданные как часть нового приложения, не обновляются с помощью переменных средсодержащие аргумент -e \| --env или --env-file.

Указание переменной среды сборки

  • При создании приложений из шаблона, для передачи переменных сред в контейнер, используйте аргумент --build-env:

    oc new-app openshift/ruby-23-centos7 \\
    
    --build-env HTTP_PROXY=http://myproxy.net:1337/ \\
    
    --build-env GEM_HOME=~/. gem
    
  • Чтобы просмотреть все переменные среды, используйте аргумент --build-env-file:

    cat ruby.env
    
    HTTP_PROXY=http://myproxy.net:1337/
    
    GEM_HOME=~/.gem
    
    oc new-app openshift/ruby-23-centos7 --build-env-file=ruby.env
    
  • Чтобы задать переменные среды, используйте аргумент --build-env-file=-:

    cat ruby.env \| oc new-app openshift/ruby-23-centos7 --build-env-file=-
    

Указание меток

  • Чтобы добавить метки к объектам приложения, созданного из шаблона, используйте аргумент -l \| --label. Метки позволяют легко выбирать, настраивать и удалять объекты, связанные с приложением:

    oc new-app https://github.com/openshift/ruby-hello-world -l
    name=hello-world