Usando o Knative com o Code Engine

O IBM Cloud® Code Engine foi projetado para que não seja necessário interagir com a tecnologia subjacente em que ele foi construído. No entanto, se você tiver ferramentas existentes que são baseadas no Knative, ainda poderá utilizá-la com o Code Engine. O Code Engine suporta as APIs do Knative (e Kubernetes) e seus comandos da CLI. Para obter mais informações sobre o Kubernetes, consulte Usando o Kubernetes com o Code Engine.

Qual é a versão suportada do Knative?

Code Engine é compatível com a versão 1.15 das APIs do Knative e seus comandos da CLI.

Instalando a interface da linha de comandos do Knative

Para instalar o Knative kn), faça o download e instale o Knative CLI.

Para usar o Knative com o Code Engine, deve-se primeiro configurar seu ambiente para interagir com a API do Kubernetes do Code Engine. Para obter mais informações, consulte Instalando a interface da linha de comandos do Kubernetes.

Para obter mais informações sobre Kubernetes e Knative e como eles trabalham com a arquitetura do Code Engine, veja Aprendendo sobre a arquitetura e o isolamento de carga de trabalho do Code Engine.

Interagindo com a API do Kubernetes

Para interagir com o seu projeto por meio da interface da linha de comandos do Kubernetes, kubectl, ou com o Knative, kn deve-se configurar seu ambiente para interagir com a API de Kubernetes do Code Engine.

Antes de Iniciar

É possível configurar seu ambiente das maneiras a seguir.

  • É possível incluir a opção --kubecfg no comando project select. Por exemplo,

    ibmcloud ce project select --name PROJECT_NAME --kubecfg
    
  • É possível exportar o arquivo kubeconfig diretamente. Execute o comando ibmcloud ce project current para localizar o projeto que você está visando atualmente. Este comando também retorna o comando export para seu arquivo kubeconfig. Por exemplo,

    ibmcloud ce project current
    

    Saída de exemplo

    Getting the current project context...
    OK
    
    Name:       myproject
    ID:         01234567-abcd-abcd-abcd-abcdabcd1111
    Subdomain:  aabon2dfwa0
    Domain:     us-south.codeengine.appdomain.cloud
    Region:     us-south
    Kubectl Context:  4svg40kna19
    
    Kubernetes Config:
    Context:             aabon2dfwa0
    Environment Variable: export KUBECONFIG=/user/myusername/.bluemix/plugins/code-engine/myproject-01234567-abcd-abcd-abcd-abcdabcd1111.yaml
    

    Em seguida, copie o comando de exportação, cole-o na interface da linha de comandos e execute-o.

Verifique se seu ambiente está configurado corretamente executando o comando kubectl config.

kubectl config current-context

Se o contexto estiver configurado corretamente, a saída corresponderá ao valor Kubectl Context de seu projeto. Por exemplo, se o valor Kubectl Context de seu projeto for 4svg40kna19, o comando retornará 4svg40kna19.

Para obter mais informações sobre o Kubernetes e como ele funciona com a arquitetura do Code Engine, consulte Aprendendo sobre a arquitetura e o isolamento de carga de trabalho do Code Engine.

Autoridades de acesso necessárias para trabalhar com a API do Knative

Depois de configurar o seu ambiente, é possível interagir com a API do Knative. Deve-se ter o nível correto de autoridade para tarefas específicas. Essas funções são configuradas em Gerenciamento de acesso e de identidade Consulte Funções de serviço do IBM Cloud.

Autoridades nativas
Recurso Função Gerenciador Função Gravador Função Leitor
services.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
configurations.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
routes.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
revisions.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
pingsource.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch
kafkasource.serving.knative.dev get, list, watch, create, delete, update, patch, apply, edit get, list, watch, create, delete, update, patch, apply, edit get, list, watch