Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementar suporte a default value #16

Open
daltonmatos opened this issue Jul 2, 2024 · 0 comments
Open

Implementar suporte a default value #16

daltonmatos opened this issue Jul 2, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@daltonmatos
Copy link
Collaborator

daltonmatos commented Jul 2, 2024

A ideia é podermos definir um valor default para um campo qualquer. Essa possibilidade habilitará o uso de campo opcionais em um manifesto. Muitas vezes facilitando a escrita desse yaml.

Proposta

apiVersion: tf-gapi.lukerops.com/v1alpha1
kind: CustomResourceDefinition
metadata:
  name: serviceaccount.gcp.iam.stone.co
spec:
  group: gcp.iam.stone.co
  kind: ServiceAccount
  versions:
    - name: v1alpha1
      specSchema:
        type: object
        properties:
          id:
            type: string
          create:
            type: bool
            default: false

Acima uma proposta de como esse valor pode ser definido. Junto com o campo type: teríamos o campo default: com o valor padrão para esse campo.

Pontos de atenção

  • Se tiver sido definido o campo default: ele precisa ter um valor. Não podemos definir um default vazio;
  • Validar para confirmar que o valor default é compatível com o campo recebendo esse default. Por ex: Não podemos definir default: true para um campo type: integer;
  • Avaliar se faz sentido ter valor default para type: object e type: array. Talvez array até seja comum ter default: [], talvez seja mais comum do que defaul: {} para type: object.
    • Um exemplo de defualt para array é a definição de uma role sem permissões adicionais. Nesse caso o campo de permissões poderia ser default: [].

Plano de ação

Vamos didivir essa implementação em alguns passos:

  1. Implementar default value para campos bool. ref: Implementa suporte a campos bool com default value #22
  2. Implementar o refactor proposto na issue Refatorar processamento dos manifestos #15
  3. Implementar para os outros tipos primitivos: integer e string
  4. Implementa para outros tipos complexos, por grupos (no mesmo PR)
    4.1 array + reduced_array
    4.2 root_object + object + reduced_object
@lukerops lukerops added the enhancement New feature or request label Jul 4, 2024
@daltonmatos daltonmatos changed the title Implementar default value para campos primitivos (integer, string, bool) Implementar suporte a default value Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants